OSDN Git Service

versoin1.1.9 (#594)
[bytom/vapor.git] / proposal / proposal.go
index 1a4d1c8..ea0cc62 100644 (file)
@@ -21,7 +21,8 @@ import (
 
 const (
        logModule     = "mining"
-       batchApplyNum = 64
+       batchApplyNum = 16
+       softMaxTxNum  = 128
 
        timeoutOk = iota + 1
        timeoutWarn
@@ -119,7 +120,7 @@ func (b *blockBuilder) applyTransactions(txs []*types.Tx, timeoutStatus uint8) e
 
                b.gasLeft = gasLeft
                tempTxs = []*types.Tx{}
-               if b.getTimeoutStatus() >= timeoutStatus {
+               if b.getTimeoutStatus() >= timeoutStatus || len(b.block.Transactions) > softMaxTxNum {
                        break
                }
        }
@@ -148,7 +149,7 @@ func (b *blockBuilder) applyTransactionFromSubProtocol() error {
                        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
@@ -334,7 +335,7 @@ func (b *blockBuilder) preValidateTxs(txs []*types.Tx, chain *protocol.Chain, vi
        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 {