Open yfhk opened 5 years ago
case *orderer.DeliverResponse_Block: errorStatusCounter = 0 statusCounter = 0 seqNum := t.Block.Header.Number marshaledBlock, err := proto.Marshal(t.Block) if err != nil { logger.Errorf("[%s] Error serializing block with sequence number %d, due to %s", b.chainID, seqNum, err) continue } if err := b.mcs.VerifyBlock(gossipcommon.ChainID(b.chainID), seqNum, marshaledBlock); err != nil { logger.Errorf("[%s] Error verifying block with sequnce number %d, due to %s", b.chainID, seqNum, err) continue } //add by huxiao record.RecordNewBlockToFile(t.Block) numberOfPeers := len(b.gossip.PeersOfChannel(gossipcommon.ChainID(b.chainID))) // Create payload with a block received payload := createPayload(seqNum, marshaledBlock) // Use payload to create gossip message gossipMsg := createGossipMsg(b.chainID, payload) logger.Debugf("[%s] Adding payload locally, buffer seqNum = [%d], peers number [%d]", b.chainID, seqNum, numberOfPeers) // Add payload to local state payloads buffer if err := b.gossip.AddPayload(b.chainID, payload); err != nil { logger.Warning("Failed adding payload of", seqNum, "because:", err) } // Gossip messages with other nodes logger.Debugf("[%s] Gossiping block [%d], peers number [%d]", b.chainID, seqNum, numberOfPeers) b.gossip.Gossip(gossipMsg)