Blockchain

什麼是 nMinimumChainWork?

  • March 9, 2018

我試圖執行我自己的私有比特幣網路,所以我下載了原始碼並編譯了它,然後我bitcoind在兩個 docker 包含中啟動了兩個實例,並確保它們沒有連接到外部網路,使用-connect=0 -dns=0 -dnsseed=0,然後-addnode指定其他節點的ip和埠。然後當我嘗試執行本地礦工時,RPCgetblocktemplate總是返回Bitcoin is downloading blocks.... 通過查看原始碼,它看起來不會通過這一行:

// in IsInitialBlockDownlaod
if (chainActive.Tip()->nChainWork < nMinimumChainWork) {
    return true;
}

定義在chainparams.cpp中找到:

// The best chain should have at least this much work.
consensus.nMinimumChainWork = uint256S("0x000000000000000000000000000000000000000000f91c579d57cad4bc5278cc");

這是什麼意思?是nMinimumChainWork為了什麼?什麼是硬編碼的十六進制數,通過搜尋 blockchain.info 它不是塊雜湊。

如果攻擊者設法將它們與網路隔離,這是一個旨在保護新客戶端在最初同步時不接受假區塊鏈的數字。顧名思義,這是一條鏈在客戶認為有效之前必須完成的最小總工作量。根據發佈時區塊鏈中的總工作量,它在每次發佈時更新為更高的數字(十六進制格式比十進制數字更緊湊且與其他程式碼一致)

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