const (
logModule = "mining"
- batchApplyNum = 64
+ batchApplyNum = 16
+ softMaxTxNum = 128
timeoutOk = iota + 1
timeoutWarn
b.gasLeft = gasLeft
tempTxs = []*types.Tx{}
- if b.getTimeoutStatus() >= timeoutStatus {
+ if b.getTimeoutStatus() >= timeoutStatus || len(b.block.Transactions) > softMaxTxNum {
break
}
}
break
}
- subTxs, err := p.BeforeProposalBlock(b.block.Transactions, b.block.Height, b.gasLeft, isTimeout)
+ subTxs, err := p.BeforeProposalBlock(b.block, b.gasLeft, isTimeout)
if err != nil {
log.WithFields(log.Fields{"module": logModule, "index": i, "error": err}).Error("failed on sub protocol txs package")
continue
return results, gasLeft
}
-func (b *blockBuilder) validateBySubProtocols(tx *types.Tx, statusFail bool, subProtocols []protocol.Protocoler) error {
+func (b *blockBuilder) validateBySubProtocols(tx *types.Tx, statusFail bool, subProtocols []protocol.SubProtocol) error {
for _, subProtocol := range subProtocols {
verifyResult := &bc.TxVerifyResult{StatusFail: statusFail}
if err := subProtocol.ValidateTx(tx, verifyResult, b.block.Height); err != nil {