(blkNum uint32, proposal *blockProposalMsg)
| 2475 | } |
| 2476 | |
| 2477 | func (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 | |
| 2494 | func (self *Server) hasBlockConsensused() bool { |
| 2495 | blkNum := self.GetCurrentBlockNo() |
no test coverage detected