JavaScript isn't enabled in your browser, so this file can't be opened. Enable and reload.
XRPL SHAMap and NodeStore - Quiz
Select the best answer for each question.
Scoring Guide:
15-17 correct answers: Excellent! Your knowledge is solid.
12-14 correct answers: Good understanding. Review the areas you missed.
9-11 correct answers: Decent foundation. Revisit the module materials.
Below 9: Please review the module thoroughly before proceeding.
Sign in to Google
to save your progress.
Learn more
* Indicates required question
Email
*
Your email
What two concepts does the SHAMap combine, and what does each provide?
*
1 point
Merkle Trees (data structure) + Patricia Trie (efficient navigation)
Merkle Trees (encryption) + Patricia Trie (compression)
Merkle Trees (hashing) + Patricia Trie (sorting)
Merkle Trees (synchronization) + Patricia Trie (storage)
What is the branching factor of the SHAMap, and why was this value chosen?
*
1 point
2 (binary), for minimal memory overhead
16 (radix-16), balancing tree depth with manageable child overhead
256, to align with 256-bit keys
8, for alignment with byte boundaries
What does the SHAMap root hash represent?
*
1 point
Just the hash of the root node
A cryptographic commitment to the entire tree state
The hash of only the leaf nodes
A random value for identification
What are the three types of nodes in a SHAMap, and what does each contain?
*
1 point
Leaf nodes (data), Inner nodes (hashes), Root nodes (both)
Data nodes (accounts), Index nodes (hashes), Header nodes (metadata)
Inner nodes (child hashes only), Leaf nodes (data items), Root (always inner)
Primary nodes (data), Secondary nodes (hashes), Tertiary nodes (pointers)
What is the purpose of the copy-on-write (COW) mechanism in SHAMap:
*
1 point
To prevent concurrent access to the same node
To enable safe sharing of nodes between SHAMap instances without affecting other instances
To automatically duplicate all data in memory
To encrypt sensitive data before storage
What is a critical limitation of immutable SHAMaps, and why does this limitation exist?
*
1 point
They cannot be serialized to disk
They cannot be trimmed—once a node is loaded, it remains in memory forever
They cannot be copied to other nodes
They cannot store more than 1000 items
When a single account's balance is modified, how the SHAMap ensures the root hash changes:
*
1 point
The root hash is randomly regenerated
The account hash changes → parent hash changes → propagates up → root hash changes
Only the leaf node hash changes; the root stays the same
The root hash is manually updated by the operator
How does hash-based comparison enable efficient synchronization between nodes?
*
1 point
It compresses the data before transmission
It compares entire subtrees by comparing single hash values, only drilling into differing subtrees
It only transmits leaf nodes, not inner nodes
It uses parallel downloads to speed up the process
Why are Merkle proofs efficient for verifying data inclusion in a SHAMap?
*
1 point
They contain the entire tree
They are O(log N) in tree size, typically only 5-10 nodes for large trees
They use compression algorithms
They are O(1) size regardless of tree size
What are the core components of a NodeObject?
*
1 point
Just the hash and data
Type (identifying content category), Hash (unique identifier), Data (payload)
Type, Hash, Data, and metadata about creation time
Only the data, with hash computed on demand
How does NodeStore fit into the overall XRPL architecture?
*
1 point
It's just for temporary caching during transactions
It provides persistent storage layer, sits between SHAMap (logic) and Database backend (physical storage)
It's optional and only used by archive nodes
It directly stores account balances
What is the benefit of NodeStore's backend abstraction layer?
*
1 point
It makes the system slower but more secure
It allows multiple database implementations (RocksDB, NuDB, etc.) without changing application code
It only works with one specific database
It removes the need for caching
What is the impact of TaggedCache on NodeStore performance:
*
1 point
It adds overhead and slows everything down
Cache hits are ~1-10 microseconds, misses are ~1-10 milliseconds; 90%+ hit rates make it critical
It only stores metadata, not actual data
It's not important for performance
What is the division of responsibility between SHAMap and NodeStore:
*
1 point
SHAMap handles everything; NodeStore is irrelevant
SHAMap: Structure + Verification + Algorithms; NodeStore: Persistence + Caching + Storage
NodeStore: Structure + Algorithms; SHAMap: Just caching
They are redundant systems that do the same thing
What problem does the transaction tree solve, and why is NodeStore's persistence critical for this?
*
1 point
It just stores transaction data for audit purposes
Without it, multiple different transaction sequences could produce the same final state, undermining verifiability
It's only used for historical lookups
It prevents fraud
Why is the rotating database necessary for production XRPL nodes?
*
1 point
It improves performance
It enables online deletion of old data without downtime while maintaining bounded disk usage
It's only used for backup
It reduces memory usage
How does XRPL use immutable nodes and caching to optimize memory usage for multiple ledger snapshots?
*
1 point
Each snapshot gets its own complete copy of all data
Snapshots share unmodified subtrees through immutable nodes; only modified paths need new copies
All snapshots reference the same single data structure
Memory optimization isn't possible with snapshots
Submit
Clear form
This form was created inside of XRPL Commons.
Does this form look suspicious?
Report
Forms
Help and feedback
Help Forms improve
Report