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:
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.
Contact your Endorser’s administrators to get their agent’s public DID.
Establish a connection to the desired Endorser agent (for more information, see Connections).
Designate the established connection as your Endorser with an API call to
POST | /ctrl/api/v1.0/transactions/set-endorser
with query parametersconnectionId
,endorserDid
, andendorserName
.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