Add an OCA-Bundle object type to the ledger
swcurran opened this issue · 0 comments
We've had some conversations (presentation and recording at a recent Indy Contributors Meeting) in the community about adding support on an Indy ledger for storing OCA Bundles such that they can be used in alignment with the OCA for Aries (PR for two RFCs -- OCA for Aries and OCA for Aries Style Guide) initiative.
Proposed approach:
- Add a new transaction type
OCABundle
for writing and resolving. - The OCABundles must be JSON and compliant with OCA Specification.
- Some validation of the OCABundle must be performed, including verifying the SAIDs for the Capture Base and each overlay.
- Consideration may be given to additional verification checking of the OCABundle, such as the permitted overlay types.
- Each OCABundle object MUST be associated with either a
Schema
object or aCredDef
object, and MUST be published by the creator of the object to which the OCABundle is associated. - A publisher of a
Schema
orCredDef
MAY publish multiple OCABundle transaction associated with theSchema
orCredDef
. - A client may resolve OCABundle objects using the following read transactions:
- A read transaction for an OCABundle will by default return the latest version of the given OCABundle.
- A read transaction of a Schema will return the latest associated OCABundle, if any.
- A read transaction of a CredDef will return the latest associated OCABundles to the
CredDef
and theSchema
associated with the CredDef, if any. - Any of the read transactions that returns an OCABundle may include a time (aka
versionTime
from the DID Core Spec.) and the ledger will return the OCABundle(s) active on the ledger at that time, if any. - Any specific OCABundle object may be retrieved via its ledger
TxnID
In addition to changes to Indy Node and Indy Plenum to implement this capability, corresponding changes are needed to Indy VDR to enable clients to write and read OCABundle objects, as well as to the Indy CLI.
The capability should be implemented in alignment with the Hyperledger AnonCreds specification such that the same capability can be added to other Verifiable Data Registries (VDRs).