Documentation
¶
Index ¶
- Constants
- Variables
- func MergeJobs(x, y MerkleNode) (job.Job, error)
- type MerkleNode
- func (n MerkleNode) GetHash() string
- func (n MerkleNode) GetJob() job.Job
- func (n MerkleNode) GetLeftNode() MerkleNode
- func (n MerkleNode) GetRightNode() MerkleNode
- func (n *MerkleNode) IsEmpty() (bool, error)
- func (n MerkleNode) IsEqual(x MerkleNode) (bool, error)
- func (n *MerkleNode) IsLeaf() bool
- func (n *MerkleNode) SetJob(j job.Job)
- func (n *MerkleNode) SetLeftNode(l MerkleNode)
- func (n *MerkleNode) SetRightNode(r MerkleNode)
- type MerkleTree
- func (m *MerkleTree) Build() error
- func (m MerkleTree) GetLeafNodes() []*MerkleNode
- func (m MerkleTree) GetRoot() string
- func (m MerkleTree) SearchJob(ID string) (*job.Job, error)
- func (m MerkleTree) SearchNode(hash string) (*MerkleNode, error)
- func (m *MerkleTree) SetLeafNodes(l []*MerkleNode)
- func (m MerkleTree) VerifyTree() bool
Constants ¶
const MaxTreeJobs = 128
MaxTreeJobs - number of jobs in a block
Variables ¶
var ( //ErrNodeDoesntExist occurs when merklenode doesn't exist ErrNodeDoesntExist = errors.New("core/merkletree: node doesn't exist") //ErrLeafNodesEmpty occurs when merkletree with empty leafnodes is attempted to be built ErrLeafNodesEmpty = errors.New("core/merkletree: leafnodes is empty") //ErrTreeNotBuilt occurs when tree hasn't been built ErrTreeNotBuilt = errors.New("core/merkletree: tree hasn't been built") //ErrTreeRebuildAttempt occurs when tree rebuild is attempted ErrTreeRebuildAttempt = errors.New("core/merkletree: attempt to rebuild tree") //ErrTooMuchLeafNodes occurs when merkletree is attempted to be built with more block than allowed ErrTooMuchLeafNodes = errors.New("core/merkletree: length of leaf nodes is greater than 24") //ErrJobDoesntExist occurs when job doesn't exist ErrJobDoesntExist = errors.New("core/merkletree: job doesn't exist") )
Functions ¶
Types ¶
type MerkleNode ¶
type MerkleNode struct { Hash string //hash of a job struct Job job.Job Left *MerkleNode Right *MerkleNode }
MerkleNode nodes that make a merkletree
func NewNode ¶
func NewNode(j job.Job, lNode, rNode *MerkleNode) (*MerkleNode, error)
NewNode returns a new merklenode
func (MerkleNode) GetLeftNode ¶
func (n MerkleNode) GetLeftNode() MerkleNode
GetLeftNode return leftnode
func (MerkleNode) GetRightNode ¶
func (n MerkleNode) GetRightNode() MerkleNode
GetRightNode return rightnode
func (*MerkleNode) IsEmpty ¶
func (n *MerkleNode) IsEmpty() (bool, error)
IsEmpty check if the merklenode is empty
func (MerkleNode) IsEqual ¶
func (n MerkleNode) IsEqual(x MerkleNode) (bool, error)
IsEqual check if the input merklenode equals the merklenode calling the function
func (*MerkleNode) IsLeaf ¶
func (n *MerkleNode) IsLeaf() bool
IsLeaf checks if the merklenode is a leaf node
func (*MerkleNode) SetLeftNode ¶
func (n *MerkleNode) SetLeftNode(l MerkleNode)
SetLeftNode setter for leftnode
func (*MerkleNode) SetRightNode ¶
func (n *MerkleNode) SetRightNode(r MerkleNode)
SetRightNode setter for rightnode
type MerkleTree ¶
type MerkleTree struct { Root string // hash of built tree LeafNodes []*MerkleNode }
MerkleTree tree of jobs
func NewMerkleTree ¶
func NewMerkleTree(nodes []*MerkleNode) (*MerkleTree, error)
NewMerkleTree returns empty merkletree
func (*MerkleTree) Build ¶
func (m *MerkleTree) Build() error
Build builds merkle tree from leafs to root, hashed the root and sets it as the root of the merkletree
func (MerkleTree) GetLeafNodes ¶
func (m MerkleTree) GetLeafNodes() []*MerkleNode
GetLeafNodes return leafnodes
func (MerkleTree) SearchJob ¶
func (m MerkleTree) SearchJob(ID string) (*job.Job, error)
SearchJob returns job from the tree
func (MerkleTree) SearchNode ¶
func (m MerkleTree) SearchNode(hash string) (*MerkleNode, error)
SearchNode returns true if node with hash exists
func (*MerkleTree) SetLeafNodes ¶
func (m *MerkleTree) SetLeafNodes(l []*MerkleNode)
SetLeafNodes return leafnodes
func (MerkleTree) VerifyTree ¶
func (m MerkleTree) VerifyTree() bool
VerifyTree returns true if tree is verified