12345678910111213141516171819202122232425262728293031 |
- package istanbul
- import (
- "math/big"
- "time"
- "github.com/ethereum/go-ethereum/common"
- "github.com/ethereum/go-ethereum/consensus"
- "github.com/ethereum/go-ethereum/core/state"
- "github.com/ethereum/go-ethereum/core/types"
- )
- type Engine interface {
- Address() common.Address
- Author(header *types.Header) (common.Address, error)
- ExtractGenesisValidators(header *types.Header) ([]common.Address, error)
- Signers(header *types.Header) ([]common.Address, error)
- CommitHeader(header *types.Header, seals [][]byte, round *big.Int) error
- VerifyBlockProposal(chain consensus.ChainHeaderReader, block *types.Block, validators ValidatorSet) (time.Duration, error)
- VerifyHeader(chain consensus.ChainHeaderReader, header *types.Header, parents []*types.Header, validators ValidatorSet) error
- VerifyUncles(chain consensus.ChainReader, block *types.Block) error
- VerifySeal(chain consensus.ChainHeaderReader, header *types.Header, validators ValidatorSet) error
- Prepare(chain consensus.ChainHeaderReader, header *types.Header, validators ValidatorSet) error
- Finalize(chain consensus.ChainHeaderReader, header *types.Header, state *state.StateDB, txs []*types.Transaction, uncles []*types.Header)
- FinalizeAndAssemble(chain consensus.ChainHeaderReader, header *types.Header, state *state.StateDB, txs []*types.Transaction, uncles []*types.Header, receipts []*types.Receipt) (*types.Block, error)
- Seal(chain consensus.ChainHeaderReader, block *types.Block, validators ValidatorSet) (*types.Block, error)
- SealHash(header *types.Header) common.Hash
- CalcDifficulty(chain consensus.ChainHeaderReader, time uint64, parent *types.Header) *big.Int
- WriteVote(header *types.Header, candidate common.Address, authorize bool) error
- ReadVote(header *types.Header) (candidate common.Address, authorize bool, err error)
- }
|