Available on crate feature
trie
only.Expand description
Re-exported reth trie types
Modules§
- added_
removed_ keys - Tracking of keys having been added and removed from the tries.
- array
- Parallel iterator types for arrays (
[T; N]
) - collections
- Parallel iterator types for standard collections
- forward_
cursor - The implementation of forward-only in-memory cursor.
- hash_
builder - The implementation of hash builder. MPT hash builder implementation.
- hashed_
cursor - The cursor implementations for navigating hashed state.
- iter
- Traits for writing parallel programs using an iterator-style interface
- metrics
- Trie calculation metrics.
- node_
iter - The iterators for traversing existing intermediate hashes and updated trie leaves.
- option
- Parallel iterator types for options
- prefix_
set - The implementation of a container for storing intermediate changes to a trie. The container indicates when the trie has been modified.
- prelude
- The rayon prelude imports the various
ParallelIterator
traits. The intention is that one can includeuse rayon::prelude::*
and have easy access to the various traits and methods you will need. - proof
- Merkle proof generation.
- range
- Parallel iterator types for ranges,
the type for values created by
a..b
expressions - range_
inclusive - Parallel iterator types for inclusive ranges,
the type for values created by
a..=b
expressions - result
- Parallel iterator types for results
- root
- Common root computation functions.
- serde_
bincode_ compat - Bincode-compatible serde implementations for trie types.
- slice
- Parallel iterator types for slices
- stats
- Trie calculation stats.
- str
- Parallel iterator types for strings
- string
- This module contains the parallel iterator types for owned strings
(
String
). You will rarely need to interact with it directly unless you have need to name one of the iterator types. - test_
utils - Collection of trie-related test utilities.
- trie_
cursor - The cursor implementations for navigating account and storage tries.
- triehash
- Implementation of hasher using our keccak256 hashing function
for compatibility with
triehash
crate. - updates
- Buffer for trie updates.
- vec
- Parallel iterator types for vectors (
Vec<T>
) - walker
- The trie walker for iterating over the trie nodes.
- witness
- Trie witness generation.
Structs§
- Account
Proof - The merkle proof with the relevant account info.
- Branch
Node - A branch node in an Ethereum Merkle Patricia Trie.
- Branch
Node Compact - A struct representing a branch node in an Ethereum trie.
- Branch
Node Ref - A reference to BranchNode and its state mask. NOTE: The stack may contain more items that specified in the state mask.
- Broadcast
Context - Provides context to a closure called by
broadcast
. - Chunked
Hashed Post State - An iterator that yields chunks of the state updates of at most
size
account and storage targets. - Chunked
Multi Proof Targets - An iterator that yields chunks of the proof targets of at most
size
account and storage targets. - Database
Account Trie Cursor trie-db
- A cursor over the account trie.
- Database
Hashed Account Cursor trie-db
- A struct wrapping database cursor over hashed accounts implementing
HashedCursor
for iterating over accounts. - Database
Hashed Cursor Factory trie-db
- A struct wrapping database transaction that implements
HashedCursorFactory
. - Database
Hashed Storage Cursor trie-db
- The structure wrapping a database cursor for hashed storage and
a target hashed address. Implements
HashedCursor
andHashedStorageCursor
for iterating over hashed storage. - Database
Storage Trie Cursor trie-db
- A cursor over the storage tries stored in the database.
- Database
Trie Cursor Factory trie-db
- Wrapper struct for database transaction implementing trie cursor factory trait.
- Decoded
Account Proof - The merkle proof with the relevant account info.
- Decoded
Multi Proof - This is a type of
MultiProof
that uses decoded proofs, meaning these proofs are stored as a collection ofTrieNode
s instead of RLP-encoded bytes. - Decoded
Storage Multi Proof - The decoded merkle multiproof for a storage trie.
- Decoded
Storage Proof - The merkle proof of the storage entry, using decoded proofs.
- Extension
Node - An extension node in an Ethereum Merkle Patricia Trie.
- Extension
Node Ref - Reference to the extension node. See ExtensionNode from more information.
- FnContext
- Provides the calling context to a closure called by
join_context
. - Hash
Builder - A component used to construct the root hash of the trie.
- Hashed
Accounts Sorted - Sorted account state optimized for iterating during state trie calculation.
- Hashed
Post State - Representation of in-memory hashed state.
- Hashed
Post State Sorted - Sorted hashed post state optimized for iterating during state trie calculation.
- Hashed
Storage - Representation of in-memory hashed storage.
- Hashed
Storage Sorted - Sorted hashed storage optimized for iterating during state trie calculation.
- Intermediate
State Root State - The intermediate state of the state root computation.
- Intermediate
Storage Root State - The intermediate state of a storage root computation along with the account.
- Keccak
KeyHasher - A key hasher that uses the Keccak-256 hash function.
- Leaf
Node - A leaf node represents the endpoint or terminal node in the trie. In other words, a leaf node is where actual values are stored.
- Leaf
Node Ref - Reference to the leaf node. See LeafNode from more information.
- Multi
Proof - The state multiproof of target accounts and multiproofs of their storage tries. Multiproof is effectively a state subtrie that only contains the nodes in the paths of target accounts.
- Multi
Proof Targets - Proof targets map.
- Nibbles
- Structure representing a sequence of nibbles.
- Prefix
SetLoader trie-db
- A wrapper around a database transaction that loads prefix sets within a given block range.
- RlpNode
- An RLP-encoded node.
- Scope
- Represents a fork-join scope which can be used to spawn any number of tasks.
See
scope()
for more information. - Scope
Fifo - Represents a fork-join scope which can be used to spawn any number of tasks.
Those spawned from the same thread are prioritized in relative FIFO order.
See
scope_fifo()
for more information. - State
Root StateRoot
is used to compute the root node of a state trie.- Storage
Multi Proof - The merkle multiproof of storage trie.
- Storage
Proof - The merkle proof of the storage entry.
- Storage
Root StorageRoot
is used to compute the root node of an account storage trie.- Storage
Trie Entry - Account storage trie node.
- Stored
Nibbles - The representation of nibbles of the merkle trie stored in the database.
- Stored
Nibbles SubKey - The representation of nibbles of the merkle trie stored in the database.
- Stored
SubNode - Walker sub node for storing intermediate state root calculation state in the database.
- Thread
Builder - Thread builder used for customization via
ThreadPoolBuilder::spawn_handler()
. - Thread
Pool - Represents a user-created thread pool.
- Thread
Pool Build Error - Error when initializing a thread pool.
- Thread
Pool Builder - Used to create a new
ThreadPool
or to configure the global rayon thread pool. - Trie
Account - Represents an TrieAccount in the account trie.
- Trie
Input - Inputs for trie-related computations.
- Trie
Mask - A struct representing a mask of 16 bits, used for Ethereum trie operations.
Enums§
- State
Root Progress - The progress of the state root computation.
- Storage
Root Progress - The progress of a storage root calculation.
- Trie
Node - Enum representing an MPT trie node.
- Trie
Type - Trie type for differentiating between various trie calculations.
- Yield
- Result of
yield_now()
oryield_local()
.
Constants§
- CHILD_
INDEX_ RANGE - The range of valid child indexes.
- EMPTY_
ROOT_ HASH - Root hash of an empty trie.
- TRIE_
ACCOUNT_ RLP_ MAX_ SIZE - The maximum size of RLP encoded trie account in bytes. 2 (header) + 4 * 1 (field lens) + 8 (nonce) + 32 * 3 (balance, storage root, code hash)
Traits§
- Database
Hashed Post State trie-db
- Extends
HashedPostState
with operations specific for working with a database transaction. - Database
Hashed Storage trie-db
- Extends
HashedStorage
with operations specific for working with a database transaction. - Database
Proof trie-db
- Extends
Proof
with operations specific for working with a database transaction. - Database
State Root trie-db
- Extends
StateRoot
with operations specific for working with a database transaction. - Database
Storage Proof trie-db
- Extends
StorageProof
with operations specific for working with a database transaction. - Database
Storage Root trie-db
- Extends
StorageRoot
with operations specific for working with a database transaction. - Database
Trie Witness trie-db
- Extends
TrieWitness
with operations specific for working with a database transaction. - KeyHasher
- Trait for hashing keys in state.
Functions§
- broadcast
- Executes
op
within every thread in the current thread pool. If this is called from a non-Rayon thread, it will execute in the global thread pool. Any attempts to usejoin
,scope
, or parallel iterators will then operate within that thread pool. When the call has completed on each thread, returns a vector containing all of their return values. - current_
num_ threads - Returns the number of threads in the current registry. If this code is executing within a Rayon thread pool, then this will be the number of threads for the thread pool of the current thread. Otherwise, it will be the number of threads for the global thread pool.
- current_
thread_ index - If called from a Rayon worker thread, returns the index of that
thread within its current pool; if not called from a Rayon thread,
returns
None
. - encode_
path_ leaf - Encodes a given path leaf as a compact array of bytes.
- in_
place_ scope - Creates a “fork-join” scope
s
and invokes the closure with a reference tos
. This closure can then spawn asynchronous tasks intos
. Those tasks may run asynchronously with respect to the closure; they may themselves spawn additional tasks intos
. When the closure returns, it will block until all tasks that have been spawned intos
complete. - in_
place_ scope_ fifo - Creates a “fork-join” scope
s
with FIFO order, and invokes the closure with a reference tos
. This closure can then spawn asynchronous tasks intos
. Those tasks may run asynchronously with respect to the closure; they may themselves spawn additional tasks intos
. When the closure returns, it will block until all tasks that have been spawned intos
complete. - join
- Takes two closures and potentially runs them in parallel. It returns a pair of the results from those closures.
- join_
context - Identical to
join
, except that the closures have a parameter that provides context for the way the closure has been called, especially indicating whether they’re executing on a different thread than wherejoin_context
was called. This will occur if the second job is stolen by a different thread, or ifjoin_context
was called from outside the thread pool to begin with. - max_
num_ threads - Returns the maximum number of threads that Rayon supports in a single thread pool.
- rlp_
node Deprecated - Given an RLP-encoded node, returns it either as
rlp(node)
orrlp(keccak(rlp(node)))
. - scope
- Creates a “fork-join” scope
s
and invokes the closure with a reference tos
. This closure can then spawn asynchronous tasks intos
. Those tasks may run asynchronously with respect to the closure; they may themselves spawn additional tasks intos
. When the closure returns, it will block until all tasks that have been spawned intos
complete. - scope_
fifo - Creates a “fork-join” scope
s
with FIFO order, and invokes the closure with a reference tos
. This closure can then spawn asynchronous tasks intos
. Those tasks may run asynchronously with respect to the closure; they may themselves spawn additional tasks intos
. When the closure returns, it will block until all tasks that have been spawned intos
complete. - spawn
- Puts the task into the Rayon thread pool’s job queue in the “static”
or “global” scope. Just like a standard thread, this task is not
tied to the current stack frame, and hence it cannot hold any
references other than those with
'static
lifetime. If you want to spawn a task that references stack data, use thescope()
function to create a scope. - spawn_
broadcast - Spawns an asynchronous task on every thread in this thread pool. This task
will run in the implicit, global scope, which means that it may outlast the
current stack frame – therefore, it cannot capture any references onto the
stack (you will likely need a
move
closure). - spawn_
fifo - Fires off a task into the Rayon thread pool in the “static” or
“global” scope. Just like a standard thread, this task is not
tied to the current stack frame, and hence it cannot hold any
references other than those with
'static
lifetime. If you want to spawn a task that references stack data, use thescope_fifo()
function to create a scope. - word_
rlp Deprecated - Optimization for quick RLP-encoding of a 32-byte word.
- yield_
local - Cooperatively yields execution to local Rayon work.
- yield_
now - Cooperatively yields execution to Rayon.