Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CheckpointHashesHolder ¶
type CheckpointHashesHolder interface { Put(rootHash []byte, hashes ModifiedHashes) bool RemoveCommitted(lastCommittedRootHash []byte) Remove(hash []byte) ShouldCommit(hash []byte) bool IsInterfaceNil() bool }
CheckpointHashesHolder is used to hold the hashes that need to be committed in the future state checkpoint
type DBWriteCacher ¶
type DBWriteCacher interface { Put(key, val []byte) error Get(key []byte) ([]byte, error) Remove(key []byte) error Close() error IsInterfaceNil() bool }
DBWriteCacher is used to cache changes made to the trie, and only write to the database when it's needed
type ModifiedHashes ¶
type ModifiedHashes map[string]struct{}
ModifiedHashes is used to memorize all old hashes and new hashes from when a trie is committed
func (ModifiedHashes) Clone ¶
func (mh ModifiedHashes) Clone() ModifiedHashes
Clone is used to create a clone of the map
type NumNodesDTO ¶
NumNodesDTO represents the DTO structure that will hold the number of nodes split by category and other trie structure relevant data such as maximum number of trie levels including the roothash node and all leaves
type SnapshotDbHandler ¶
type SnapshotDbHandler interface { DBWriteCacher IsInUse() bool DecreaseNumReferences() IncreaseNumReferences() MarkForRemoval() MarkForDisconnection() SetPath(string) }
SnapshotDbHandler is used to keep track of how many references a snapshot db has
type StorageManager ¶
type StorageManager interface { Database() DBWriteCacher TakeSnapshot([]byte, bool, chan core.KeyValueHolder) SetCheckpoint([]byte, chan core.KeyValueHolder) GetSnapshotThatContainsHash(rootHash []byte) SnapshotDbHandler IsPruningEnabled() bool IsPruningBlocked() bool EnterPruningBufferingMode() ExitPruningBufferingMode() GetSnapshotDbBatchDelay() int AddDirtyCheckpointHashes([]byte, ModifiedHashes) bool Remove(hash []byte) error Close() error IsInterfaceNil() bool }
StorageManager manages all trie storage operations
type SyncStatisticsHandler ¶
type SyncStatisticsHandler interface { Reset() AddNumReceived(value int) AddNumLarge(value int) SetNumMissing(rootHash []byte, value int) NumReceived() int NumLarge() int NumMissing() int IsInterfaceNil() bool }
SyncStatisticsHandler defines the methods for a component able to store the sync statistics for a trie
type Trie ¶
type Trie interface { Get(key []byte) ([]byte, error) Update(key, value []byte) error Delete(key []byte) error RootHash() ([]byte, error) Commit() error Recreate(root []byte) (Trie, error) String() string GetObsoleteHashes() [][]byte GetDirtyHashes() (ModifiedHashes, error) GetOldRoot() []byte GetSerializedNodes([]byte, uint64) ([][]byte, uint64, error) GetSerializedNode([]byte) ([]byte, error) GetNumNodes() NumNodesDTO GetAllLeavesOnChannel(rootHash []byte) (chan core.KeyValueHolder, error) GetAllHashes() ([][]byte, error) GetProof(key []byte) ([][]byte, error) VerifyProof(key []byte, proof [][]byte) (bool, error) GetStorageManager() StorageManager Close() error IsInterfaceNil() bool }
Trie is an interface for Merkle Trees implementations
type TrieCreateArgs ¶
type TrieCreateArgs struct { TrieStorageConfig config.StorageConfig ShardID string PruningEnabled bool CheckpointsEnabled bool MaxTrieLevelInMem uint }
TrieCreateArgs holds arguments for calling the Create method on the TrieFactory
type TriePruningIdentifier ¶
type TriePruningIdentifier byte
TriePruningIdentifier is the type for trie pruning identifiers
const ( // OldRoot is appended to the key when oldHashes are added to the evictionWaitingList OldRoot TriePruningIdentifier = 0 // NewRoot is appended to the key when newHashes are added to the evictionWaitingList NewRoot TriePruningIdentifier = 1 )