Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsGasLimitReached ¶
IsGasLimitReached block if full of txs.
func IsTxNotAdoptableNow ¶
IsTxNotAdoptableNow tx can not be adopted now.
func SetGlobPackerInst ¶
Types ¶
type Flow ¶
type Flow struct {
// contains filtered or unexported fields
}
Flow the flow of packing a new block.
func (*Flow) Adopt ¶
func (f *Flow) Adopt(tx *tx.Transaction) error
Adopt try to execute the given transaction. If the tx is valid and can be executed on current state (regardless of VM error), it will be adopted by the new block.
func (*Flow) Pack ¶
func (f *Flow) Pack(privateKey *ecdsa.PrivateKey, blockType uint32, lastKBlock uint32) (*block.Block, *state.Stage, tx.Receipts, error)
Pack build and sign the new block.
func (*Flow) ParentHeader ¶
ParentHeader returns parent block header.
type Packer ¶
type Packer struct {
// contains filtered or unexported fields
}
Packer to pack txs and build new blocks.
var (
GlobPackerInst *Packer
)
func GetGlobPackerInst ¶
func GetGlobPackerInst() *Packer
func New ¶
func New( chain *chain.Chain, stateCreator *state.Creator, nodeMaster meter.Address, beneficiary *meter.Address) *Packer
New create a new Packer instance. The beneficiary is optional, it defaults to endorsor if not set.
func (*Packer) Mock ¶
func (p *Packer) Mock(parent *block.Header, targetTime uint64, gasLimit uint64, candAddr *meter.Address) (*Flow, error)
Mock create a packing flow upon given parent, but with a designated timestamp.
func (*Packer) SetTargetGasLimit ¶
SetTargetGasLimit set target gas limit, the Packer will adjust block gas limit close to it as it can.