state

package
v1.0.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2019 License: AGPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BlockIndex added in v0.4.6

type BlockIndex struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

BlockIndex is the struct for help chain trace block chain as tree

func NewBlockIndex added in v0.4.6

func NewBlockIndex() *BlockIndex

NewBlockIndex will create a empty BlockIndex

func (*BlockIndex) AddNode added in v0.4.6

func (bi *BlockIndex) AddNode(node *BlockNode)

AddNode will add node to the index map

func (*BlockIndex) BestNode added in v0.4.6

func (bi *BlockIndex) BestNode() *BlockNode

func (*BlockIndex) BlockExist added in v0.4.6

func (bi *BlockIndex) BlockExist(hash *bc.Hash) bool

BlockExist check does the block existed in blockIndex

func (*BlockIndex) GetNode added in v0.4.6

func (bi *BlockIndex) GetNode(hash *bc.Hash) *BlockNode

GetNode will search node from the index map

func (*BlockIndex) InMainchain added in v0.4.6

func (bi *BlockIndex) InMainchain(hash bc.Hash) bool

TODO: THIS FUNCTION MIGHT BE DELETED

func (*BlockIndex) NodeByHeight added in v0.4.6

func (bi *BlockIndex) NodeByHeight(height uint64) *BlockNode

NodeByHeight returns the block node at the specified height.

func (*BlockIndex) SetMainChain added in v0.4.6

func (bi *BlockIndex) SetMainChain(node *BlockNode)

SetMainChain will set the the mainChain array

type BlockNode added in v0.4.6

type BlockNode struct {
	Parent  *BlockNode // parent is the parent block for this node.
	Hash    bc.Hash    // hash of the block.
	Seed    *bc.Hash   // seed hash of the block
	WorkSum *big.Int   // total amount of work in the chain up to

	Version                uint64
	Height                 uint64
	Timestamp              uint64
	Nonce                  uint64
	Bits                   uint64
	TransactionsMerkleRoot bc.Hash
	TransactionStatusHash  bc.Hash
}

BlockNode represents a block within the block chain and is primarily used to aid in selecting the best chain to be the main chain.

func NewBlockNode added in v0.4.6

func NewBlockNode(bh *types.BlockHeader, parent *BlockNode) (*BlockNode, error)

func (*BlockNode) BlockHeader added in v0.4.6

func (node *BlockNode) BlockHeader() *types.BlockHeader

blockHeader convert a node to the header struct

func (*BlockNode) CalcNextBits added in v0.4.6

func (node *BlockNode) CalcNextBits() uint64

CalcNextBits calculate the bits for next block

func (*BlockNode) CalcNextSeed added in v0.4.6

func (node *BlockNode) CalcNextSeed() *bc.Hash

CalcNextSeed calculate the seed for next block

func (*BlockNode) CalcPastMedianTime added in v0.4.6

func (node *BlockNode) CalcPastMedianTime() uint64

type UtxoViewpoint added in v0.3.0

type UtxoViewpoint struct {
	Entries map[bc.Hash]*storage.UtxoEntry
}

UtxoViewpoint represents a view into the set of unspent transaction outputs

func NewUtxoViewpoint added in v0.3.0

func NewUtxoViewpoint() *UtxoViewpoint

NewUtxoViewpoint returns a new empty unspent transaction output view.

func (*UtxoViewpoint) ApplyBlock added in v0.3.0

func (view *UtxoViewpoint) ApplyBlock(block *bc.Block, txStatus *bc.TransactionStatus) error

func (*UtxoViewpoint) ApplyTransaction added in v0.3.0

func (view *UtxoViewpoint) ApplyTransaction(block *bc.Block, tx *bc.Tx, statusFail bool) error

func (*UtxoViewpoint) CanSpend added in v1.0.5

func (view *UtxoViewpoint) CanSpend(hash *bc.Hash) bool

func (*UtxoViewpoint) DetachBlock added in v0.3.0

func (view *UtxoViewpoint) DetachBlock(block *bc.Block, txStatus *bc.TransactionStatus) error

func (*UtxoViewpoint) DetachTransaction added in v0.3.0

func (view *UtxoViewpoint) DetachTransaction(tx *bc.Tx, statusFail bool) error

func (*UtxoViewpoint) HasUtxo added in v0.3.0

func (view *UtxoViewpoint) HasUtxo(hash *bc.Hash) bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL