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.