Documentation
¶
Index ¶
- func SimpleHashFromBytes(bz []byte) []byte
- func SimpleHashFromByteslices(bzs [][]byte) []byte
- func SimpleHashFromHashers(items []Hasher) []byte
- func SimpleHashFromHashes(hashes [][]byte) []byte
- func SimpleHashFromMap(m map[string]Hasher) []byte
- func SimpleHashFromTwoHashes(left []byte, right []byte) []byte
- type Hasher
- type KVPair
- type SimpleMap
- type SimpleProof
- type SimpleProofNode
- type Tree
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SimpleHashFromBytes ¶
func SimpleHashFromHashers ¶
func SimpleHashFromHashes ¶
func SimpleHashFromMap ¶
func SimpleHashFromTwoHashes ¶
Types ¶
type SimpleMap ¶
type SimpleMap struct {
// contains filtered or unexported fields
}
func NewSimpleMap ¶
func NewSimpleMap() *SimpleMap
func (*SimpleMap) Hash ¶
Merkle root hash of items sorted by key (UNSTABLE: and by value too if duplicate key).
type SimpleProof ¶
type SimpleProof struct {
Aunts [][]byte `json:"aunts"` // Hashes from leaf's sibling to a root's child.
}
func SimpleProofsFromHashers ¶
func SimpleProofsFromHashers(items []Hasher) (rootHash []byte, proofs []*SimpleProof)
proofs[0] is the proof for items[0].
func SimpleProofsFromMap ¶
func SimpleProofsFromMap(m map[string]Hasher) (rootHash []byte, proofs []*SimpleProof)
func (*SimpleProof) String ¶
func (sp *SimpleProof) String() string
func (*SimpleProof) StringIndented ¶
func (sp *SimpleProof) StringIndented(indent string) string
type SimpleProofNode ¶
type SimpleProofNode struct { Hash []byte Parent *SimpleProofNode Left *SimpleProofNode // Left sibling (only one of Left,Right is set) Right *SimpleProofNode // Right sibling (only one of Left,Right is set) }
Helper structure to construct merkle proof. The node and the tree is thrown away afterwards. Exactly one of node.Left and node.Right is nil, unless node is the root, in which case both are nil. node.Parent.Hash = hash(node.Hash, node.Right.Hash) or hash(node.Left.Hash, node.Hash), depending on whether node is a left/right child.
func (*SimpleProofNode) FlattenAunts ¶
func (spn *SimpleProofNode) FlattenAunts() [][]byte
Starting from a leaf SimpleProofNode, FlattenAunts() will return the inner hashes for the item corresponding to the leaf.
type Tree ¶
type Tree interface { Size() (size int) Height() (height int8) Has(key []byte) (has bool) Proof(key []byte) (value []byte, proof []byte, exists bool) // TODO make it return an index Get(key []byte) (index int, value []byte, exists bool) GetByIndex(index int) (key []byte, value []byte) Set(key []byte, value []byte) (updated bool) Remove(key []byte) (value []byte, removed bool) HashWithCount() (hash []byte, count int) Hash() (hash []byte) Save() (hash []byte) Load(hash []byte) Copy() Tree Iterate(func(key []byte, value []byte) (stop bool)) (stopped bool) IterateRange(start []byte, end []byte, ascending bool, fx func(key []byte, value []byte) (stop bool)) (stopped bool) }
Click to show internal directories.
Click to hide internal directories.