Errors in block header at CBlockDiskPos(nFile=0, nPos=8) forking Monacoin
Errors in block header at CBlockDiskPos(nFile=0, nPos=8) forking Monacoin
I'm trying to run some tests forking Monacoin. After I generate the genesis block, I get this error in the debug.log file.
Errors in block header at CBlockDiskPos(nFile=0, nPos=8)
Which of course means that the genesis block's wrong.
I tried with Vertcoin and I'm getting the same error. I'm not sure what's wrong.
Monacoin original params
consensus.nMinimumChainWork = uint256S("0x000000000000000000000000000000000000000000000002ee52a8e6e4475732"); consensus.defaultAssumeValid = uint256S("0x8ee1fd0a836d804422a100fb5c1ca7626c7a35b492c234146797f4a50f38eea8"); assert(consensus.hashGenesisBlock == uint256S("0xff9f1c0116d19de7c9963845e129f9ed1bfc0b376eb54fd7afa42e0d418c8bb6")); assert(genesis.hashMerkleRoot == uint256S("0x35e405a8a46f4dbc1941727aaf338939323c3b955232d0317f8731fe07ac4ba6"));
My params
consensus.nMinimumChainWork = uint256S("0x0000000000000000000000000000000000000000000000000000000000000000"); consensus.defaultAssumeValid = uint256S("0x0"); assert(consensus.hashGenesisBlock == uint256S("00000b77d35990d98dd772387b495e21ba71f3b8472c50376bfda5ddc884f9a4")); assert(genesis.hashMerkleRoot == uint256S("b13b6b3ac11f98527f656abe8f49dcf6945aad5b4c00b975ba23137160fd0ad6"));
Mining the genesis block
genesis = CreateGenesisBlock(1537810364, 229659, 0x1e0ffff0, 1, 50 * COIN); /*printf("Genesis mining started\n"); genesis.nNonce = 0; consensus.hashGenesisBlock = uint256S("0x001"); for(genesis.nNonce == 0; UintToArith256(genesis.GetHash()) > UintToArith256(consensus.powLimit); genesis.nNonce++){ } printf("New genesis merkle root: %s\n", genesis.hashMerkleRoot.ToString().c_str()); printf("New genesis nonce: %lu\n", (unsigned long)genesis.nNonce); printf("New genesis hash: %s\n", genesis.GetHash().ToString().c_str()); printf("Now replace the values, reComment the Genesis mining code and reCompile. \n");*/ consensus.hashGenesisBlock = genesis.GetHash(); assert(consensus.hashGenesisBlock == uint256S("00000b77d35990d98dd772387b495e21ba71f3b8472c50376bfda5ddc884f9a4")); assert(genesis.hashMerkleRoot == uint256S("b13b6b3ac11f98527f656abe8f49dcf6945aad5b4c00b975ba23137160fd0ad6"));
It generates the block but then I get the error.
I noticed that Monacoin genesis block looks very different to the one I created. I tried to create the genesis block using other project and it works. At this point I have no idea what I'm doing wrong.
EDIT: I tried to generate exactly the same genesis block using Monacoin default params, but it's different. Probably my genesis code is wrong... but it worked for other coins.
https://ift.tt/2MVoPcY
Comments
Post a Comment