Blockchain

區塊鏈上塊 n 的呼叫函式

  • June 5, 2015

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
}

引用自:https://bitcoin.stackexchange.com/questions/37475