OSDN Git Service

Fix mined block broadcast err (#1726)
authoryahtoo <yahtoo.ma@gmail.com>
Mon, 22 Apr 2019 04:57:42 +0000 (12:57 +0800)
committerPaladz <yzhu101@uottawa.ca>
Mon, 22 Apr 2019 04:57:42 +0000 (12:57 +0800)
api/miner.go
event/event.go
mining/cpuminer/cpuminer.go
mining/miningpool/miningpool.go
netsync/handle.go

index 4fd2ec6..00b3c11 100644 (file)
@@ -85,7 +85,7 @@ func (a *API) submitBlock(ctx context.Context, req *SubmitBlockReq) Response {
                return NewErrorResponse(errors.New("block submitted is orphan"))
        }
 
-       if err = a.eventDispatcher.Post(event.NewMinedBlockEvent{Block: req.Block}); err != nil {
+       if err = a.eventDispatcher.Post(event.NewMinedBlockEvent{Block: *req.Block}); err != nil {
                return NewErrorResponse(err)
        }
 
index 4037931..055aed1 100644 (file)
@@ -24,7 +24,7 @@ var (
        ErrDuplicateSubscribe = errors.New("event: subscribe duplicate type")
 )
 
-type NewMinedBlockEvent struct{ Block *types.Block }
+type NewMinedBlockEvent struct{ Block types.Block }
 
 // TypeMuxEvent is a time-tagged notification pushed to subscribers.
 type TypeMuxEvent struct {
index 6742e2e..2c91721 100644 (file)
@@ -102,7 +102,7 @@ out:
                                }).Info("Miner processed block")
 
                                // Broadcast the block and announce chain insertion event
-                               if err = m.eventDispatcher.Post(event.NewMinedBlockEvent{Block: block}); err != nil {
+                               if err = m.eventDispatcher.Post(event.NewMinedBlockEvent{Block: *block}); err != nil {
                                        log.WithFields(log.Fields{"module": logModule, "height": block.BlockHeader.Height, "error": err}).Errorf("Miner fail on post block")
                                }
                        } else {
index 33520d5..1e6eb89 100644 (file)
@@ -121,7 +121,7 @@ func (m *MiningPool) submitWork(bh *types.BlockHeader) error {
                return errors.New("submit result is orphan")
        }
 
-       if err := m.eventDispatcher.Post(event.NewMinedBlockEvent{Block: m.block}); err != nil {
+       if err := m.eventDispatcher.Post(event.NewMinedBlockEvent{Block: *m.block}); err != nil {
                return err
        }
 
index 643ae0a..3999eab 100644 (file)
@@ -480,7 +480,7 @@ func (sm *SyncManager) minedBroadcastLoop() {
                                continue
                        }
 
-                       if err := sm.peers.broadcastMinedBlock(ev.Block); err != nil {
+                       if err := sm.peers.broadcastMinedBlock(&ev.Block); err != nil {
                                log.WithFields(log.Fields{"module": logModule, "err": err}).Error("fail on broadcast mine block")
                                continue
                        }