OSDN Git Service

Fix new mined orphan block broadcast bug (#1592)
authoryahtoo <yahtoo.ma@gmail.com>
Wed, 27 Feb 2019 09:34:25 +0000 (17:34 +0800)
committerPaladz <yzhu101@uottawa.ca>
Wed, 27 Feb 2019 09:34:25 +0000 (17:34 +0800)
* Fix new mined orphan block broadcast bug

* fix review bug

netsync/block_fetcher.go

index 7ef4be5..8baa33a 100644 (file)
@@ -73,7 +73,8 @@ func (f *blockFetcher) add(msg *blockMsg) {
 }
 
 func (f *blockFetcher) insert(msg *blockMsg) {
-       if _, err := f.chain.ProcessBlock(msg.block); err != nil {
+       isOrphan, err := f.chain.ProcessBlock(msg.block)
+       if err != nil {
                peer := f.peers.getPeer(msg.peerID)
                if peer == nil {
                        return
@@ -83,6 +84,10 @@ func (f *blockFetcher) insert(msg *blockMsg) {
                return
        }
 
+       if isOrphan {
+               return
+       }
+
        if err := f.peers.broadcastMinedBlock(msg.block); err != nil {
                log.WithFields(log.Fields{"module": logModule, "err": err}).Error("blockFetcher fail on broadcast new block")
                return