Utreexo, State Commitments, and Lite Wallet support - #57
Draft
akumaigorodski wants to merge 4 commits into
Draft
akumaigorodski wants to merge 4 commits into
akumaigorodski wants to merge 4 commits into
Conversation
General rationale: lite wallet is UTXO-based so strictly speaking it does not need to know tx history, however, it is still nice to show users actual tx history so they can figure out what was going on. However again, storing full tx history is too demanding for a full node so it is capped.
Add a compact address/outpoint index and synchronize it with the primary UTXO database across block and two-way-peg transitions. Preserve creation heights in spent entries for rollback, expose height-filtered node queries, and update callers and tests.
Define the BLAKE3 hashing format and serializable accumulator types. Add archive databases for: - accumulators: infrequent full snapshots keyed by block hash - accumulator_diffs: per-block UTXO changes - accumulator_reorg_floor: oldest reconstructible height Add pruning helpers and storage round-trip tests.
Author
|
So far this is the first point of the plan and it only touches proposed storage formats such as:
The general rationale is that lite wallet sync should not be a computational/traffic hit for a full node and it should be able to serve everything with minimal effort. When it comes to utreexo storage formats, this is a tradeoff between storing a lot of heavy memforest snapshots and taking a lot of computation/time to reconstruct current memforest from per-block diffs. All proposed databases are designed to be prunable (except UTXO database). |
akumaigorodski
marked this pull request as draft
July 31, 2026 07:27
Author
|
I propose to move though the whole plan by first reaching an agreement on what is already done, and then the further work will be based on that, point by point. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a second, more structured attempt to address three related areas:
This began as lite-wallet work, but all three depend on the same consensus-critical state commitment, which should be defined first.
Plan