我在编译bitcoin-qt应用程序时遇到错误,我不明白main.cpp中的问题是什么。
错误:
/main.cpp:2985:bool InitBlockIndex():断言`block.hashMerkleRoot == uint256(“0x7c0b21983dc5a17daeef4b6b936375b0a59f3414af7a1bf248d98209447a494b”)' 失败。
该程序意外完成。 问题是什么?请提出一些建议来解决这个问题。
答案 0 :(得分:0)
你试过这个解决方案吗? https://bitcoin.stackexchange.com/questions/21303/creating-genesis-block
第一次运行已编译的代码(守护进程或qt),它会说 “断言失败”。只需退出程序,转到配置目录(在 AppData / Roaming),打开debug.log,之后得到哈希 “block.GetHash()=”,将其复制并粘贴到main.cpp的beginnig中, hashGenesisBlock。也可以在同一个日志文件中获取merkle root,粘贴 它在以下代码中的...位置,在LoadBlockIndex()
中断言(block.hashMerkleRoot == uint256(“0x ...”));重新编译代码, 和创世块一起创造!
顺便说一句,不要忘记将“txNew.vout [0] .nValue =”改为硬币 阻止你定义,离开50并不重要,只是 与每个块的硬币一致(在调整哈希之前执行此操作) 和m-root,否则它们会再次改变。)
这是一个山寨币,但似乎你对创世块有一些问题。