-
Notifications
You must be signed in to change notification settings - Fork 516
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add new RFC, design of "Sign Transaction" protocol -- perhaps Indy specific #736
Comments
@ianco -- the idea here is that you work on the design. You may also get to implement, but we've had others that might be able to do the implementation -- perhaps a dev from @jadhavajay 's team at AyanWorks. |
Who is responsible for accepting the TAA? Is it the transaction author or the endorser? (Or both?) |
The transaction author. Slowly now.. TAA -- "Transaction Author Agreement" |
:-) |
I suggest to leverage a couple of existing rfc's:
The basic signing protocol is:
|
How this fits into existing protocols: Protocols that write to the ledger (public did, schema, cred def, revocation registry) need to incorporate the above signing protocol. The aca-py agent will need to be configured with either (a) an endorser DID, or (b) a (list of) endorser connection(s) who can sign transactions. For aca-py's with an endorser did, they can just write to the ledger. Otherwise, once the ledger transaction is prepared for the above protocols and is ready to write to the ledger, it will be written to a persistent queue and sent to each endorser. (aca-py will need to know how many signatures are required and what endorsers are available. Endorsers obviously need to support the signing protocol.) As endorser responses are received (signatures or non-signatures) they are collated against the transaction (in the persistent queue) and once enough transactions are received the transaction is written to the ledger. Subsequent responses can be ignored. The initiating protocol (public did, schema, credential definition, revocation registry) may need to be continued. If not enough responses are received within (timeframe) then the transaction is timed out and the initiating protocol may need to be errored out and rolled back. |
aca-py API needs to be enhanced to:
|
Thoughts on the three comments:
|
One more thought. I question using Q&A for this vs. having another protocol. At minimum we'll want to update Q&A to reflect how it will be used. But I'm guessing that doing this will not be as easy as just implementing Q&A (as defined now) and adding decorators. |
Thanks @jadhavajay ! We talked about this on our internal sprint review todau. Ian is going to do some more refinements to the docs and perhaps do a WIP/Draft PR that does a little bit of the work, but leaves the heavylifting. @ianco I'd say once you have things finalized, do a new Issue that has the (as best we know it) solution defined and we'll close this issue. The implementation will start from there, and the conversation on that issue will be about implementation details vs. the design itself. |
Also - let's decide what RFC update is needed -- if we are going to use Q&A and we need to add details to it or if this will be a new PR. Oh and one more thing. Do keep in mind the Aries Toolbox part of this so that we can see if we can make that happen. |
Hackmd doc is updated: https://hackmd.io/5LzMhfsMQBevB5V2tKz4hA?view |
@jadhavajay @swcurran I've been updating the hackmd doc with my thoughts around the design, can we schedule a call early next week to discuss? Monday is a holiday here so sometime from Tuesday onwards ... I'm in Victoria BC (Pacific Time) but am flexible to do an early morning or an evening call. |
Sorry for the late reply on this @ianco. Yes, we can schedule a call to discuss. Please suggest if this week is still good for you. |
CC: @HarshMultani & @ankita-p17 |
Perhaps we can cover on the ACA-Pug meeting today? |
I think we can. |
Are you planning to let the endorser optionally write the completely signed transactions to the ledger itself, instead of returning it back to the TA? |
Not on the plan right now. How about adding at least an issue about that -- ideally a PR :-). Thanks! |
Yes, there is an issue about that. And it should be done in some days |
A common use case on Indy is the need for a Transaction Author that is not an Endorser to prepare a transaction for the ledger, pass it to an Endorser for a signature and on receipt, execute the transaction. This is explored in this HackMD document, in this presentation (https://docs.google.com/presentation/d/1bF_Su5m-kfFxcFL7xVlzPAEo3isnQrkqP4T2s3mMB2Y/edit?usp=sharing) and was discussed in this Aries WG Call ("Please Sign This" item).
Several questions are open about this:
This task is to come up with a sufficient design for this feature that we can implement.
The text was updated successfully, but these errors were encountered: