mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 02:42:27 +00:00
Won't grasp txs at checkpoint
This commit is contained in:
parent
9d83d5599a
commit
a067399c4e
2 changed files with 14 additions and 8 deletions
|
|
@ -900,7 +900,8 @@ func (c *Posv) Seal(chain consensus.ChainReader, block *types.Block, stop <-chan
|
|||
return nil, errUnknownBlock
|
||||
}
|
||||
// For 0-period chains, refuse to seal empty blocks (no reward but would spin sealing)
|
||||
if c.config.Period == 0 && len(block.Transactions()) == 0 {
|
||||
// checkpoint blocks have no tx
|
||||
if c.config.Period == 0 && len(block.Transactions()) == 0 && number % c.config.Epoch != 0 {
|
||||
return nil, errWaitTransactions
|
||||
}
|
||||
// Don't hold the signer fields for the entire sealing procedure
|
||||
|
|
|
|||
|
|
@ -583,13 +583,18 @@ func (self *worker) commitNewWork() {
|
|||
if self.config.DAOForkSupport && self.config.DAOForkBlock != nil && self.config.DAOForkBlock.Cmp(header.Number) == 0 {
|
||||
misc.ApplyDAOHardFork(work.state)
|
||||
}
|
||||
pending, err := self.eth.TxPool().Pending()
|
||||
if err != nil {
|
||||
log.Error("Failed to fetch pending transactions", "err", err)
|
||||
return
|
||||
specialTxCount := 0
|
||||
// won't grasp txs at checkpoint
|
||||
if self.config.Posv != nil && header.Number.Uint64() % self.config.Posv.Epoch != 0 {
|
||||
pending, err := self.eth.TxPool().Pending()
|
||||
if err != nil {
|
||||
log.Error("Failed to fetch pending transactions", "err", err)
|
||||
return
|
||||
}
|
||||
txs, specialTxs := types.NewTransactionsByPriceAndNonce(self.current.signer, pending, signers)
|
||||
specialTxCount = len(specialTxs)
|
||||
work.commitTransactions(self.mux, txs, specialTxs, self.chain, self.coinbase)
|
||||
}
|
||||
txs, specialTxs := types.NewTransactionsByPriceAndNonce(self.current.signer, pending, signers)
|
||||
work.commitTransactions(self.mux, txs, specialTxs, self.chain, self.coinbase)
|
||||
|
||||
// compute uncles for the new block.
|
||||
var (
|
||||
|
|
@ -621,7 +626,7 @@ func (self *worker) commitNewWork() {
|
|||
return
|
||||
}
|
||||
if atomic.LoadInt32(&self.mining) == 1 {
|
||||
log.Info("Committing new block", "number", work.Block.Number(), "txs", work.tcount, "special txs", len(specialTxs), "uncles", len(uncles), "elapsed", common.PrettyDuration(time.Since(tstart)))
|
||||
log.Info("Committing new block", "number", work.Block.Number(), "txs", work.tcount, "special-txs", specialTxCount, "uncles", len(uncles), "elapsed", common.PrettyDuration(time.Since(tstart)))
|
||||
self.unconfirmed.Shift(work.Block.NumberU64() - 1)
|
||||
self.lastParentBlockCommit = parent.Hash().Hex()
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue