Skip to main content
Skip table of contents

Transaction Endorsement Support

Some use cases require that write transactions to the ledger are first reviewed and signed (or endorsed) by an Endorser agent before being written. In this setting, an unprivileged agent known as the Author initiates the transaction and sends it to the Endorser who has the option to either refuse or endorse it. The Author is only able to write the transaction to the ledger if it was endorsed.

The Lissi Agent supports transaction endorsement on a per-tenant basis in the Author role only. In this page, we present the necessary start up parameters and API calls to get it up and running.

Deployment

Transaction endorsement is disabled by default, but it can be enabled easily at start up. Please note that it cannot be enabled later at runtime.

Docker-compose

Set the following environment variables to enable transaction endorsement in a docker-compose deployment:

BASH
TRANSACTION_ENDORSEMENT_ENABLED=true
TRANSACTION_ENDORSEMENT_FLAGS=--endorser-protocol-role 'author' --auto-request-endorsement --auto-write-transactions --auto-create-revocation-transactions

Please ensure that TRANSACTION_ENDORSEMENT_FLAGS contains all flags described above for a proper functioning of the transaction endorsement in the Lissi Agent.

Kubernetes

Set the configuration option acapy.transactionEndorsement.enabled to true in order to enable transaction endorsement in a Kubernetes deployment.

Usage

Designate an Endorser

At the moment, designating an endorser is only supported through the HTTP API. It will be possible to do this through the Admin UI in the future.

  1. Contact your Endorser’s administrators to get their agent’s public DID.

  2. Establish a connection to the desired Endorser agent (for more information, see Connections).

  3. Designate the established connection as your Endorser with an API call to POST | /ctrl/api/v1.0/transactions/set-endorser with query parameters connectionId, endorserDid, and endorserName.

  4. If you wish to update your Endorser’s information, subsequent calls to POST | /ctrl/api/v1.0/transactions/set-endorser will update the active Endorser.

Retrieve Endorsement Configuration

An API call to GET | /ctrl/api/v1.0/transactions/endorsement-config will return the current endorsement configuration, including the Endorser’s information if one has been designated.

Request Endorsement

If an Endorser has been designated successfully, requesting endorsement and subsequent writing of transactions will be handled automatically by the Lissi Agent.

Transactions that require endorsement include:

  • Schema creation

  • Credential Definition creation

  • DID promotion

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.