Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Block ¶
type Block interface {
BlockVersionSpec
module.Block
}
type BlockData ¶
type BlockData interface {
BlockVersionSpec
module.BlockData
}
type BlockHandler ¶
type BlockHandler interface {
Version() int
// NewBlock returns a new block. It is used for propose or genesis.
NewBlock(
height int64, ts int64, proposer module.Address, prev module.Block,
logsBloom module.LogsBloom, result []byte,
patchTransactions module.TransactionList,
normalTransactions module.TransactionList,
nextValidators module.ValidatorList, votes module.CommitVoteSet,
bs module.BTPSection,
) Block
NewBlockFromHeaderReader(r io.Reader) (Block, error)
NewBlockDataFromReader(io.Reader) (BlockData, error)
GetBlock(id []byte) (Block, error)
}
type BlockHandlerContext ¶
type BlockVersionSpec ¶
type BlockVersionSpec interface {
FinalizeHeader(dbase db.Database) error
// GetVoters returns the voters for the block. Note that this is different
// from the voted, which is a subset of the voters.
GetVoters(ctx BlockHandlerContext) (module.ValidatorList, error)
// VerifyTimestamp verifies timestamp of the block.
VerifyTimestamp(prev module.BlockData, prevVoters module.ValidatorList) error
}
type Chain ¶
type Chain interface {
Database() db.Database
CommitVoteSetDecoder() module.CommitVoteSetDecoder
ServiceManager() module.ServiceManager
MetricContext() context.Context
CID() int
NID() int
Logger() log.Logger
NetworkManager() module.NetworkManager
BlockManager() module.BlockManager
Regulator() module.Regulator
Wallet() module.Wallet
WalletFor(dsa string) module.BaseWallet
}
type ExecutionResult ¶
type ExecutionResult interface {
PatchReceipts() module.ReceiptList
NormalReceipts() module.ReceiptList
TotalFee() *big.Int
VirtualFee() *big.Int
}
type Platform ¶
type Platform interface {
NewContractManager(dbase db.Database, dir string, logger log.Logger) (contract.ContractManager, error)
NewExtensionSnapshot(dbase db.Database, raw []byte) state.ExtensionSnapshot
NewExtensionWithBuilder(builder merkle.Builder, raw []byte) state.ExtensionSnapshot
OnExtensionSnapshotFinalization(ess state.ExtensionSnapshot, logger log.Logger)
ToRevision(value int) module.Revision
NewBaseTransaction(wc state.WorldContext) (module.Transaction, error)
OnValidateTransactions(wc state.WorldContext, patches, txs module.TransactionList) error
OnExecutionBegin(wc state.WorldContext, logger log.Logger) error
OnExecutionEnd(wc state.WorldContext, er ExecutionResult, logger log.Logger) error
OnTransactionEnd(wc state.WorldContext, logger log.Logger, rct txresult.Receipt) error
DefaultBlockVersionFor(cid int) int
NewBlockHandlers(c Chain) []BlockHandler
NewConsensus(c Chain, walDir string) (module.Consensus, error)
CommitVoteSetDecoder() module.CommitVoteSetDecoder
Term()
}
Click to show internal directories.
Click to hide internal directories.