Expand description
Generic and production vote commitment tree servers.
GenericTreeServer is a single parameterised struct that backs both the
production server (TreeServer, KV-backed) and the in-memory test/POC
server. The only difference between the two is the shard store
implementation they use.
SyncableServer wraps GenericTreeServer and adds per-block leaf
tracking (blocks, pending_leaves, pending_start) needed to implement
crate::sync_api::TreeSyncApi. This is a sync-protocol concern, not a
tree concern, so it lives in a separate wrapper rather than on the core
tree type. MemoryTreeServer is a convenience alias for
SyncableServer<MemoryShardStore<…>>.
In production, TreeServer is backed by a KvShardStore so all shard
reads/writes go directly to the Cosmos KV store through Go callbacks,
giving ShardTree true lazy loading.
Structs§
- Generic
Tree Server - An append-only Poseidon Merkle tree server backed by any
shardtree::store::ShardStore. - Syncable
Server - A
GenericTreeServeraugmented with per-block leaf tracking for thecrate::sync_api::TreeSyncApi.
Enums§
- Append
From KvError - Error returned by
TreeServer::append_from_kv. - Checkpoint
Error - Error returned by
GenericTreeServer::checkpointandSyncableServer::checkpoint.
Type Aliases§
- Memory
Tree Server - In-memory vote commitment tree for tests and the POC helper server.
- Tree
Server - Production vote commitment tree backed by the Cosmos KV store.