Documentation ¶
Index ¶
- Variables
- type Block
- type BlockReader
- type Chain
- func (c *Chain) AddBlock(newBlock *block.Block, receipts tx.Receipts, finalize bool) (*Fork, error)
- func (c *Chain) BestBlock() *block.Block
- func (c *Chain) BestBlockBeforeIndexFlattern() *block.Block
- func (c *Chain) BestKBlock() (*block.Block, error)
- func (c *Chain) BestQC() *block.QuorumCert
- func (c *Chain) BestQCCandidate() *block.QuorumCert
- func (c *Chain) BestQCOrCandidate() *block.QuorumCert
- func (c *Chain) FindEpochOnBlock(num uint32) (uint64, error)
- func (c *Chain) GenesisBlock() *block.Block
- func (c *Chain) GetAncestorBlockID(descendantID meter.Bytes32, ancestorNum uint32) (meter.Bytes32, error)
- func (c *Chain) GetBestQCCandidate() *block.QuorumCert
- func (c *Chain) GetBlock(id meter.Bytes32) (*block.Block, error)
- func (c *Chain) GetBlockBody(id meter.Bytes32) (*block.Body, error)
- func (c *Chain) GetBlockHeader(id meter.Bytes32) (*block.Header, error)
- func (c *Chain) GetBlockRaw(id meter.Bytes32) (block.Raw, error)
- func (c *Chain) GetBlockReceipts(id meter.Bytes32) (tx.Receipts, error)
- func (c *Chain) GetPruneIndexHead() (uint32, error)
- func (c *Chain) GetPruneStateHead() (uint32, error)
- func (c *Chain) GetStateSnapshotNum() (uint32, error)
- func (c *Chain) GetTransaction(blockID meter.Bytes32, index uint64) (*tx.Transaction, error)
- func (c *Chain) GetTransactionMeta(txID meter.Bytes32, headBlockID meter.Bytes32) (*TxMeta, error)
- func (c *Chain) GetTransactionReceipt(blockID meter.Bytes32, index uint64) (*tx.Receipt, error)
- func (c *Chain) GetTrunkBlock(num uint32) (*block.Block, error)
- func (c *Chain) GetTrunkBlockHeader(num uint32) (*block.Header, error)
- func (c *Chain) GetTrunkBlockID(num uint32) (meter.Bytes32, error)
- func (c *Chain) GetTrunkBlockRaw(num uint32) (block.Raw, error)
- func (c *Chain) GetTrunkTransaction(txID meter.Bytes32) (*tx.Transaction, *TxMeta, error)
- func (c *Chain) GetTrunkTransactionMeta(txID meter.Bytes32) (*TxMeta, error)
- func (c *Chain) IsBlockExist(err error) bool
- func (c *Chain) IsBlockFinalized(id meter.Bytes32) bool
- func (c *Chain) IsNotFound(err error) bool
- func (c *Chain) LeafBlock() *block.Block
- func (c *Chain) NewBlockReader(position meter.Bytes32) BlockReader
- func (c *Chain) NewSeeker(headBlockID meter.Bytes32) *Seeker
- func (c *Chain) NewTicker() co.Waiter
- func (c *Chain) RemoveBlock(blockID meter.Bytes32) error
- func (c *Chain) SetBestQCCandidate(qc *block.QuorumCert) bool
- func (c *Chain) SetBestQCCandidateWithChainLock(qc *block.QuorumCert) bool
- func (c *Chain) Tag() byte
- func (c *Chain) UpdateBestQC(qc *block.QuorumCert, source QCSource) (bool, error)
- func (c *Chain) UpdateBestQCWithChainLock(qc *block.QuorumCert, source QCSource) (bool, error)
- func (c *Chain) UpdateLeafBlock() error
- func (c *Chain) UpdatePruneIndexHead(num uint32) error
- func (c *Chain) UpdatePruneStateHead(num uint32) error
- func (c *Chain) UpdateStateSnapshotNum(num uint32) error
- type Fork
- type QCSource
- type QCWrap
- type Seeker
- type TxMeta
Constants ¶
This section is empty.
Variables ¶
var ErrBlockExist = errors.New("block already exists")
Functions ¶
This section is empty.
Types ¶
type BlockReader ¶
BlockReader defines the interface to read Block
type Chain ¶
type Chain struct {
// contains filtered or unexported fields
}
Chain describes a persistent block chain. It's thread-safe.
func (*Chain) AddBlock ¶
AddBlock add a new block into block chain. Once reorg happened (len(Trunk) > 0 && len(Branch) >0), Fork.Branch will be the chain transitted from trunk to branch. Reorg happens when isTrunk is true.
func (*Chain) BestBlockBeforeIndexFlattern ¶
func (*Chain) BestQC ¶
func (c *Chain) BestQC() *block.QuorumCert
func (*Chain) BestQCCandidate ¶
func (c *Chain) BestQCCandidate() *block.QuorumCert
func (*Chain) BestQCOrCandidate ¶
func (c *Chain) BestQCOrCandidate() *block.QuorumCert
func (*Chain) FindEpochOnBlock ¶ added in v1.2.0
func (*Chain) GenesisBlock ¶
GenesisBlock returns genesis block.
func (*Chain) GetAncestorBlockID ¶
func (c *Chain) GetAncestorBlockID(descendantID meter.Bytes32, ancestorNum uint32) (meter.Bytes32, error)
GetAncestorBlockID get ancestor block ID of descendant for given ancestor block.
func (*Chain) GetBestQCCandidate ¶
func (c *Chain) GetBestQCCandidate() *block.QuorumCert
func (*Chain) GetBlockBody ¶
GetBlockBody get block body by block id.
func (*Chain) GetBlockHeader ¶
GetBlockHeader get block header by block id.
func (*Chain) GetBlockRaw ¶
GetBlockRaw get block rlp encoded bytes for given id. Never modify the returned raw block.
func (*Chain) GetBlockReceipts ¶
GetBlockReceipts get all tx receipts in the block for given block id.
func (*Chain) GetPruneIndexHead ¶
func (*Chain) GetPruneStateHead ¶
func (*Chain) GetStateSnapshotNum ¶
func (*Chain) GetTransaction ¶
GetTransaction get transaction for given block and index.
func (*Chain) GetTransactionMeta ¶
GetTransactionMeta get transaction meta info, on the chain defined by head block ID.
func (*Chain) GetTransactionReceipt ¶
GetTransactionReceipt get tx receipt for given block and index.
func (*Chain) GetTrunkBlock ¶
GetTrunkBlock get block on trunk by given block number.
func (*Chain) GetTrunkBlockHeader ¶
GetTrunkBlockHeader get block header on trunk by given block number.
func (*Chain) GetTrunkBlockID ¶
GetTrunkBlockID get block id on trunk by given block number.
func (*Chain) GetTrunkBlockRaw ¶
GetTrunkBlockRaw get block raw on trunk by given block number.
func (*Chain) GetTrunkTransaction ¶
GetTrunkTransaction get transaction on trunk by given tx id.
func (*Chain) GetTrunkTransactionMeta ¶
GetTrunkTransactionMeta get transaction meta info on trunk by given tx id.
func (*Chain) IsBlockExist ¶
IsBlockExist returns if the error means block was already in the chain.
func (*Chain) IsNotFound ¶
IsNotFound returns if an error means not found.
func (*Chain) NewBlockReader ¶
func (c *Chain) NewBlockReader(position meter.Bytes32) BlockReader
NewBlockReader generate an object that implements the BlockReader interface
func (*Chain) SetBestQCCandidate ¶
func (c *Chain) SetBestQCCandidate(qc *block.QuorumCert) bool
func (*Chain) SetBestQCCandidateWithChainLock ¶
func (c *Chain) SetBestQCCandidateWithChainLock(qc *block.QuorumCert) bool