Skip to content

Conversation

@demosdemon
Copy link
Contributor

This expands on the previously added key-value trie by adding a hashed variant and mechanism to convert from unhashed to hashed.

@demosdemon demosdemon force-pushed the brandon.leblanc/trie-node-trait branch from 7947e5b to 945becd Compare October 15, 2025 15:22
@demosdemon demosdemon force-pushed the brandon.leblanc/hashable-kvp-trie branch from 0c736bb to 6d3d794 Compare October 15, 2025 15:23
@demosdemon demosdemon marked this pull request as ready for review October 15, 2025 15:30
@demosdemon demosdemon requested a review from rkuris as a code owner October 15, 2025 15:30
demosdemon added a commit that referenced this pull request Oct 15, 2025
Key proofs are a sequence of trie nodes that follow a linear path
through the trie. This means we can reconstruct a narrow view of the
trie over that linear path. In this narrow view, each node can refer to
another full node or just its hash.

This resulting trie can (and will in an upcoming change) be hashed to
generate the same root hash. While merging with the key-value tries
from #1363 and #1365, we can iteratively verify the hash of each
layer and detect early if any node is incomplete.

The `Remote` edges can also point outside of the key range. We can use
these remote edges to identify holes in our overall trie and continue
synchronizing down those paths.
demosdemon added a commit that referenced this pull request Oct 15, 2025
Key proofs are a sequence of trie nodes that follow a linear path
through the trie. This means we can reconstruct a narrow view of the
trie over that linear path. In this narrow view, each node can refer to
another full node or just its hash.

This resulting trie can (and will in an upcoming change) be hashed to
generate the same root hash. While merging with the key-value tries
from #1363 and #1365, we can iteratively verify the hash of each
layer and detect early if any node is incomplete.

The `Remote` edges can also point outside of the key range. We can use
these remote edges to identify holes in our overall trie and continue
synchronizing down those paths.
demosdemon added a commit that referenced this pull request Oct 17, 2025
Key proofs are a sequence of trie nodes that follow a linear path
through the trie. This means we can reconstruct a narrow view of the
trie over that linear path. In this narrow view, each node can refer to
another full node or just its hash.

This resulting trie can (and will in an upcoming change) be hashed to
generate the same root hash. While merging with the key-value tries
from #1363 and #1365, we can iteratively verify the hash of each
layer and detect early if any node is incomplete.

The `Remote` edges can also point outside of the key range. We can use
these remote edges to identify holes in our overall trie and continue
synchronizing down those paths.
@demosdemon demosdemon force-pushed the brandon.leblanc/hashable-kvp-trie branch from 6d3d794 to 47e37cd Compare October 17, 2025 16:50
@demosdemon demosdemon force-pushed the brandon.leblanc/trie-node-trait branch from 945becd to c726158 Compare October 17, 2025 16:50
@demosdemon demosdemon force-pushed the brandon.leblanc/trie-node-trait branch from c726158 to cec42cb Compare October 29, 2025 16:16
@demosdemon demosdemon force-pushed the brandon.leblanc/hashable-kvp-trie branch from 47e37cd to 1c94590 Compare October 29, 2025 16:23
demosdemon added a commit that referenced this pull request Oct 29, 2025
Key proofs are a sequence of trie nodes that follow a linear path
through the trie. This means we can reconstruct a narrow view of the
trie over that linear path. In this narrow view, each node can refer to
another full node or just its hash.

This resulting trie can (and will in an upcoming change) be hashed to
generate the same root hash. While merging with the key-value tries
from #1363 and #1365, we can iteratively verify the hash of each
layer and detect early if any node is incomplete.

The `Remote` edges can also point outside of the key range. We can use
these remote edges to identify holes in our overall trie and continue
synchronizing down those paths.
demosdemon added a commit that referenced this pull request Oct 29, 2025
Key proofs are a sequence of trie nodes that follow a linear path
through the trie. This means we can reconstruct a narrow view of the
trie over that linear path. In this narrow view, each node can refer to
another full node or just its hash.

This resulting trie can (and will in an upcoming change) be hashed to
generate the same root hash. While merging with the key-value tries
from #1363 and #1365, we can iteratively verify the hash of each
layer and detect early if any node is incomplete.

The `Remote` edges can also point outside of the key range. We can use
these remote edges to identify holes in our overall trie and continue
synchronizing down those paths.
@demosdemon demosdemon force-pushed the brandon.leblanc/hashable-kvp-trie branch from 80c5288 to 7d9a19c Compare October 29, 2025 18:10
@demosdemon demosdemon force-pushed the brandon.leblanc/trie-node-trait branch from cec42cb to 07d7fa5 Compare October 29, 2025 18:10
Base automatically changed from brandon.leblanc/trie-node-trait to main October 29, 2025 18:16
This expands on the previously added key-value trie by adding
a hashed variant and mechanism to convert from unhashed to hashed.
@demosdemon demosdemon force-pushed the brandon.leblanc/hashable-kvp-trie branch from 7d9a19c to ed1fdda Compare October 29, 2025 18:19
@demosdemon demosdemon merged commit 9ed71b1 into main Oct 29, 2025
47 checks passed
@demosdemon demosdemon deleted the brandon.leblanc/hashable-kvp-trie branch October 29, 2025 18:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants