Storage and snapshots
State persistence is provided by the mazze-storage crate. It combines a Merkle Patricia Trie (MPT) with snapshotting and delta layers to balance performance and history retention.
Storage layers
Delta MPTs: append-only changes between snapshots.
Snapshot MPTs: compact state snapshots at selected epochs.
State DB backend: MDBX by default, configurable via
MdbxConfig.
StorageManager and state access
StorageManager and StateManager provide:
Read/write access to the current state.
Snapshot creation and pruning.
Proof generation and state sync support.
Snapshot policy
StorageConfiguration controls:
snapshot_epoch_countandera_epoch_count.Extra snapshots for sync (
ProvideExtraSnapshotSyncConfig).Cache sizes and open snapshot limits.
Directory layout under
storage_db/.
Interaction with consensus
BlockDataManager keeps a StateAvailabilityBoundary describing which epoch states can be read. This allows full nodes to prune old state while still serving recent queries.
Key source files
crates/dbs/storage/src/lib.rscrates/dbs/storage/src/state_manager.rscrates/dbs/storage/src/impls/storage_manager/snapshot_manager.rscrates/dbs/storage/src/impls/merkle_patricia_trie/mod.rscrates/mazzecore/core/src/block_data_manager/mod.rs
Last updated