Expand description
Commonly used types for trie usage.
Modules§
- array
rayon
- Parallel iterator types for arrays (
[T; N]
) - collections
rayon
- Parallel iterator types for standard collections
- hash_
builder - The implementation of hash builder. MPT hash builder implementation.
- iter
rayon
- Traits for writing parallel programs using an iterator-style interface
- option
rayon
- 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
rayon
- 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
- Re-export Proof verification logic.
- range
rayon
- Parallel iterator types for ranges,
the type for values created by
a..b
expressions - range_
inclusive rayon
- Parallel iterator types for inclusive ranges,
the type for values created by
a..=b
expressions - result
rayon
- Parallel iterator types for results
- root
- Common root computation functions.
- serde_
bincode_ compat serde
andserde-bincode-compat
- Bincode-compatible serde implementations for trie types.
- slice
rayon
- Parallel iterator types for slices
- str
rayon
- Parallel iterator types for strings
- string
rayon
- 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. - triehash
test-utils
- Implementation of hasher using our keccak256 hashing function
for compatibility with
triehash
crate. - updates
- Buffer for trie updates.
- vec
rayon
- Parallel iterator types for vectors (
Vec<T>
)
Structs§
- Account
Proof - The merkle proof with the relevant account info.
- Branch
Node - Re-export A branch node in an Ethereum Merkle Patricia Trie.
- Branch
Node Compact - Re-export A struct representing a branch node in an Ethereum trie.
- Branch
Node Ref - Re-export A reference to BranchNode and its state mask. NOTE: The stack may contain more items that specified in the state mask.
- Broadcast
Context rayon
- 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. - 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 - Re-export An extension node in an Ethereum Merkle Patricia Trie.
- Extension
Node Ref - Re-export Reference to the extension node. See ExtensionNode from more information.
- FnContext
rayon
- Provides the calling context to a closure called by
join_context
. - Hash
Builder - Re-export 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.
- Keccak
KeyHasher - A key hasher that uses the Keccak-256 hash function.
- Leaf
Node - Re-export 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 - Re-export 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.
- RlpNode
- Re-export An RLP-encoded node.
- Scope
rayon
- Represents a fork-join scope which can be used to spawn any number of tasks.
See
scope()
for more information. - Scope
Fifo rayon
- 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. - Storage
Multi Proof - The merkle multiproof of storage trie.
- Storage
Proof - The merkle proof of the storage entry.
- 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 rayon
- Thread builder used for customization via
ThreadPoolBuilder::spawn_handler
. - Thread
Pool rayon
- Represents a user created thread-pool.
- Thread
Pool Build Error rayon
- Error when initializing a thread pool.
- Thread
Pool Builder rayon
- Used to create a new
ThreadPool
or to configure the global rayon thread pool. - Trie
Account - Re-export for convenience. Represents an TrieAccount in the account trie.
- Trie
Input - Inputs for trie-related computations.
- Trie
Mask - Re-export A struct representing a mask of 16 bits, used for Ethereum trie operations.
Enums§
- Trie
Node - Re-export Enum representing an MPT trie node.
- Yield
rayon
- Result of
yield_now()
oryield_local()
.
Constants§
- CHILD_
INDEX_ RANGE - Re-export The range of valid child indexes.
- EMPTY_
ROOT_ HASH - Re-export 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§
- KeyHasher
- Trait for hashing keys in state.
Functions§
- broadcast
rayon
- Executes
op
within every thread in the current threadpool. If this is called from a non-Rayon thread, it will execute in the global threadpool. Any attempts to usejoin
,scope
, or parallel iterators will then operate within that threadpool. When the call has completed on each thread, returns a vector containing all of their return values. - current_
num_ threads rayon
- 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 rayon
- 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 - Re-export Encodes a given path leaf as a compact array of bytes.
- in_
place_ scope rayon
- 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 rayon
- 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
rayon
- Takes two closures and potentially runs them in parallel. It returns a pair of the results from those closures.
- join_
context rayon
- 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 rayon
- Returns the maximum number of threads that Rayon supports in a single thread-pool.
- rlp_
node Deprecated - Re-export
Given an RLP-encoded node, returns it either as
rlp(node)
orrlp(keccak(rlp(node)))
. - scope
rayon
- 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 rayon
- 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
rayon
- Puts the task into the Rayon threadpool’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 rayon
- 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 rayon
- Fires off a task into the Rayon threadpool 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 - Re-export Optimization for quick RLP-encoding of a 32-byte word.
- yield_
local rayon
- Cooperatively yields execution to local Rayon work.
- yield_
now rayon
- Cooperatively yields execution to Rayon.