-
Notifications
You must be signed in to change notification settings - Fork 102
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
tarodb+tarogarden: construct+store proof files on disk for all minted assets #66
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice! I see the pieces are coming together 🎉
Did a first pass to update my mental model. Will attempt to add RPC and itest coverage to this tomorrow.
A rebase would be useful as well here. |
f1fe724
to
416b329
Compare
Rebased! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! Neat to see the changes needed wrt. the state machine as well.
I'll come back to revisit the SQL and overall state machine structure.
416b329
to
2e538ea
Compare
Pushed up a fully rebased version. |
2e538ea
to
4cbf4dc
Compare
This will be used later to construct SPV proofs for the flat file format.
In this commit, we add a new function that creates asset minting proofs. In particular, it assumes that all assets are created in the same transaction, and that transaction only has a change output and the minting output.
Allows us to enforce other variants elsewhere, in particular, we want all script keys to also be unique.
Similar to the prior commit, we'll use this later to use an UPSERT to update a proof file if one already exists when we go to insert.
…sets In this commit, we extend the pending asset storage to also store the complete set of proof files for all the assets created in the batch. This ensures that once an asset is seen as final, we can query the for the proof file.
With this commit, we ensure that once an asset is created, we retain a proof of the event on disk. This will be used later for transfers, and also challenge/reveal instances.
This ensures that we're always inserting the compressed encoded key into the database.
4cbf4dc
to
e9a367b
Compare
Pushed up a commit to add that 33 byte constraint on all internal keys, and also display 33-byte keys on the RPC interface everywhere. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great update, everything now works well with the full keys being stored and returned in the RPC.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🚀
Seems ready for merge |
universe: add new federation envoy for managing federated universe sync
In this PR, we start to store a valid proof file for all minted assets on disk. Along the way we add a new (currently specific) routine for creating a minting file based on real data. For now we're just storing all the proof files directly in the database. In the future, I think we want to also have a replicator/archive the maintains the proof files both on disk and in the database. A third future source for replication would also be a base universe (for just the minting proofs) and also a universe/multi-verse, etc, etc.
In a follow up PR, we'll start to add verification+export RPC calls. These calls will be the future bridge for any variant of a send+receive flow.
Depends on #34