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

Method getBlock

consensus/vbft/chain_store.go:171–188  ·  view source on GitHub ↗
(blockNum uint32)

Source from the content-addressed store, hash-verified

169}
170
171func (self *ChainStore) getBlock(blockNum uint32) (*Block, error) {
172 if blk, present := self.pendingBlocks[blockNum]; present {
173 return blk.block, nil
174 }
175 block, err := self.db.GetBlockByHeight(uint32(blockNum))
176 if err != nil {
177 return nil, err
178 }
179 prevMerkleRoot := common.Uint256{}
180 if blockNum > 1 {
181 prevMerkleRoot, err = self.db.GetStateMerkleRoot(blockNum - 1)
182 if err != nil {
183 log.Errorf("GetStateMerkleRoot blockNum:%d, error :%s", blockNum, err)
184 return nil, fmt.Errorf("GetStateMerkleRoot blockNum:%d, error :%s", blockNum, err)
185 }
186 }
187 return initVbftBlock(block, prevMerkleRoot)
188}

Callers 4

OpenBlockStoreFunction · 0.95
newBlockPoolFunction · 0.45
getSealedBlockMethod · 0.45
getChainedBlockMethod · 0.45

Calls 5

ErrorfFunction · 0.92
initVbftBlockFunction · 0.85
ErrorfMethod · 0.80
GetBlockByHeightMethod · 0.65
GetStateMerkleRootMethod · 0.65

Tested by

no test coverage detected