Documentation
¶
Overview ¶
Copyright (c) 2018 The MATRIX Authors Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php
Copyright (c) 2018 The MATRIX Authors Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php
Copyright (c) 2018 The MATRIX Authors Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php
Index ¶
- Variables
- type BlKSupport
- type ChainReader
- type MANBLK
- type MANBLKPlUGS
- type ManBCBlkPlug
- func (bd *ManBCBlkPlug) Finalize(support BlKSupport, header *types.Header, state *state.StateDBManage, ...) (*types.Block, interface{}, error)
- func (bd *ManBCBlkPlug) Prepare(version string, support BlKSupport, interval *mc.BCIntervalInfo, num uint64, ...) (*types.Header, interface{}, error)
- func (bd *ManBCBlkPlug) ProcessState(support BlKSupport, header *types.Header, args interface{}) ([]*common.RetCallTxN, *state.StateDBManage, []types.CoinReceipts, ...)
- func (bd *ManBCBlkPlug) VerifyHeader(version string, support BlKSupport, header *types.Header, args interface{}) (interface{}, error)
- func (bd *ManBCBlkPlug) VerifyTxsAndState(support BlKSupport, verifyHeader *types.Header, ...) (*state.StateDBManage, []types.CoinSelfTransaction, []types.CoinReceipts, ...)
- type ManBlkBasePlug
- func (bd *ManBlkBasePlug) Finalize(support BlKSupport, header *types.Header, state *state.StateDBManage, ...) (*types.Block, interface{}, error)
- func (bd *ManBlkBasePlug) Prepare(version string, support BlKSupport, interval *mc.BCIntervalInfo, num uint64, ...) (*types.Header, interface{}, error)
- func (bd *ManBlkBasePlug) ProcessState(support BlKSupport, header *types.Header, args interface{}) ([]*common.RetCallTxN, *state.StateDBManage, []types.CoinReceipts, ...)
- func (bd *ManBlkBasePlug) VerifyHeader(version string, support BlKSupport, header *types.Header, args interface{}) (interface{}, error)
- func (bd *ManBlkBasePlug) VerifyTxsAndState(support BlKSupport, verifyHeader *types.Header, ...) (*state.StateDBManage, []types.CoinSelfTransaction, []types.CoinReceipts, ...)
- type ManBlkManage
- func (bd *ManBlkManage) Finalize(types string, version string, header *types.Header, state *state.StateDBManage, ...) (*types.Block, interface{}, error)
- func (bd *ManBlkManage) Prepare(types string, version string, num uint64, interval *mc.BCIntervalInfo, ...) (*types.Header, interface{}, error)
- func (bd *ManBlkManage) ProcessState(types string, version string, header *types.Header, args ...interface{}) ([]*common.RetCallTxN, *state.StateDBManage, []types.CoinReceipts, ...)
- func (bd *ManBlkManage) ProduceBlockVersion(num uint64, preVersion string) string
- func (bd *ManBlkManage) RegisterManBLkPlugs(types string, version string, plug MANBLKPlUGS)
- func (bd *ManBlkManage) VerifyBlockVersion(num uint64, curVersion string, preVersion string) error
- func (bd *ManBlkManage) VerifyHeader(types string, version string, header *types.Header, args ...interface{}) (interface{}, error)
- func (bd *ManBlkManage) VerifyTxsAndState(types string, version string, header *types.Header, ...) (*state.StateDBManage, []types.CoinSelfTransaction, []types.CoinReceipts, ...)
- type Mux
- type Reelection
- type SignHelper
- type TopNodeService
- type VrfMsg
Constants ¶
This section is empty.
Variables ¶
View Source
var ( LogManBlk = "区块生成验证引擎" CommonBlk = "common" BroadcastBlk = "broadcast" )
Functions ¶
This section is empty.
Types ¶
type BlKSupport ¶
type BlKSupport interface {
BlockChain() *core.BlockChain
TxPool() *core.TxPoolManager
SignHelper() *signhelper.SignHelper
EventMux() *event.TypeMux
ReElection() *reelection.ReElection
}
type ChainReader ¶
type ChainReader interface {
// Config retrieves the blockchain's chain configuration.
Config() *params.ChainConfig
// CurrentHeader retrieves the current header from the local chain.
CurrentHeader() *types.Header
// GetHeader retrieves a block header from the database by hash and number.
GetHeader(hash common.Hash, number uint64) *types.Header
// GetHeaderByNumber retrieves a block header from the database by number.
GetHeaderByNumber(number uint64) *types.Header
// GetHeaderByHash retrieves a block header from the database by its hash.
GetHeaderByHash(hash common.Hash) *types.Header
// GetBlock retrieves a block from the database by hash and number.
GetBlock(hash common.Hash, number uint64) *types.Block
Genesis() *types.Block
GetBlockByHash(hash common.Hash) *types.Block
GetCurrentHash() common.Hash
GetGraphByHash(hash common.Hash) (*mc.TopologyGraph, *mc.ElectGraph, error)
GetVersionSuperAccounts(blockHash common.Hash) ([]common.Address, error)
GetBlockSuperAccounts(blockHash common.Hash) ([]common.Address, error)
GetBroadcastInterval() (*mc.BCIntervalInfo, error)
ProcessUpTime(state *state.StateDBManage, header *types.Header) (map[common.Address]uint64, error)
StateAt(root []common.CoinRoot) (*state.StateDBManage, error)
Engine(version []byte) consensus.Engine
DPOSEngine(version []byte) consensus.DPOSEngine
Processor(version []byte) core.Processor
VerifyHeader(header *types.Header) error
}
type MANBLK ¶
type MANBLK interface {
// Prepare initializes the consensus fields of a block header according to the
// rules of a particular engine. The changes are executed inline.
Prepare(types string, version string, num uint64, interval *mc.BCIntervalInfo, args ...interface{}) (*types.Header, interface{}, error)
ProcessState(types string, version string, header *types.Header, args ...interface{}) ([]*common.RetCallTxN, *state.StateDB, []*types.Receipt, []types.SelfTransaction, []types.SelfTransaction, interface{}, error)
Finalize(types string, version string, header *types.Header, state *state.StateDB, txs []types.SelfTransaction, uncles []*types.Header, receipts []*types.Receipt, args interface{}) (*types.Block, interface{}, error)
VerifyHeader(types string, version string, header *types.Header, args ...interface{}) (interface{}, error)
VerifyTxsAndState(types string, version string, header *types.Header, Txs types.SelfTransactions, args ...interface{}) (*state.StateDB, types.SelfTransactions, []*types.Receipt, interface{}, error)
}
type MANBLKPlUGS ¶
type MANBLKPlUGS interface {
// Prepare initializes the consensus fields of a block header according to the
// rules of a particular engine. The changes are executed inline.
Prepare(version string, support BlKSupport, interval *mc.BCIntervalInfo, num uint64, args interface{}) (*types.Header, interface{}, error)
ProcessState(support BlKSupport, header *types.Header, args interface{}) ([]*common.RetCallTxN, *state.StateDBManage, []types.CoinReceipts, []types.CoinSelfTransaction, []types.CoinSelfTransaction, interface{}, error)
Finalize(support BlKSupport, header *types.Header, state *state.StateDBManage, txs []types.CoinSelfTransaction, uncles []*types.Header, receipts []types.CoinReceipts, args interface{}) (*types.Block, interface{}, error)
VerifyHeader(version string, support BlKSupport, header *types.Header, args interface{}) (interface{}, error)
VerifyTxsAndState(support BlKSupport, header *types.Header, Txs []types.CoinSelfTransaction, args interface{}) (*state.StateDBManage, []types.CoinSelfTransaction, []types.CoinReceipts, interface{}, error)
}
type ManBCBlkPlug ¶
type ManBCBlkPlug struct {
// contains filtered or unexported fields
}
func NewBCBlkPlug ¶
func NewBCBlkPlug() (*ManBCBlkPlug, error)
func (*ManBCBlkPlug) Finalize ¶
func (bd *ManBCBlkPlug) Finalize(support BlKSupport, header *types.Header, state *state.StateDBManage, txs []types.CoinSelfTransaction, uncles []*types.Header, receipts []types.CoinReceipts, args interface{}) (*types.Block, interface{}, error)
func (*ManBCBlkPlug) Prepare ¶
func (bd *ManBCBlkPlug) Prepare(version string, support BlKSupport, interval *mc.BCIntervalInfo, num uint64, args interface{}) (*types.Header, interface{}, error)
func (*ManBCBlkPlug) ProcessState ¶
func (bd *ManBCBlkPlug) ProcessState(support BlKSupport, header *types.Header, args interface{}) ([]*common.RetCallTxN, *state.StateDBManage, []types.CoinReceipts, []types.CoinSelfTransaction, []types.CoinSelfTransaction, interface{}, error)
func (*ManBCBlkPlug) VerifyHeader ¶
func (bd *ManBCBlkPlug) VerifyHeader(version string, support BlKSupport, header *types.Header, args interface{}) (interface{}, error)
func (*ManBCBlkPlug) VerifyTxsAndState ¶
func (bd *ManBCBlkPlug) VerifyTxsAndState(support BlKSupport, verifyHeader *types.Header, verifyTxs []types.CoinSelfTransaction, args interface{}) (*state.StateDBManage, []types.CoinSelfTransaction, []types.CoinReceipts, interface{}, error)
type ManBlkBasePlug ¶
type ManBlkBasePlug struct {
// contains filtered or unexported fields
}
func NewBlkBasePlug ¶
func NewBlkBasePlug() (*ManBlkBasePlug, error)
func (*ManBlkBasePlug) Finalize ¶
func (bd *ManBlkBasePlug) Finalize(support BlKSupport, header *types.Header, state *state.StateDBManage, txs []types.CoinSelfTransaction, uncles []*types.Header, receipts []types.CoinReceipts, args interface{}) (*types.Block, interface{}, error)
func (*ManBlkBasePlug) Prepare ¶
func (bd *ManBlkBasePlug) Prepare(version string, support BlKSupport, interval *mc.BCIntervalInfo, num uint64, args interface{}) (*types.Header, interface{}, error)
func (*ManBlkBasePlug) ProcessState ¶
func (bd *ManBlkBasePlug) ProcessState(support BlKSupport, header *types.Header, args interface{}) ([]*common.RetCallTxN, *state.StateDBManage, []types.CoinReceipts, []types.CoinSelfTransaction, []types.CoinSelfTransaction, interface{}, error)
func (*ManBlkBasePlug) VerifyHeader ¶
func (bd *ManBlkBasePlug) VerifyHeader(version string, support BlKSupport, header *types.Header, args interface{}) (interface{}, error)
func (*ManBlkBasePlug) VerifyTxsAndState ¶
func (bd *ManBlkBasePlug) VerifyTxsAndState(support BlKSupport, verifyHeader *types.Header, verifyTxs []types.CoinSelfTransaction, args interface{}) (*state.StateDBManage, []types.CoinSelfTransaction, []types.CoinReceipts, interface{}, error)
type ManBlkManage ¶
type ManBlkManage struct {
// contains filtered or unexported fields
}
func New ¶
func New(support BlKSupport) (*ManBlkManage, error)
func (*ManBlkManage) Finalize ¶
func (bd *ManBlkManage) Finalize(types string, version string, header *types.Header, state *state.StateDBManage, txs []types.CoinSelfTransaction, uncles []*types.Header, receipts []types.CoinReceipts, args ...interface{}) (*types.Block, interface{}, error)
func (*ManBlkManage) Prepare ¶
func (bd *ManBlkManage) Prepare(types string, version string, num uint64, interval *mc.BCIntervalInfo, args ...interface{}) (*types.Header, interface{}, error)
func (*ManBlkManage) ProcessState ¶
func (bd *ManBlkManage) ProcessState(types string, version string, header *types.Header, args ...interface{}) ([]*common.RetCallTxN, *state.StateDBManage, []types.CoinReceipts, []types.CoinSelfTransaction, []types.CoinSelfTransaction, interface{}, error)
func (*ManBlkManage) ProduceBlockVersion ¶
func (bd *ManBlkManage) ProduceBlockVersion(num uint64, preVersion string) string
func (*ManBlkManage) RegisterManBLkPlugs ¶
func (bd *ManBlkManage) RegisterManBLkPlugs(types string, version string, plug MANBLKPlUGS)
func (*ManBlkManage) VerifyBlockVersion ¶
func (bd *ManBlkManage) VerifyBlockVersion(num uint64, curVersion string, preVersion string) error
func (*ManBlkManage) VerifyHeader ¶
func (*ManBlkManage) VerifyTxsAndState ¶
func (bd *ManBlkManage) VerifyTxsAndState(types string, version string, header *types.Header, Txs []types.CoinSelfTransaction, args ...interface{}) (*state.StateDBManage, []types.CoinSelfTransaction, []types.CoinReceipts, interface{}, error)
type Reelection ¶
type Reelection interface {
VerifyNetTopology(header *types.Header, onlineConsensusResults []*mc.HD_OnlineConsensusVoteResultMsg) error
VerifyElection(header *types.Header, state *state.StateDB) error
GetNetTopology(num uint64, parentHash common.Hash, bcInterval *mc.BCIntervalInfo) (*common.NetTopology, []*mc.HD_OnlineConsensusVoteResultMsg)
GenElection(state *state.StateDB, preBlockHash common.Hash) []common.Elect
VerifyVrf(header *types.Header) error
}
type SignHelper ¶
type TopNodeService ¶
type TopNodeService interface {
GetConsensusOnlineResults() []*mc.HD_OnlineConsensusVoteResultMsg
}
Click to show internal directories.
Click to hide internal directories.