Blockchain
區塊鏈上塊 n 的呼叫函式
main.cpp
為了粗略地找出哪個函式呼叫了最好的塊,我一直在經歷,我發現根據情況有幾個聽起來相似的函式名稱和程式碼摘錄,我懷疑它們呼叫了最好的塊。這是我的清單:
- CBlockIndex *pindexBestKnownBlock
- uint256 CCoinsView::GetBestBlock () 常量
- CBlockIndex* pindexBestHeader
- CBlockIndex* pindexBestForkTip
- pindexBest 無效
- // 將最佳塊指針移動到 prevout 塊
view.SetBestBlock(pindex->pprev->GetBlockHash());
- chainActive.Tip()->GetBlockHash().ToString()
現在我的問題是:我可以使用和修改上面的哪個列表項,以呼叫比同一區塊鏈上的最佳塊深 n 個塊的塊?
chainActive 變數儲存了最知名的區塊鏈。但這本質上只是區塊頭鏈,而不是實際的區塊本身。要從磁碟載入實際塊,請使用 ReadBlockFromDisk() 函式。但是,請注意,這是一個昂貴的函式,它不會立即返回。
chainActive[0]
或chainActive.Genesis()
[1]給出創世區塊頭。
chainActive[chainActive.Height()]
或chainActive.Tip()
[2]給出活動鏈中最新塊的標題。
chainActive[chainActive.Height()-10]
給出塊的塊頭,上面有 10 個塊。
使用以下任何這些 CBlockIndex 指針來獲取塊。
CBlock block; if (ReadBlockFromDisk(block, pindex)) { // do something }