Documentation ¶
Index ¶
- Variables
- func CheckTrieSyncerVersion(trieSyncerVersion int) error
- func CreateTrieStorageManager(args NewTrieStorageManagerArgs, options StorageManagerOptions) (common.StorageManager, error)
- func NewDepthFirstTrieSyncer(arg ArgTrieSyncer) (*depthFirstTrieSyncer, error)
- func NewDoubleListTrieSyncer(arg ArgTrieSyncer) (*doubleListTrieSyncer, error)
- func NewIterator(trie common.Trie) (*iterator, error)
- func NewMerkleProofVerifier(marshalizer marshal.Marshalizer, hasher hashing.Hasher) (*merkleProofVerifier, error)
- func NewSyncTrieStorageManager(tsm common.StorageManager) (*syncTrieStorageManager, error)
- func NewTrie(trieStorage common.StorageManager, msh marshal.Marshalizer, hsh hashing.Hasher, ...) (*patriciaMerkleTrie, error)
- func NewTrieStorageManager(args NewTrieStorageManagerArgs) (*trieStorageManager, error)
- func NewTrieStorageManagerWithoutCheckpoints(tsm common.StorageManager) (*trieStorageManagerWithoutCheckpoints, error)
- func NewTrieStorageManagerWithoutPruning(sm common.StorageManager) (*trieStorageManagerWithoutPruning, error)
- func NewTrieStorageManagerWithoutSnapshot(tsm common.StorageManager) (*trieStorageManagerWithoutSnapshot, error)
- func NewTrieSyncer(arg ArgTrieSyncer) (*trieSyncer, error)
- type ArgTrieSyncer
- type CheckpointHashesHolder
- type CollapsedBn
- func (*CollapsedBn) Descriptor() ([]byte, []int)
- func (this *CollapsedBn) Equal(that interface{}) bool
- func (m *CollapsedBn) GetEncodedChildren() [][]byte
- func (this *CollapsedBn) GoString() string
- func (m *CollapsedBn) Marshal() (dAtA []byte, err error)
- func (m *CollapsedBn) MarshalTo(dAtA []byte) (int, error)
- func (m *CollapsedBn) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*CollapsedBn) ProtoMessage()
- func (m *CollapsedBn) Reset()
- func (m *CollapsedBn) Size() (n int)
- func (this *CollapsedBn) String() string
- func (m *CollapsedBn) Unmarshal(dAtA []byte) error
- func (m *CollapsedBn) XXX_DiscardUnknown()
- func (m *CollapsedBn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *CollapsedBn) XXX_Merge(src proto.Message)
- func (m *CollapsedBn) XXX_Size() int
- func (m *CollapsedBn) XXX_Unmarshal(b []byte) error
- type CollapsedEn
- func (*CollapsedEn) Descriptor() ([]byte, []int)
- func (this *CollapsedEn) Equal(that interface{}) bool
- func (m *CollapsedEn) GetEncodedChild() []byte
- func (m *CollapsedEn) GetKey() []byte
- func (this *CollapsedEn) GoString() string
- func (m *CollapsedEn) Marshal() (dAtA []byte, err error)
- func (m *CollapsedEn) MarshalTo(dAtA []byte) (int, error)
- func (m *CollapsedEn) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*CollapsedEn) ProtoMessage()
- func (m *CollapsedEn) Reset()
- func (m *CollapsedEn) Size() (n int)
- func (this *CollapsedEn) String() string
- func (m *CollapsedEn) Unmarshal(dAtA []byte) error
- func (m *CollapsedEn) XXX_DiscardUnknown()
- func (m *CollapsedEn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *CollapsedEn) XXX_Merge(src proto.Message)
- func (m *CollapsedEn) XXX_Size() int
- func (m *CollapsedEn) XXX_Unmarshal(b []byte) error
- type CollapsedLn
- func (*CollapsedLn) Descriptor() ([]byte, []int)
- func (this *CollapsedLn) Equal(that interface{}) bool
- func (m *CollapsedLn) GetKey() []byte
- func (m *CollapsedLn) GetValue() []byte
- func (this *CollapsedLn) GoString() string
- func (m *CollapsedLn) Marshal() (dAtA []byte, err error)
- func (m *CollapsedLn) MarshalTo(dAtA []byte) (int, error)
- func (m *CollapsedLn) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*CollapsedLn) ProtoMessage()
- func (m *CollapsedLn) Reset()
- func (m *CollapsedLn) Size() (n int)
- func (this *CollapsedLn) String() string
- func (m *CollapsedLn) Unmarshal(dAtA []byte) error
- func (m *CollapsedLn) XXX_DiscardUnknown()
- func (m *CollapsedLn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *CollapsedLn) XXX_Merge(src proto.Message)
- func (m *CollapsedLn) XXX_Size() int
- func (m *CollapsedLn) XXX_Unmarshal(b []byte) error
- type EpochNotifier
- type IdleNodeProvider
- type InterceptedTrieNode
- func (inTn *InterceptedTrieNode) CheckValidity() error
- func (inTn *InterceptedTrieNode) Fee() *big.Int
- func (inTn *InterceptedTrieNode) GetSerialized() []byte
- func (inTn *InterceptedTrieNode) Hash() []byte
- func (inTn *InterceptedTrieNode) Identifiers() [][]byte
- func (inTn *InterceptedTrieNode) IsForCurrentShard() bool
- func (inTn *InterceptedTrieNode) IsInterfaceNil() bool
- func (inTn *InterceptedTrieNode) Nonce() uint64
- func (inTn *InterceptedTrieNode) ReceiverShardId() uint32
- func (inTn *InterceptedTrieNode) SenderAddress() []byte
- func (inTn *InterceptedTrieNode) SenderShardId() uint32
- func (inTn *InterceptedTrieNode) SetSerialized(serializedNode []byte)
- func (inTn *InterceptedTrieNode) SizeInBytes() int
- func (inTn *InterceptedTrieNode) String() string
- func (inTn *InterceptedTrieNode) Type() string
- type NewTrieStorageManagerArgs
- type RequestHandler
- type StorageManagerOptions
- type TimeoutHandler
- type TrieSyncer
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidLengthNode = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowNode = fmt.Errorf("proto: integer overflow") ErrUnexpectedEndOfGroupNode = fmt.Errorf("proto: unexpected end of group") )
var EmptyTrieHash = make([]byte, 32)
EmptyTrieHash returns the value with empty trie hash
var ErrChildPosOutOfRange = errors.New("the position of the child is out of range")
ErrChildPosOutOfRange is raised when the position of a child in a branch node is less than 0 or greater than 16
var ErrEmptyBranchNode = errors.New("the branch node is empty")
ErrEmptyBranchNode is raised when we reach an empty branch node (a node with no children)
var ErrEmptyExtensionNode = errors.New("the extension node is empty")
ErrEmptyExtensionNode is raised when we reach an empty extension node (a node with no child)
var ErrEmptyLeafNode = errors.New("the leaf node is empty")
ErrEmptyLeafNode is raised when we reach an empty leaf node (a node with no value)
var ErrInvalidEncoding = errors.New("cannot decode this invalid encoding")
ErrInvalidEncoding is raised when the encoded information cannot be decoded
var ErrInvalidLength = errors.New("invalid array length")
ErrInvalidLength signals that length of the array is invalid
var ErrInvalidLevelValue = errors.New("invalid trie level in memory value")
ErrInvalidLevelValue signals that the given value for maxTrieLevelInMemory is invalid
var ErrInvalidMaxHardCapForMissingNodes = errors.New("invalid max hardcap for missing nodes")
ErrInvalidMaxHardCapForMissingNodes signals that the maximum hardcap value for missing nodes is invalid
var ErrInvalidNode = errors.New("invalid node")
ErrInvalidNode is raised when we reach an invalid node
var ErrInvalidTrieSyncerVersion = errors.New("invalid trie syncer version")
ErrInvalidTrieSyncerVersion signals that an invalid trie syncer version was provided
var ErrInvalidTrieTopic = errors.New("invalid trie topic")
ErrInvalidTrieTopic signals that invalid trie topic has been provided
var ErrKeyNotFound = errors.New("key not found")
ErrKeyNotFound is raised when a key is not found
var ErrNilBranchNode = errors.New("the branch node is nil")
ErrNilBranchNode is raised when we reach a nil branch node
var ErrNilCheckpointHashesHolder = errors.New("nil checkpoint hashes holder")
ErrNilCheckpointHashesHolder signals that a nil checkpoint hashes holder was provided
var ErrNilContext = errors.New("nil context")
ErrNilContext signals that nil context has been provided
var ErrNilDatabase = errors.New("no database provided")
ErrNilDatabase is raised when a database operation is called, but no database is provided
var ErrNilExtensionNode = errors.New("the extension node is nil")
ErrNilExtensionNode is raised when we reach a nil extension node
var ErrNilHasher = errors.New("no hasher provided")
ErrNilHasher is raised when the NewTrie() function is called, but a hasher isn't provided
var ErrNilIdleNodeProvider = errors.New("nil idle node provider")
ErrNilIdleNodeProvider signals that a nil idle node provider was provided
var ErrNilLeafNode = errors.New("the leaf node is nil")
ErrNilLeafNode is raised when we reach a nil leaf node
var ErrNilMarshalizer = errors.New("no marshalizer provided")
ErrNilMarshalizer is raised when the NewTrie() function is called, but a marshalizer isn't provided
var ErrNilNode = errors.New("the node is nil")
ErrNilNode is raised when we reach a nil node
var ErrNilPathManager = errors.New("nil path manager")
ErrNilPathManager signals that a nil path manager has been provided
var ErrNilRequestHandler = errors.New("the request handler is nil")
ErrNilRequestHandler is raised when the given request handler is nil
var ErrNilRootHashHolder = errors.New("nil root hash holder provided")
ErrNilRootHashHolder signals that a nil root hash holder was provided
var ErrNilStorer = errors.New("nil storer")
ErrNilStorer is raised when a nil storer has been provided
var ErrNilTimeoutHandler = errors.New("nil timeout handler")
ErrNilTimeoutHandler signals that a nil timeout handler has been provided
var ErrNilTrie = errors.New("the trie is nil")
ErrNilTrie is raised when the trie is nil
var ErrNilTrieStorage = errors.New("nil trie storage provided")
ErrNilTrieStorage is raised when a nil trie storage is provided
var ErrNilTrieSyncStatistics = errors.New("nil trie sync statistics handler")
ErrNilTrieSyncStatistics signals that a nil trie sync statistics handler was provided
var ErrNodeNotFound = errors.New("the node is not present in the trie")
ErrNodeNotFound is raised when we try to get a node that is not present in the trie
var ErrTimeIsOut = errors.New("time is out")
ErrTimeIsOut signals that time is out
var ErrTrieSyncTimeout = errors.New("trie sync timeout")
ErrTrieSyncTimeout signals that a timeout occurred while syncing the trie
var ErrValueTooShort = errors.New("cannot remove bytes from value because value is too short")
ErrValueTooShort is raised when we try to remove something from a value, and the value is too short
var ErrWrongTypeAssertion = errors.New("wrong type assertion")
ErrWrongTypeAssertion signals that wrong type was provided
Functions ¶
func CheckTrieSyncerVersion ¶
CheckTrieSyncerVersion can check if the syncer version has a correct value
func CreateTrieStorageManager ¶
func CreateTrieStorageManager( args NewTrieStorageManagerArgs, options StorageManagerOptions, ) (common.StorageManager, error)
CreateTrieStorageManager creates a new trie storage manager based on the given type
func NewDepthFirstTrieSyncer ¶
func NewDepthFirstTrieSyncer(arg ArgTrieSyncer) (*depthFirstTrieSyncer, error)
NewDepthFirstTrieSyncer creates a new instance of trieSyncer that uses the depth-first algorithm
func NewDoubleListTrieSyncer ¶
func NewDoubleListTrieSyncer(arg ArgTrieSyncer) (*doubleListTrieSyncer, error)
NewDoubleListTrieSyncer creates a new instance of trieSyncer that uses 2 list for keeping the "margin" nodes. One is used for keeping track of the loaded nodes (their children will need to be checked) and the other one that holds missing nodes
func NewIterator ¶
NewIterator creates a new instance of trie iterator
func NewMerkleProofVerifier ¶
func NewMerkleProofVerifier(marshalizer marshal.Marshalizer, hasher hashing.Hasher) (*merkleProofVerifier, error)
NewMerkleProofVerifier creates a new instance of merkleProofVerifier
func NewSyncTrieStorageManager ¶
func NewSyncTrieStorageManager(tsm common.StorageManager) (*syncTrieStorageManager, error)
NewSyncTrieStorageManager creates a new instance of syncTrieStorageManager
func NewTrie ¶
func NewTrie( trieStorage common.StorageManager, msh marshal.Marshalizer, hsh hashing.Hasher, maxTrieLevelInMemory uint, ) (*patriciaMerkleTrie, error)
NewTrie creates a new Patricia Merkle Trie
func NewTrieStorageManager ¶
func NewTrieStorageManager(args NewTrieStorageManagerArgs) (*trieStorageManager, error)
NewTrieStorageManager creates a new instance of trieStorageManager
func NewTrieStorageManagerWithoutCheckpoints ¶
func NewTrieStorageManagerWithoutCheckpoints(tsm common.StorageManager) (*trieStorageManagerWithoutCheckpoints, error)
NewTrieStorageManagerWithoutCheckpoints creates a new instance of trieStorageManagerWithoutCheckpoints
func NewTrieStorageManagerWithoutPruning ¶
func NewTrieStorageManagerWithoutPruning(sm common.StorageManager) (*trieStorageManagerWithoutPruning, error)
NewTrieStorageManagerWithoutPruning creates a new instance of trieStorageManagerWithoutPruning
func NewTrieStorageManagerWithoutSnapshot ¶
func NewTrieStorageManagerWithoutSnapshot(tsm common.StorageManager) (*trieStorageManagerWithoutSnapshot, error)
NewTrieStorageManagerWithoutSnapshot creates a new trieStorageManagerWithoutSnapshot
func NewTrieSyncer ¶
func NewTrieSyncer(arg ArgTrieSyncer) (*trieSyncer, error)
NewTrieSyncer creates a new instance of trieSyncer
Types ¶
type ArgTrieSyncer ¶
type ArgTrieSyncer struct { Marshalizer marshal.Marshalizer Hasher hashing.Hasher DB common.StorageManager RequestHandler RequestHandler InterceptedNodes storage.Cacher ShardId uint32 Topic string TrieSyncStatistics common.SizeSyncStatisticsHandler MaxHardCapForMissingNodes int CheckNodesOnDisk bool TimeoutHandler TimeoutHandler }
ArgTrieSyncer is the argument for the trie syncer
type CheckpointHashesHolder ¶
type CheckpointHashesHolder interface { Put(rootHash []byte, hashes common.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 CollapsedBn ¶
type CollapsedBn struct {
EncodedChildren [][]byte `protobuf:"bytes,1,rep,name=EncodedChildren,proto3" json:"EncodedChildren,omitempty"`
}
func (*CollapsedBn) Descriptor ¶
func (*CollapsedBn) Descriptor() ([]byte, []int)
func (*CollapsedBn) Equal ¶
func (this *CollapsedBn) Equal(that interface{}) bool
func (*CollapsedBn) GetEncodedChildren ¶
func (m *CollapsedBn) GetEncodedChildren() [][]byte
func (*CollapsedBn) GoString ¶
func (this *CollapsedBn) GoString() string
func (*CollapsedBn) Marshal ¶
func (m *CollapsedBn) Marshal() (dAtA []byte, err error)
func (*CollapsedBn) MarshalToSizedBuffer ¶
func (m *CollapsedBn) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*CollapsedBn) ProtoMessage ¶
func (*CollapsedBn) ProtoMessage()
func (*CollapsedBn) Reset ¶
func (m *CollapsedBn) Reset()
func (*CollapsedBn) Size ¶
func (m *CollapsedBn) Size() (n int)
func (*CollapsedBn) String ¶
func (this *CollapsedBn) String() string
func (*CollapsedBn) Unmarshal ¶
func (m *CollapsedBn) Unmarshal(dAtA []byte) error
func (*CollapsedBn) XXX_DiscardUnknown ¶
func (m *CollapsedBn) XXX_DiscardUnknown()
func (*CollapsedBn) XXX_Marshal ¶
func (m *CollapsedBn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*CollapsedBn) XXX_Merge ¶
func (m *CollapsedBn) XXX_Merge(src proto.Message)
func (*CollapsedBn) XXX_Size ¶
func (m *CollapsedBn) XXX_Size() int
func (*CollapsedBn) XXX_Unmarshal ¶
func (m *CollapsedBn) XXX_Unmarshal(b []byte) error
type CollapsedEn ¶
type CollapsedEn struct { Key []byte `protobuf:"bytes,1,opt,name=Key,proto3" json:"Key,omitempty"` EncodedChild []byte `protobuf:"bytes,2,opt,name=EncodedChild,proto3" json:"EncodedChild,omitempty"` }
func (*CollapsedEn) Descriptor ¶
func (*CollapsedEn) Descriptor() ([]byte, []int)
func (*CollapsedEn) Equal ¶
func (this *CollapsedEn) Equal(that interface{}) bool
func (*CollapsedEn) GetEncodedChild ¶
func (m *CollapsedEn) GetEncodedChild() []byte
func (*CollapsedEn) GetKey ¶
func (m *CollapsedEn) GetKey() []byte
func (*CollapsedEn) GoString ¶
func (this *CollapsedEn) GoString() string
func (*CollapsedEn) Marshal ¶
func (m *CollapsedEn) Marshal() (dAtA []byte, err error)
func (*CollapsedEn) MarshalToSizedBuffer ¶
func (m *CollapsedEn) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*CollapsedEn) ProtoMessage ¶
func (*CollapsedEn) ProtoMessage()
func (*CollapsedEn) Reset ¶
func (m *CollapsedEn) Reset()
func (*CollapsedEn) Size ¶
func (m *CollapsedEn) Size() (n int)
func (*CollapsedEn) String ¶
func (this *CollapsedEn) String() string
func (*CollapsedEn) Unmarshal ¶
func (m *CollapsedEn) Unmarshal(dAtA []byte) error
func (*CollapsedEn) XXX_DiscardUnknown ¶
func (m *CollapsedEn) XXX_DiscardUnknown()
func (*CollapsedEn) XXX_Marshal ¶
func (m *CollapsedEn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*CollapsedEn) XXX_Merge ¶
func (m *CollapsedEn) XXX_Merge(src proto.Message)
func (*CollapsedEn) XXX_Size ¶
func (m *CollapsedEn) XXX_Size() int
func (*CollapsedEn) XXX_Unmarshal ¶
func (m *CollapsedEn) XXX_Unmarshal(b []byte) error
type CollapsedLn ¶
type CollapsedLn struct { Key []byte `protobuf:"bytes,1,opt,name=Key,proto3" json:"Key,omitempty"` Value []byte `protobuf:"bytes,2,opt,name=Value,proto3" json:"Value,omitempty"` }
func (*CollapsedLn) Descriptor ¶
func (*CollapsedLn) Descriptor() ([]byte, []int)
func (*CollapsedLn) Equal ¶
func (this *CollapsedLn) Equal(that interface{}) bool
func (*CollapsedLn) GetKey ¶
func (m *CollapsedLn) GetKey() []byte
func (*CollapsedLn) GetValue ¶
func (m *CollapsedLn) GetValue() []byte
func (*CollapsedLn) GoString ¶
func (this *CollapsedLn) GoString() string
func (*CollapsedLn) Marshal ¶
func (m *CollapsedLn) Marshal() (dAtA []byte, err error)
func (*CollapsedLn) MarshalToSizedBuffer ¶
func (m *CollapsedLn) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*CollapsedLn) ProtoMessage ¶
func (*CollapsedLn) ProtoMessage()
func (*CollapsedLn) Reset ¶
func (m *CollapsedLn) Reset()
func (*CollapsedLn) Size ¶
func (m *CollapsedLn) Size() (n int)
func (*CollapsedLn) String ¶
func (this *CollapsedLn) String() string
func (*CollapsedLn) Unmarshal ¶
func (m *CollapsedLn) Unmarshal(dAtA []byte) error
func (*CollapsedLn) XXX_DiscardUnknown ¶
func (m *CollapsedLn) XXX_DiscardUnknown()
func (*CollapsedLn) XXX_Marshal ¶
func (m *CollapsedLn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*CollapsedLn) XXX_Merge ¶
func (m *CollapsedLn) XXX_Merge(src proto.Message)
func (*CollapsedLn) XXX_Size ¶
func (m *CollapsedLn) XXX_Size() int
func (*CollapsedLn) XXX_Unmarshal ¶
func (m *CollapsedLn) XXX_Unmarshal(b []byte) error
type EpochNotifier ¶
type EpochNotifier interface { RegisterNotifyHandler(handler vmcommon.EpochSubscriberHandler) IsInterfaceNil() bool }
EpochNotifier can notify upon an epoch change and provide the current epoch
type IdleNodeProvider ¶
IdleNodeProvider can determine if the node is idle or not
type InterceptedTrieNode ¶
type InterceptedTrieNode struct {
// contains filtered or unexported fields
}
InterceptedTrieNode implements intercepted data interface and is used when trie nodes are intercepted
func NewInterceptedTrieNode ¶
func NewInterceptedTrieNode( buff []byte, hasher hashing.Hasher, ) (*InterceptedTrieNode, error)
NewInterceptedTrieNode creates a new instance of InterceptedTrieNode
func (*InterceptedTrieNode) CheckValidity ¶
func (inTn *InterceptedTrieNode) CheckValidity() error
CheckValidity checks if the intercepted data is valid
func (*InterceptedTrieNode) Fee ¶
func (inTn *InterceptedTrieNode) Fee() *big.Int
Fee returns big.NewInt(0)
func (*InterceptedTrieNode) GetSerialized ¶
func (inTn *InterceptedTrieNode) GetSerialized() []byte
GetSerialized returns the intercepted encoded node
func (*InterceptedTrieNode) Hash ¶
func (inTn *InterceptedTrieNode) Hash() []byte
Hash returns the hash of the intercepted node
func (*InterceptedTrieNode) Identifiers ¶
func (inTn *InterceptedTrieNode) Identifiers() [][]byte
Identifiers returns the identifiers used in requests
func (*InterceptedTrieNode) IsForCurrentShard ¶
func (inTn *InterceptedTrieNode) IsForCurrentShard() bool
IsForCurrentShard checks if the intercepted data is for the current shard
func (*InterceptedTrieNode) IsInterfaceNil ¶
func (inTn *InterceptedTrieNode) IsInterfaceNil() bool
IsInterfaceNil returns true if there is no value under the interface
func (*InterceptedTrieNode) ReceiverShardId ¶
func (inTn *InterceptedTrieNode) ReceiverShardId() uint32
ReceiverShardId returns 0
func (*InterceptedTrieNode) SenderAddress ¶
func (inTn *InterceptedTrieNode) SenderAddress() []byte
SenderAddress returns nil
func (*InterceptedTrieNode) SenderShardId ¶
func (inTn *InterceptedTrieNode) SenderShardId() uint32
SenderShardId returns 0
func (*InterceptedTrieNode) SetSerialized ¶
func (inTn *InterceptedTrieNode) SetSerialized(serializedNode []byte)
SetSerialized sets the given bytes as the SerializedNode
func (*InterceptedTrieNode) SizeInBytes ¶
func (inTn *InterceptedTrieNode) SizeInBytes() int
SizeInBytes returns the size in bytes held by this instance plus the inner node's instance size
func (*InterceptedTrieNode) String ¶
func (inTn *InterceptedTrieNode) String() string
String returns the trie node's most important fields as string
func (*InterceptedTrieNode) Type ¶
func (inTn *InterceptedTrieNode) Type() string
Type returns the type of this intercepted data
type NewTrieStorageManagerArgs ¶
type NewTrieStorageManagerArgs struct { MainStorer common.DBWriteCacher CheckpointsStorer common.DBWriteCacher Marshalizer marshal.Marshalizer Hasher hashing.Hasher GeneralConfig config.TrieStorageManagerConfig CheckpointHashesHolder CheckpointHashesHolder IdleProvider IdleNodeProvider }
NewTrieStorageManagerArgs holds the arguments needed for creating a new trieStorageManager
type RequestHandler ¶
type RequestHandler interface { RequestTrieNodes(destShardID uint32, hashes [][]byte, topic string) RequestInterval() time.Duration IsInterfaceNil() bool }
RequestHandler defines the methods through which request to data can be made
type StorageManagerOptions ¶
type StorageManagerOptions struct { PruningEnabled bool SnapshotsEnabled bool CheckpointsEnabled bool }
StorageManagerOptions specify the options that a trie storage manager can have
type TimeoutHandler ¶
TimeoutHandler is able to tell if a timeout has occurred
type TrieSyncer ¶
type TrieSyncer interface { StartSyncing(rootHash []byte, ctx context.Context) error NumLeaves() uint64 NumBytes() uint64 NumTrieNodes() uint64 Duration() time.Duration IsInterfaceNil() bool }
TrieSyncer synchronizes the trie, asking on the network for the missing nodes
func CreateTrieSyncer ¶
func CreateTrieSyncer(arg ArgTrieSyncer, trieSyncerVersion int) (TrieSyncer, error)
CreateTrieSyncer is the method factory to create the correct trie syncer implementation TODO try to split this package (syncers should go in sync package, this file in the factory package)
Source Files ¶
- baseTrieSync.go
- branchNode.go
- depthFirstSync.go
- doubleListSync.go
- errors.go
- extensionNode.go
- interceptedNode.go
- interface.go
- iterator.go
- leafNode.go
- node.go
- node.pb.go
- node_extension.go
- patriciaMerkleTrie.go
- proofVerifier.go
- snapshotTrieStorageManager.go
- sync.go
- syncCreator.go
- syncTrieStorageManager.go
- trieNodesHandler.go
- trieStorageManager.go
- trieStorageManagerFactory.go
- trieStorageManagerInEpoch.go
- trieStorageManagerWithoutCheckpoints.go
- trieStorageManagerWithoutPruning.go
- trieStorageManagerWithoutSnapshot.go