Open swcurran opened 1 year ago
Adding a document we've been working on for context: https://docs.google.com/document/d/1PtuRc217PhNZLI9xXqvPlMHuBN4g-cm-vJstA3niruA/edit#. Will add a hackmd dedicated to ACA-Py's architecture soon
Closing previously created issue on this topic #1877. For completeness, adding the description from that task here:
The existing AnonCreds handlers in ACA-Py handle AnonCreds objects that are rooted in Indy. We would like to make the AnonCreds implementation in ACA-Py VDR agnostic -- at least as much as possible. In the ACA-Pug Meeting on 2022.07.26 we talked about the need to abstract this as outlined in the following.
Resolver:
Provide an AnonCreds object resolver that given an ID for an AnonCreds object returns the object regardless of the VDR on which it resides. The resolver should be pluggable and should handle at least:
Existing AnonCred IDs, as implemented in the Indy SDK. did:indy AnonCreds objects, as specified in the did:indy specification Nice to have: Another VDR such did:web or did:cheqd Writer:
Provide an AnonCreds object writer that given an AnonCreds object writes it to a given VDR. Again, this should be pluggable, as although any given instance of ACA-Py will likely only write objects to one VDR, different instances will be writing to different VDRs.
Initially support VDRs should include the same ones as above. Special handling for a given VDR should be supported, but ideally hidden. An example would be the Indy Endorser handling. AFJ is working on a concept called "AnonCredsResourceService" that we should monitor. Nothing in writing on that yet, but we'll update this issue as more information is available.
Assigning this to @cjhowland as a representative of the Indicio team working on this as part of a BC Gov Code With Us Opportunity.
Work is happening to enable the use of ACA-Py on ledgers (or more accurately, VDRs) other than Indy. Such support also enables the use of "did:indy". To do this, enable: