Versions in this module Expand all Collapse all v1 v1.2.2 Apr 7, 2024 Changes in this version + var ErrFutureBlock = errors.New("block in the future") + var ErrInvalidNumber = errors.New("invalid block number") + var ErrPrunedAncestor = errors.New("pruned ancestor") + var ErrUnknownAncestor = errors.New("unknown ancestor") + func InitHeaderStore(state *state.StateDB, blockNumber *big.Int) + func InitTxVerify(state *state.StateDB, blockNumber *big.Int) + type Broadcaster interface + FindPeers func(targets map[enode.ID]bool, purpose p2p.PurposeFlag) map[enode.ID]Peer + type ChainContext interface + NewEVMRunner func(header *types.Header, state types.StateDB) vm.EVMRunner + NewEVMRunnerForCurrentBlock func() (vm.EVMRunner, error) + type ChainHeaderReader interface + Config func() *params2.ChainConfig + CurrentHeader func() *types.Header + GetHeader func(hash common.Hash, number uint64) *types.Header + GetHeaderByHash func(hash common.Hash) *types.Header + GetHeaderByNumber func(number uint64) *types.Header + type ChainReader interface + GetBlock func(hash common.Hash, number uint64) *types.Block + type Engine interface + APIs func(chain ChainHeaderReader) []rpc.API + Author func(header *types.Header) (common.Address, error) + CalcDifficulty func(chain ChainHeaderReader, time uint64, parent *types.Header) *big.Int + Close func() error + EpochSize func() uint64 + Finalize func(chain ChainHeaderReader, header *types.Header, state *state.StateDB, ...) + FinalizeAndAssemble func(chain ChainHeaderReader, header *types.Header, state *state.StateDB, ...) (*types.Block, error) + GetValidators func(blockNumber *big.Int, headerHash common.Hash) []istanbul.Validator + Prepare func(chain ChainHeaderReader, header *types.Header) error + Seal func(chain ChainHeaderReader, block *types.Block) error + SealHash func(header *types.Header) common.Hash + VerifyHeader func(chain ChainHeaderReader, header *types.Header, seal bool) error + VerifyHeaders func(chain ChainHeaderReader, headers []*types.Header, seals []bool) (chan<- struct{}, <-chan error) + VerifySeal func(header *types.Header) error + type Handler interface + HandleMsg func(address common.Address, data p2p.Msg, peer Peer) (bool, error) + Handshake func(peer Peer) (bool, error) + NewWork func() error + RegisterPeer func(peer Peer, fromProxiedNode bool) error + SetBroadcaster func(Broadcaster) + SetP2PServer func(P2PServer) + UnregisterPeer func(peer Peer, fromProxiedNode bool) + type Istanbul interface + GenerateRandomness func(parentHash common.Hash) (common.Hash, common.Hash, error) + IsLastBlockOfEpoch func(header *types.Header) bool + IsPrimary func() bool + IsPrimaryForSeq func(seq *big.Int) bool + IsProxiedValidator func() bool + IsProxy func() bool + LookbackWindow func(header *types.Header, state *state.StateDB) uint64 + SetCallBacks func(hasBadBlock func(common.Hash) bool, ...) error + SetChain func(chain ChainContext, currentBlock func() *types.Block, ...) + StartAnnouncing func() error + StartProxiedValidatorEngine func() error + StartValidating func() error + StopAnnouncing func() error + StopProxiedValidatorEngine func() error + StopValidating func() error + UpdateValSetDiff func(chain ChainHeaderReader, header *types.Header, state *state.StateDB) error + ValidatorAddress func() common.Address + type P2PServer interface + AddPeer func(node *enode.Node, purpose p2p.PurposeFlag) + AddTrustedPeer func(node *enode.Node, purpose p2p.PurposeFlag) + RemovePeer func(node *enode.Node, purpose p2p.PurposeFlag) + RemoveTrustedPeer func(node *enode.Node, purpose p2p.PurposeFlag) + Self func() *enode.Node + type Peer interface + Inbound func() bool + Node func() *enode.Node + PurposeIsSet func(purpose p2p.PurposeFlag) bool + ReadMsg func() (p2p.Msg, error) + Send func(msgcode uint64, data interface{}) error + Version func() uint + type PoW interface + Hashrate func() float64