Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrInvalidTrie indicates something wrong causing invalid operation ErrInvalidTrie = errors.New("invalid trie operation") // ErrNotExist indicates entry does not exist ErrNotExist = errors.New("not exist in trie") // ErrEndOfIterator defines an error which will be returned ErrEndOfIterator = errors.New("hit the end of the iterator, no more item") )
Functions ¶
This section is empty.
Types ¶
type KVStore ¶
type KVStore interface { // Start starts the KVStore Start(context.Context) error // Stop stops the KVStore Stop(context.Context) error // Put puts key, value pair into KVStore Put([]byte, []byte) error // Delete deletes record from KVStore by key Delete([]byte) error // Get gets the value from KVStore by key Get([]byte) ([]byte, error) }
KVStore defines an interface for storing trie data as key-value pair
func NewKVStore ¶
func NewKVStore(bucket string, dao db.KVStoreBasic) (KVStore, error)
NewKVStore creates a new KVStore
type Trie ¶
type Trie interface { // Start starts the trie and the corresponding dependencies Start(context.Context) error // Stop stops the trie Stop(context.Context) error // Upsert inserts a new entry Upsert([]byte, []byte) error // Get retrieves an existing entry Get([]byte) ([]byte, error) // Delete deletes an entry Delete([]byte) error // RootHash returns trie's root hash RootHash() ([]byte, error) // SetRootHash sets a new root to trie SetRootHash([]byte) error // IsEmpty returns true is this is an empty trie IsEmpty() bool // Clone clones a trie with a new kvstore Clone(KVStore) (Trie, error) }
Trie is the interface of Merkle Patricia Trie
type TwoLayerTrie ¶
type TwoLayerTrie interface { // Start starts the layer one trie Start(context.Context) error // Stop stops the layer one trie Stop(context.Context) error // RootHash returns the layer one trie root RootHash() ([]byte, error) // SetRootHash sets root hash for layer one trie SetRootHash([]byte) error // Get returns the value in layer two Get([]byte, []byte) ([]byte, error) // Upsert upserts an item in layer two Upsert([]byte, []byte, []byte) error // Delete deletes an item in layer two Delete([]byte, []byte) error }
TwoLayerTrie is a trie data structure with two layers
Click to show internal directories.
Click to hide internal directories.