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

Method verifyPrevBlockHash

consensus/vbft/service.go:2477–2492  ·  view source on GitHub ↗
(blkNum uint32, proposal *blockProposalMsg)

Source from the content-addressed store, hash-verified

2475}
2476
2477func (self *Server) verifyPrevBlockHash(blkNum uint32, proposal *blockProposalMsg) error {
2478 prevBlk, prevBlkHash := self.blockPool.getSealedBlock(blkNum - 1)
2479 if prevBlk == nil {
2480 // TODO: has no candidate proposals for prevBlock, should restart syncing
2481 return fmt.Errorf("failed to get prevBlock of current round (%d)", blkNum)
2482 }
2483 prevBlkHash2 := proposal.Block.getPrevBlockHash()
2484 if prevBlkHash != prevBlkHash2 {
2485 // continue waiting for more proposals
2486 // FIXME
2487 return fmt.Errorf("inconsistent prev-block hash %s vs %s (blk %d)",
2488 prevBlkHash.ToHexString(), prevBlkHash2.ToHexString(), blkNum)
2489 }
2490
2491 return nil
2492}
2493
2494func (self *Server) hasBlockConsensused() bool {
2495 blkNum := self.GetCurrentBlockNo()

Callers 3

processMsgEventMethod · 0.95
processTimerEventMethod · 0.95
makeSealedMethod · 0.95

Calls 4

getSealedBlockMethod · 0.80
ErrorfMethod · 0.80
getPrevBlockHashMethod · 0.80
ToHexStringMethod · 0.45

Tested by

no test coverage detected