MCPcopy Create free account
hub / github.com/DNAProject/DNA / onNewBlockSyncReq

Method onNewBlockSyncReq

consensus/vbft/node_sync.go:321–360  ·  view source on GitHub ↗
(req *BlockSyncReq)

Source from the content-addressed store, hash-verified

319}
320
321func (self *Syncer) onNewBlockSyncReq(req *BlockSyncReq) {
322 if req.startBlockNum < self.nextReqBlkNum {
323 log.Errorf("server %d new blockSyncReq startblkNum %d vs %d",
324 self.server.Index, req.startBlockNum, self.nextReqBlkNum)
325 }
326 if req.targetBlockNum <= self.targetBlkNum {
327 return
328 }
329 if self.nextReqBlkNum == 1 {
330 self.nextReqBlkNum = req.startBlockNum
331 }
332 self.targetBlkNum = req.targetBlockNum
333 peers := req.targetPeers
334 if len(peers) == 0 {
335 for p := range self.peers {
336 peers = append(peers, p)
337 }
338 }
339
340 for _, peerIdx := range req.targetPeers {
341 if p, present := self.peers[peerIdx]; !present || !p.active {
342 nextBlkNum := self.nextReqBlkNum
343 if p != nil && p.nextReqBlkNum > nextBlkNum {
344 log.Infof("server %d, syncer with peer %d start from %d, vs %d",
345 self.server.Index, peerIdx, p.nextReqBlkNum, self.nextReqBlkNum)
346 nextBlkNum = p.nextReqBlkNum
347 }
348 self.peers[peerIdx] = &PeerSyncer{
349 peerIdx: peerIdx,
350 nextReqBlkNum: nextBlkNum,
351 targetBlkNum: self.targetBlkNum,
352 active: false,
353 server: self.server,
354 msgC: make(chan ConsensusMsg, 4),
355 }
356 }
357 p := self.peers[peerIdx]
358 self.startPeerSyncer(p, self.targetBlkNum)
359 }
360}
361
362/////////////////////////////////////////////////////////////////////
363//

Callers 1

runMethod · 0.95

Calls 3

startPeerSyncerMethod · 0.95
ErrorfFunction · 0.92
InfofFunction · 0.92

Tested by

no test coverage detected