From db83a2c0c3f6dc3c7050677ff86f76889f30e605 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sat, 19 May 2018 00:56:25 -0700 Subject: [PATCH 1/5] Try Hush regtest params This fails with: $ ./komodod -regtest Assertion failed: (consensus.hashGenesisBlock == uint256S("0x0379ff1530af893f2f2e61146db6e900dd828dc8254215b9de23df2dba06664f")), function CRegTestParams, file chainparams.cpp, line 540. Abort trap: 6 (core dumped) From https://github.com/MyHush/hush/pull/106/commits/1d8c55ecc297e9d6574d9eeb55d7eebb9546838b --- src/chainparams.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index df258d782..1482189d5 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -532,11 +532,13 @@ public: BOOST_STATIC_ASSERT(equihash_parameters_acceptable(N, K)); nEquihashN = N; nEquihashK = K; - genesis.nTime = 1296688602; + genesis.nTime = 1519568466; genesis.nBits = KOMODO_MINDIFF_NBITS; - genesis.nNonce = uint256S("0x0000000000000000000000000000000000000000000000000000000000000021"); - genesis.nSolution = ParseHex("0f2a976db4c4263da10fd5d38eb1790469cf19bdb4bf93450e09a72fdff17a3454326399"); + genesis.nNonce = uint256S("0x0000000000000000000000000000000000000000000000000000000000000016"); + genesis.nSolution = ParseHex("0d1d1ef025037da781252f695ff279c12d492c5ed53e565c8ecdc044ede53cea96cff5fc"); consensus.hashGenesisBlock = genesis.GetHash(); + assert(consensus.hashGenesisBlock == uint256S("0x0379ff1530af893f2f2e61146db6e900dd828dc8254215b9de23df2dba06664f")); + nDefaultPort = 17779; nPruneAfterHeight = 1000; From b78c39beb269037b923de33314b86673b8068c95 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sat, 19 May 2018 08:51:45 -0700 Subject: [PATCH 2/5] Convert to using CreateGenesisBlock() like Zcash upstream --- src/chainparams.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 1482189d5..0c45e1961 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -532,12 +532,15 @@ public: BOOST_STATIC_ASSERT(equihash_parameters_acceptable(N, K)); nEquihashN = N; nEquihashK = K; - genesis.nTime = 1519568466; - genesis.nBits = KOMODO_MINDIFF_NBITS; - genesis.nNonce = uint256S("0x0000000000000000000000000000000000000000000000000000000000000016"); - genesis.nSolution = ParseHex("0d1d1ef025037da781252f695ff279c12d492c5ed53e565c8ecdc044ede53cea96cff5fc"); + genesis = CreateGenesisBlock( + 1519568466, + uint256S("0x0000000000000000000000000000000000000000000000000000000000000016"), + ParseHex("0d1d1ef025037da781252f695ff279c12d492c5ed53e565c8ecdc044ede53cea96cff5fc"), + KOMODO_MINDIFF_NBITS, 4, 0); + consensus.hashGenesisBlock = genesis.GetHash(); assert(consensus.hashGenesisBlock == uint256S("0x0379ff1530af893f2f2e61146db6e900dd828dc8254215b9de23df2dba06664f")); + //TODO: assert merkle root nDefaultPort = 17779; nPruneAfterHeight = 1000; From 373afcb4990ea009acbde64b85971f0b83c95c77 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sat, 19 May 2018 10:05:53 -0700 Subject: [PATCH 3/5] Use correct regtest genesis block hash komodod now starts up and dies with InvalidChainFound, I think due to checkpoints: call komodo_args.(./src/komodod) NOTARY_PUBKEY.() initialized at 1526749522 finished loading blocks Assertion failed: (tip), function InvalidChainFound, file main.cpp, line 1942. --- src/chainparams.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 0c45e1961..7fd9ba9ad 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -532,14 +532,17 @@ public: BOOST_STATIC_ASSERT(equihash_parameters_acceptable(N, K)); nEquihashN = N; nEquihashK = K; + // #define KOMODO_MINDIFF_NBITS 0x200f0f0f genesis = CreateGenesisBlock( - 1519568466, - uint256S("0x0000000000000000000000000000000000000000000000000000000000000016"), - ParseHex("0d1d1ef025037da781252f695ff279c12d492c5ed53e565c8ecdc044ede53cea96cff5fc"), + 1296688602, + uint256S("0x000000000000000000000000000000000000000000000000000000000000002f"), + ParseHex("1d64134e87a42ad5f12196da1452cb56b1f22a438fabd776ee8fca71ce1fb9b7fcc6f5ec"), KOMODO_MINDIFF_NBITS, 4, 0); consensus.hashGenesisBlock = genesis.GetHash(); - assert(consensus.hashGenesisBlock == uint256S("0x0379ff1530af893f2f2e61146db6e900dd828dc8254215b9de23df2dba06664f")); + printf("genblock hash=%s\n", consensus.hashGenesisBlock.ToString().c_str() ); + assert(consensus.hashGenesisBlock == uint256S("0xe76fb931218cd30c8bc6e6dfe26925eeff7611c7e6957466ea0d38cde03f0008")); + //assert(consensus.hashGenesisBlock == uint256S("0x02dd14e268a4b7a7e6758f14e718abf82cc6649e53bf00bace3059a74d66ec79")); //TODO: assert merkle root nDefaultPort = 17779; From 16df92af5983757f6de61e5cbc7f59e28e9b98bc Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sat, 19 May 2018 10:45:12 -0700 Subject: [PATCH 4/5] Use latest Zcash regtest params, could not use the same as Hush because KMD has merged in latest consensus changes from ZEC upstream --- src/chainparams.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 7fd9ba9ad..43acd0bb2 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -532,18 +532,15 @@ public: BOOST_STATIC_ASSERT(equihash_parameters_acceptable(N, K)); nEquihashN = N; nEquihashK = K; - // #define KOMODO_MINDIFF_NBITS 0x200f0f0f + genesis = CreateGenesisBlock( 1296688602, - uint256S("0x000000000000000000000000000000000000000000000000000000000000002f"), - ParseHex("1d64134e87a42ad5f12196da1452cb56b1f22a438fabd776ee8fca71ce1fb9b7fcc6f5ec"), - KOMODO_MINDIFF_NBITS, 4, 0); - + uint256S("0x0000000000000000000000000000000000000000000000000000000000000009"), + ParseHex("01936b7db1eb4ac39f151b8704642d0a8bda13ec547d54cd5e43ba142fc6d8877cab07b3"), + 0x200f0f0f, 4, 0); consensus.hashGenesisBlock = genesis.GetHash(); - printf("genblock hash=%s\n", consensus.hashGenesisBlock.ToString().c_str() ); - assert(consensus.hashGenesisBlock == uint256S("0xe76fb931218cd30c8bc6e6dfe26925eeff7611c7e6957466ea0d38cde03f0008")); - //assert(consensus.hashGenesisBlock == uint256S("0x02dd14e268a4b7a7e6758f14e718abf82cc6649e53bf00bace3059a74d66ec79")); - //TODO: assert merkle root + assert(consensus.hashGenesisBlock == uint256S("0x029f11d80ef9765602235e1bc9727e3eb6ba20839319f761fee920d63401e327")); + assert(genesis.hashMerkleRoot == uint256S("0xc4eaa58879081de3c24a7b117ed2b28300e7ec4c4c1dff1d3f1268b7857a4ddb")); nDefaultPort = 17779; nPruneAfterHeight = 1000; From 8cf70067ac76378278eaab6a35b506c8e228edc1 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sat, 19 May 2018 10:49:01 -0700 Subject: [PATCH 5/5] Use the KOMODO_MINDIFF_NBITS constant --- src/chainparams.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 43acd0bb2..d78e1351b 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -537,7 +537,7 @@ public: 1296688602, uint256S("0x0000000000000000000000000000000000000000000000000000000000000009"), ParseHex("01936b7db1eb4ac39f151b8704642d0a8bda13ec547d54cd5e43ba142fc6d8877cab07b3"), - 0x200f0f0f, 4, 0); + KOMODO_MINDIFF_NBITS, 4, 0); consensus.hashGenesisBlock = genesis.GetHash(); assert(consensus.hashGenesisBlock == uint256S("0x029f11d80ef9765602235e1bc9727e3eb6ba20839319f761fee920d63401e327")); assert(genesis.hashMerkleRoot == uint256S("0xc4eaa58879081de3c24a7b117ed2b28300e7ec4c4c1dff1d3f1268b7857a4ddb"));