refactor(eth): enable acceptTxs flag on any new block imported

This commit is contained in:
贺鹏飞 2019-06-12 15:48:17 +08:00 committed by hepengfei
parent 78ec90717a
commit 446eb447fb

View file

@ -228,6 +228,8 @@ func (pm *ProtocolManager) Start(maxPeers int) {
// start sync handlers
go pm.syncer()
go pm.txsyncLoop()
go pm.enableAcceptTxWhenGotNewHead()
}
func (pm *ProtocolManager) Stop() {
@ -811,3 +813,22 @@ func (pm *ProtocolManager) NodeInfo() *NodeInfo {
Head: currentBlock.Hash(),
}
}
func (pm *ProtocolManager) enableAcceptTxWhenGotNewHead() {
chainHeadCh := make(chan core.ChainHeadEvent, 10)
chainHeadSub := pm.blockchain.SubscribeChainHeadEvent(chainHeadCh)
defer chainHeadSub.Unsubscribe()
for {
select {
case ev := <-chainHeadCh:
if ev.Block != nil {
atomic.StoreUint32(&pm.acceptTxs, 1) // enable accept tx
return
}
case <-pm.quitSync:
return
}
}
}