Bitcoin-Core-Development

使用 Ubuntu 和 (Qt Creator IDE) 創建 Genesis Block Twister-Core 的問題

  • September 22, 2018

我正在嘗試使用 Ubuntu 和 IDE Qt Creator 在twister-core 中創建一個創世塊。我已經成功編譯了twister-core,我已經更改了這些參數來創建創世塊pszTimestampgenesis.nTime 並且 genesis.nNonce. 然後我重新編譯成功。當我twisterd使用此命令在終端中執行時

./twisterd -rpcuser=user -rpcpassword=pwd -rpcallowip=127.0.0.1

發生此錯誤:

終端錯誤:

斷言 `hashGenesisBlock == uint256(“b24b7a9c568b4ae288c0be34699c4c79fc22848e7c346afd5f63901e41ed8640”)’ 失敗。中止(核心轉儲)

當我在 Qt-Creator 上執行它時,會出現同樣的錯誤錯誤:

twisterd: ../twister/src/chainparams.cpp:216: CMainParams::CMainParams(): Assertion `hashGenesisBlock == uint256(“b24b7a9c568b4ae288c0be34699c4c79fc22848e7c346afd5f63901e41ed8640”)’ 失敗。

程序意外結束。

../twister-qt-Output/twisterd 以程式碼 0 退出

請幫我解決這個問題。

chainparams.cpp包含一行程式碼,用於檢查鏈的創世塊是否等於指定的雜湊值。由於您創建了一個新的創世塊,您必須將值更新為您自己的雜湊值。

您可以在此處查看該行的範例:

hashGenesisBlock = genesis.GetHash();
assert(hashGenesisBlock == uint256("9915158279673d101912be80f25c20627f1dd8bf5231e7c46bfec5ed19737f44"));

我取自miguelfreitas/twister-core/…/chainparams.cpp

要弄清楚放在那裡的內容,您可以列印genesis.GetHash()並替換斷言中的舊雜湊。

要列印創世塊的雜湊值,您可以使用

printf("genesis.GetHash = %s\n", genesis.GetHash().ToString().c_str());

就在帶有斷言的行上方,它將寫入~/.bitcoin/debug.log.

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