hyperledger-labs / business-partner-agent

The Business Partner Agent is a SSI wallet and controller based on aries cloud agent python.
https://labs.hyperledger.org/business-partner-agent/
Apache License 2.0
56 stars 48 forks source link

Support transaction author role #799

Open etschelp opened 1 year ago

etschelp commented 1 year ago

Currently all BPA's need the indy endorser role to be able to function. This is fine for most use-cases, but a more realistic scenario is that not all ledgers will allow this, therefore all ledger write operations need to go through another agent with the endorser role.

see also: https://github.com/hyperledger/aries-cloudagent-python/blob/main/Endorser.md

This means for the BPA:

  1. Decide if a. it is enough to set all endorser related flags on the acapy level with everything set to auto, or if b. the endorser needs to be configured by the user (acapy rest calls instead of flags)
  2. Add a new BPA startup parameter trx_author=true. If this is set all ledger write operations are on hold. The exception could be if there is already an endorser preconfigured (1a), then the transaction immediately will go to the endorser. Otherwise an endorser needs to be configured first (1b).
  3. If 1b - Add an option to configure one or more partners as endorsers. Add an option to set a default endorser.
  4. All ledger write operations now need to be displayed with a status (probably: requested, endorsed, rejected, written - check acypy events). The status needs to be displayed either in a separate section or with the table row.

Transactions that need endorsement: