yfhk / fabric_log

logs
1 stars 0 forks source link

gossip #16

Open yfhk opened 5 years ago

yfhk commented 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)