-
Notifications
You must be signed in to change notification settings - Fork 10
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
[DISCUSSION] BEEF_V2 & Atomic BEEF support #773
Comments
Hello. So I've been thinking about the need for some assurance that a batch of transactions is validated, and rejected as one. It sounds like v2/Atomic beef may be what I need specifically. The idea being we have a set of transactions that related to a business process. Currently we broadcast them on build essentially, but that has the drawback of sometimes having to unpick some application state when something bad happens. Now, if we adopt the batching approach, and issues during the building of the batch will allow is to reject prior to broadcasting therefore any batches we broadcast should be good .. but none the less .. it would still be nice to have the assurance that if one or more transactions in the batch fail to validate .. then the batch as a whole is rejected allowing for a tidier rollback of application state. Some thoughts from the trenches. |
Makes sense @1deepwaterz - an all or nothing option. I suppose the trouble might be that the issue could arise when broadcasting the transactions which is "no takey backsies" if something later goes wrong. Any validation ARC can do independently of that is UTXO lookup based. Something which we have on the roadmap, but doesn't currently happen. When you send EF and BEEF there's actually nothing checking to see if the input is spent. That's the most likely cause of error. So really this could be seen as another request to ensure there's a clear "yes/no" to the question of whether or not existing utxos in a set of transactions are spent. #770 So the steps we could take to solve your issue here:
|
Summary
Update to latest version of go-sdk which has inbuilt functions for parsing both BEEF_V1 and BEEF_V2, and Atomic BEEF.
/tx should support Atomic BEEF
/txs should support BEEF_V2
Perhaps we should maintain BEEF_V1 support for a while on both.
Motivation
Mixed reviews on using ARC with sets of transactions which happen together.
Description
The expectation is that v2 is a set of potentially unrelated transactions. We should be smart about parsing beef in general where we build up a dependency tree so there is some understanding of whether there are parents and children involved. We also should be cognizant of whether txs in the BEEF have Merkle Paths which means they are there for the purpose of SPV validation on receipt; or if they don't then to add them to the list of transactions which need to be broadcast in order of parent, child etc. The response could be an array of responses to each tx we attempted to broadcast, but callbacks ought to be fired off on an individual tx basis.
Additional References
Tone's feedback to the ARC dev team.
The text was updated successfully, but these errors were encountered: