- header := m.chain.BestBlockHeader()
- isSeal, err := engine.IsSealer(m.chain, header.Hash(), header, uint64(time.Now().Unix()))
- if err != nil {
- log.WithFields(log.Fields{"module": module, "error": err}).Error("Determine whether seal is wrong")
- continue
- }
- */
- isSeal := true
- if isSeal {
- block, err := mining.NewBlockTemplate(m.chain, m.txPool, m.accountManager, m.engine)
- if err != nil {
- log.Errorf("Mining: failed on create NewBlockTemplate: %v", err)
- time.Sleep(3 * time.Second)
- continue
- }
- if block == nil {
- time.Sleep(3 * time.Second)
- continue
- }
- block, err = m.engine.Seal(m.chain, block)
- if err != nil {
- log.Errorf("Seal, %v", err)
- continue
- }
- m.chain.SetConsensusEngine(m.engine)
- if isOrphan, err := m.chain.ProcessBlock(block); err == nil {
- log.WithFields(log.Fields{
- "height": block.BlockHeader.Height,
- "isOrphan": isOrphan,
- "tx": len(block.Transactions),
- }).Info("Miner processed block")
-
- blockHash := block.Hash()
- m.newBlockCh <- &blockHash
- } else {
- log.WithField("height", block.BlockHeader.Height).Errorf("Miner fail on ProcessBlock, %v", err)
- }
+ block, err := mining.NewBlockTemplate(m.chain, m.txPool, m.accountManager, m.engine)
+ if err != nil {
+ log.Errorf("Mining: failed on create NewBlockTemplate: %v", err)
+ time.Sleep(1 * time.Second)
+ continue
+ }
+ if block == nil {
+ time.Sleep(1 * time.Second)
+ continue
+ }
+ block, err = m.engine.Seal(m.chain, block)
+ if err != nil {
+ log.Errorf("Seal, %v", err)
+ continue