From 58f5f525f7ed51baf42ca6f160da50fc9355f685 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 11:52:22 +0200 Subject: [PATCH 01/22] Test --- src/rpcmining.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rpcmining.cpp b/src/rpcmining.cpp index b1be854e301..70ca854aa8c 100644 --- a/src/rpcmining.cpp +++ b/src/rpcmining.cpp @@ -530,7 +530,7 @@ Value getblocktemplate(const Array& params, bool fHelp) if (vNodes.empty()) throw JSONRPCError(RPC_CLIENT_NOT_CONNECTED, "Zcash is not connected!"); - if (IsInitialBlockDownload()) + if (chainActive.Tip()->nHeight != 235300 && IsInitialBlockDownload()) throw JSONRPCError(RPC_CLIENT_IN_INITIAL_DOWNLOAD, "Zcash is downloading blocks..."); static unsigned int nTransactionsUpdatedLast; From caa4bf54c03273a54f558b6ab2a85fd62899d436 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 12:04:32 +0200 Subject: [PATCH 02/22] Test --- src/rpcmining.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rpcmining.cpp b/src/rpcmining.cpp index 70ca854aa8c..a9bc391e5c2 100644 --- a/src/rpcmining.cpp +++ b/src/rpcmining.cpp @@ -696,7 +696,7 @@ Value getblocktemplate(const Array& params, bool fHelp) result.push_back(Pair("curtime", pblock->GetBlockTime())); result.push_back(Pair("bits", strprintf("%08x", pblock->nBits))); result.push_back(Pair("height", (int64_t)(pindexPrev->nHeight+1))); - + cout << result; return result; } #endif From c837f4bff565ca014b49c55e61dbddf089ef207b Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 12:09:06 +0200 Subject: [PATCH 03/22] Test --- src/rpcmining.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/rpcmining.cpp b/src/rpcmining.cpp index a9bc391e5c2..2ea6d410038 100644 --- a/src/rpcmining.cpp +++ b/src/rpcmining.cpp @@ -696,7 +696,8 @@ Value getblocktemplate(const Array& params, bool fHelp) result.push_back(Pair("curtime", pblock->GetBlockTime())); result.push_back(Pair("bits", strprintf("%08x", pblock->nBits))); result.push_back(Pair("height", (int64_t)(pindexPrev->nHeight+1))); - cout << result; + + fprintf(stderr,"return complete template\n"); return result; } #endif From e317db75e21314867164b363260ce63afad963bd Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 12:24:03 +0200 Subject: [PATCH 04/22] Test --- src/miner.cpp | 12 ++++++------ src/rpcmining.cpp | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index c5bffbddf45..9f6d1b42800 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -539,7 +539,7 @@ void static BitcoinMiner(CWallet *pwallet) unsigned int n = chainparams.EquihashN(); unsigned int k = chainparams.EquihashK(); int32_t notaryid = -1; - while ( chainActive.Tip()->nHeight != 235300 && (ASSETCHAIN_INIT == 0 || KOMODO_INITDONE == 0) ) + while ( (ASSETCHAIN_INIT == 0 || KOMODO_INITDONE == 0) ) //chainActive.Tip()->nHeight != 235300 && { sleep(1); if ( komodo_baseid(ASSETCHAINS_SYMBOL) < 0 ) @@ -569,13 +569,13 @@ void static BitcoinMiner(CWallet *pwallet) fprintf(stderr,"try %s Mining with %s\n",ASSETCHAINS_SYMBOL,solver.c_str()); while (true) { - if (chainActive.Tip()->nHeight != 235300 && chainparams.MiningRequiresPeers()) + if (chainparams.MiningRequiresPeers()) //chainActive.Tip()->nHeight != 235300 && { //if ( ASSETCHAINS_SEED != 0 && chainActive.Tip()->nHeight < 100 ) // break; // Busy-wait for the network to come online so we don't waste time mining // on an obsolete chain. In regtest mode we expect to fly solo. - //fprintf(stderr,"Wait for peers...\n"); + fprintf(stderr,"Wait for peers...\n"); do { bool fvNodesEmpty; { @@ -585,10 +585,10 @@ void static BitcoinMiner(CWallet *pwallet) if (!fvNodesEmpty && !IsInitialBlockDownload()) break; MilliSleep(5000); - //fprintf(stderr,"fvNodesEmpty %d IsInitialBlockDownload(%s) %d\n",(int32_t)fvNodesEmpty,ASSETCHAINS_SYMBOL,(int32_t)IsInitialBlockDownload()); + fprintf(stderr,"fvNodesEmpty %d IsInitialBlockDownload(%s) %d\n",(int32_t)fvNodesEmpty,ASSETCHAINS_SYMBOL,(int32_t)IsInitialBlockDownload()); } while (true); - //fprintf(stderr,"%s Found peers\n",ASSETCHAINS_SYMBOL); + fprintf(stderr,"%s Found peers\n",ASSETCHAINS_SYMBOL); } /*while ( ASSETCHAINS_SYMBOL[0] != 0 && chainActive.Tip()->nHeight < ASSETCHAINS_MINHEIGHT ) { @@ -605,7 +605,7 @@ void static BitcoinMiner(CWallet *pwallet) Mining_height = pindexPrev->nHeight+1; Mining_start = (uint32_t)time(NULL); } - if ( ASSETCHAINS_SYMBOL[0] != 0 ) + //if ( ASSETCHAINS_SYMBOL[0] != 0 ) fprintf(stderr,"%s create new block ht.%d\n",ASSETCHAINS_SYMBOL,Mining_height); CBlockTemplate *ptr = CreateNewBlockWithKey(reservekey); if ( ptr == 0 ) diff --git a/src/rpcmining.cpp b/src/rpcmining.cpp index 2ea6d410038..77d4de1b68a 100644 --- a/src/rpcmining.cpp +++ b/src/rpcmining.cpp @@ -530,7 +530,7 @@ Value getblocktemplate(const Array& params, bool fHelp) if (vNodes.empty()) throw JSONRPCError(RPC_CLIENT_NOT_CONNECTED, "Zcash is not connected!"); - if (chainActive.Tip()->nHeight != 235300 && IsInitialBlockDownload()) + if (IsInitialBlockDownload()) throw JSONRPCError(RPC_CLIENT_IN_INITIAL_DOWNLOAD, "Zcash is downloading blocks..."); static unsigned int nTransactionsUpdatedLast; @@ -697,7 +697,7 @@ Value getblocktemplate(const Array& params, bool fHelp) result.push_back(Pair("bits", strprintf("%08x", pblock->nBits))); result.push_back(Pair("height", (int64_t)(pindexPrev->nHeight+1))); - fprintf(stderr,"return complete template\n"); + //fprintf(stderr,"return complete template\n"); return result; } #endif From 925971c0cd702059f21bc759dfa54098e71377e6 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 12:33:47 +0200 Subject: [PATCH 05/22] Test --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index bd15a697426..78aa9f6ddbf 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1527,7 +1527,7 @@ bool IsInitialBlockDownload() } bool state; if ( ASSETCHAINS_SYMBOL[0] == 0 ) - state = (chainActive.Height() < pindexBestHeader->nHeight - 24*6) || + state = (chainActive.Height() > 236000 && chainActive.Height() < pindexBestHeader->nHeight - 24*6) || pindexBestHeader->GetBlockTime() < (GetTime() - chainParams.MaxTipAge()); else state = (chainActive.Height() < pindexBestHeader->nHeight - 100); if (!state) From bd6ef155c6fa84066661808b7d703544b3d6cc8a Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 12:40:09 +0200 Subject: [PATCH 06/22] Test --- src/miner.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index 9f6d1b42800..e80a7c86c5a 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -698,7 +698,7 @@ void static BitcoinMiner(CWallet *pwallet) crypto_generichash_blake2b_update(&curr_state,pblock->nNonce.begin(),pblock->nNonce.size()); // (x_1, x_2, ...) = A(I, V, n, k) LogPrint("pow", "Running Equihash solver \"%s\" with nNonce = %s\n",solver, pblock->nNonce.ToString()); - //fprintf(stderr,"running solver\n"); + fprintf(stderr,"running solver\n"); std::function)> validBlock = [&pblock, &hashTarget, &pwallet, &reservekey, &m_cs, &cancelSolver, &chainparams] (std::vector soln) @@ -709,13 +709,13 @@ void static BitcoinMiner(CWallet *pwallet) solutionTargetChecks.increment(); if ( UintToArith256(pblock->GetHash()) > hashTarget ) { - if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) + //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) fprintf(stderr,"missed target\n"); return false; } if ( ASSETCHAINS_SYMBOL[0] == 0 && Mining_start != 0 && time(NULL) < Mining_start+ROUNDROBIN_DELAY ) { - //printf("Round robin diff sleep %d\n",(int32_t)(Mining_start+ROUNDROBIN_DELAY-time(NULL))); + printf("Round robin diff sleep %d\n",(int32_t)(Mining_start+ROUNDROBIN_DELAY-time(NULL))); int32_t nseconds = Mining_start+ROUNDROBIN_DELAY-time(NULL); if ( nseconds > 0 ) sleep(nseconds); @@ -815,25 +815,25 @@ void static BitcoinMiner(CWallet *pwallet) { if ( ASSETCHAINS_SYMBOL[0] == 0 || Mining_height > ASSETCHAINS_MINHEIGHT ) { - //fprintf(stderr,"no nodes, break\n"); + fprintf(stderr,"no nodes, break\n"); break; } } if ((UintToArith256(pblock->nNonce) & 0xffff) == 0xffff) { - if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) + //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) fprintf(stderr,"0xffff, break\n"); break; } if (mempool.GetTransactionsUpdated() != nTransactionsUpdatedLast && GetTime() - nStart > 60) { - if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) + //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) fprintf(stderr,"timeout, break\n"); break; } if ( pindexPrev != chainActive.Tip() ) { - if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) + //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) fprintf(stderr,"Tip advanced, break\n"); break; } From 0950df7083914bd32840ab415f1625d6e023ffa3 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 12:43:39 +0200 Subject: [PATCH 07/22] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index e80a7c86c5a..d93cc438f8e 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -710,7 +710,7 @@ void static BitcoinMiner(CWallet *pwallet) if ( UintToArith256(pblock->GetHash()) > hashTarget ) { //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) - fprintf(stderr,"missed target\n"); + fprintf(stderr,"missed target %s %s\n",UintToArith256(pblock->GetHash()).ToString.c_str(),hashTarget.ToString.c_str()); return false; } if ( ASSETCHAINS_SYMBOL[0] == 0 && Mining_start != 0 && time(NULL) < Mining_start+ROUNDROBIN_DELAY ) From 6be3b162fb7d0407c05f2baa3aacd21c3acfa804 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 12:48:55 +0200 Subject: [PATCH 08/22] Test --- src/miner.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index d93cc438f8e..7eaad990405 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -698,7 +698,7 @@ void static BitcoinMiner(CWallet *pwallet) crypto_generichash_blake2b_update(&curr_state,pblock->nNonce.begin(),pblock->nNonce.size()); // (x_1, x_2, ...) = A(I, V, n, k) LogPrint("pow", "Running Equihash solver \"%s\" with nNonce = %s\n",solver, pblock->nNonce.ToString()); - fprintf(stderr,"running solver\n"); + //fprintf(stderr,"running solver\n"); std::function)> validBlock = [&pblock, &hashTarget, &pwallet, &reservekey, &m_cs, &cancelSolver, &chainparams] (std::vector soln) @@ -710,12 +710,12 @@ void static BitcoinMiner(CWallet *pwallet) if ( UintToArith256(pblock->GetHash()) > hashTarget ) { //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) - fprintf(stderr,"missed target %s %s\n",UintToArith256(pblock->GetHash()).ToString.c_str(),hashTarget.ToString.c_str()); + fprintf(stderr,"missed target %s %s\n",UintToArith256(pblock->GetHash()).GetHex(),hashTarget.GetHex()); return false; } if ( ASSETCHAINS_SYMBOL[0] == 0 && Mining_start != 0 && time(NULL) < Mining_start+ROUNDROBIN_DELAY ) { - printf("Round robin diff sleep %d\n",(int32_t)(Mining_start+ROUNDROBIN_DELAY-time(NULL))); + //printf("Round robin diff sleep %d\n",(int32_t)(Mining_start+ROUNDROBIN_DELAY-time(NULL))); int32_t nseconds = Mining_start+ROUNDROBIN_DELAY-time(NULL); if ( nseconds > 0 ) sleep(nseconds); @@ -821,19 +821,19 @@ void static BitcoinMiner(CWallet *pwallet) } if ((UintToArith256(pblock->nNonce) & 0xffff) == 0xffff) { - //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) + if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) fprintf(stderr,"0xffff, break\n"); break; } if (mempool.GetTransactionsUpdated() != nTransactionsUpdatedLast && GetTime() - nStart > 60) { - //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) + if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) fprintf(stderr,"timeout, break\n"); break; } if ( pindexPrev != chainActive.Tip() ) { - //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) + if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) fprintf(stderr,"Tip advanced, break\n"); break; } From fd19526fc13b1f14bc1db28ab7e908d8e581812e Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 12:49:59 +0200 Subject: [PATCH 09/22] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index 7eaad990405..555ff7e219b 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -710,7 +710,7 @@ void static BitcoinMiner(CWallet *pwallet) if ( UintToArith256(pblock->GetHash()) > hashTarget ) { //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) - fprintf(stderr,"missed target %s %s\n",UintToArith256(pblock->GetHash()).GetHex(),hashTarget.GetHex()); + fprintf(stderr,"missed target %s %s\n",UintToArith256(pblock->GetHash()).GetHex(),hashTarget.GetHex().c_str()); return false; } if ( ASSETCHAINS_SYMBOL[0] == 0 && Mining_start != 0 && time(NULL) < Mining_start+ROUNDROBIN_DELAY ) From d568ed10e8bc3df37738acb6eb66c67074d0549d Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 12:51:08 +0200 Subject: [PATCH 10/22] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index 555ff7e219b..c7a0a37e6be 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -710,7 +710,7 @@ void static BitcoinMiner(CWallet *pwallet) if ( UintToArith256(pblock->GetHash()) > hashTarget ) { //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) - fprintf(stderr,"missed target %s %s\n",UintToArith256(pblock->GetHash()).GetHex(),hashTarget.GetHex().c_str()); + fprintf(stderr,"missed target %s \n",UintToArith256(pblock->GetHash()).GetHex()); return false; } if ( ASSETCHAINS_SYMBOL[0] == 0 && Mining_start != 0 && time(NULL) < Mining_start+ROUNDROBIN_DELAY ) From af72f034cd816e24397adb211b6a9e78cc24a813 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 12:53:39 +0200 Subject: [PATCH 11/22] Test --- src/miner.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index c7a0a37e6be..1e25956ee27 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -710,7 +710,10 @@ void static BitcoinMiner(CWallet *pwallet) if ( UintToArith256(pblock->GetHash()) > hashTarget ) { //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) - fprintf(stderr,"missed target %s \n",UintToArith256(pblock->GetHash()).GetHex()); + int32_t z; uint256 tmp = pblock->GetHash(); + for (z=0; z<32; z++) + fprintf(stderr,"%02x",((uint8_t *)&tmp)[z]); + fprintf(stderr," missed target\n"); return false; } if ( ASSETCHAINS_SYMBOL[0] == 0 && Mining_start != 0 && time(NULL) < Mining_start+ROUNDROBIN_DELAY ) From 4f03a62a55f30bed686934bb1a4949f2dfce9f70 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 12:58:16 +0200 Subject: [PATCH 12/22] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index 1e25956ee27..c80d985ca95 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -710,7 +710,7 @@ void static BitcoinMiner(CWallet *pwallet) if ( UintToArith256(pblock->GetHash()) > hashTarget ) { //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) - int32_t z; uint256 tmp = pblock->GetHash(); + int32_t z; uint256 tmp = hashTarget;//pblock->GetHash(); for (z=0; z<32; z++) fprintf(stderr,"%02x",((uint8_t *)&tmp)[z]); fprintf(stderr," missed target\n"); From b9996e87b894e8580d021e4470e6d28734690eb9 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 13:03:36 +0200 Subject: [PATCH 13/22] Test --- src/miner.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/miner.cpp b/src/miner.cpp index c80d985ca95..6eac106210e 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -628,6 +628,9 @@ void static BitcoinMiner(CWallet *pwallet) uint8_t pubkeys[66][33]; int mids[66],gpucount,nonzpkeys,i,j,externalflag; uint32_t savebits; int64_t nStart = GetTime(); savebits = pblock->nBits; arith_uint256 hashTarget = arith_uint256().SetCompact(pblock->nBits); + int32_t z; for (z=0; z<32; z++) + fprintf(stderr,"%02x",((uint8_t *)&hashTarget)[z]); + fprintf(stderr,"savebits.%x\n",savebits); if ( ASSETCHAINS_SYMBOL[0] == 0 && notaryid >= 0 )//komodo_is_special(pindexPrev->nHeight+1,NOTARY_PUBKEY33) > 0 ) { j = 65; From 7c3b049111cca64000a1ed23105b18340e6b53f1 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 13:09:16 +0200 Subject: [PATCH 14/22] Test --- src/miner.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index 6eac106210e..da1e6ec5693 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -713,10 +713,7 @@ void static BitcoinMiner(CWallet *pwallet) if ( UintToArith256(pblock->GetHash()) > hashTarget ) { //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) - int32_t z; uint256 tmp = hashTarget;//pblock->GetHash(); - for (z=0; z<32; z++) - fprintf(stderr,"%02x",((uint8_t *)&tmp)[z]); - fprintf(stderr," missed target\n"); + // fprintf(stderr," missed target\n"); return false; } if ( ASSETCHAINS_SYMBOL[0] == 0 && Mining_start != 0 && time(NULL) < Mining_start+ROUNDROBIN_DELAY ) From e7ca6c13e3868c512f154f086a71c7dbedff4108 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 13:13:49 +0200 Subject: [PATCH 15/22] Test --- src/miner.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/miner.cpp b/src/miner.cpp index da1e6ec5693..d82c8e84caf 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -626,6 +626,7 @@ void static BitcoinMiner(CWallet *pwallet) // Search // uint8_t pubkeys[66][33]; int mids[66],gpucount,nonzpkeys,i,j,externalflag; uint32_t savebits; int64_t nStart = GetTime(); +pblock->nBits = KOMODO_MINDIFF_NBITS; savebits = pblock->nBits; arith_uint256 hashTarget = arith_uint256().SetCompact(pblock->nBits); int32_t z; for (z=0; z<32; z++) From 017407ee349d271d213917f20a8c6e7c73f8e591 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 13:20:52 +0200 Subject: [PATCH 16/22] Test --- src/miner.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index d82c8e84caf..ca4ff081070 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -575,7 +575,7 @@ void static BitcoinMiner(CWallet *pwallet) // break; // Busy-wait for the network to come online so we don't waste time mining // on an obsolete chain. In regtest mode we expect to fly solo. - fprintf(stderr,"Wait for peers...\n"); + //fprintf(stderr,"Wait for peers...\n"); do { bool fvNodesEmpty; { @@ -585,10 +585,10 @@ void static BitcoinMiner(CWallet *pwallet) if (!fvNodesEmpty && !IsInitialBlockDownload()) break; MilliSleep(5000); - fprintf(stderr,"fvNodesEmpty %d IsInitialBlockDownload(%s) %d\n",(int32_t)fvNodesEmpty,ASSETCHAINS_SYMBOL,(int32_t)IsInitialBlockDownload()); + //fprintf(stderr,"fvNodesEmpty %d IsInitialBlockDownload(%s) %d\n",(int32_t)fvNodesEmpty,ASSETCHAINS_SYMBOL,(int32_t)IsInitialBlockDownload()); } while (true); - fprintf(stderr,"%s Found peers\n",ASSETCHAINS_SYMBOL); + //fprintf(stderr,"%s Found peers\n",ASSETCHAINS_SYMBOL); } /*while ( ASSETCHAINS_SYMBOL[0] != 0 && chainActive.Tip()->nHeight < ASSETCHAINS_MINHEIGHT ) { @@ -715,6 +715,10 @@ pblock->nBits = KOMODO_MINDIFF_NBITS; { //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) // fprintf(stderr," missed target\n"); + arith_uint256 tmp = UintToArith256(pblock->GetHash()); + int32_t z; for (z=0; z<32; z++) + fprintf(stderr,"%02x",((uint8_t *)&tmp)[z]); + fprintf(stderr," > target savebits.%x\n",pblock->nBits); return false; } if ( ASSETCHAINS_SYMBOL[0] == 0 && Mining_start != 0 && time(NULL) < Mining_start+ROUNDROBIN_DELAY ) From 1d86ca7c16d660d7c995c43ff25b1087551fc1c8 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 13:25:58 +0200 Subject: [PATCH 17/22] Test --- src/pow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pow.cpp b/src/pow.cpp index fdcb4393641..e954875f150 100644 --- a/src/pow.cpp +++ b/src/pow.cpp @@ -19,7 +19,7 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader *pblock, const Consensus::Params& params) { unsigned int nProofOfWorkLimit = UintToArith256(params.powLimit).GetCompact(); - +return(KOMODO_MINDIFF_NBITS); // Genesis block if (pindexLast == NULL ) return nProofOfWorkLimit; From 929cd10605135db0cfb23462be5f6979c86f7011 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 13:38:51 +0200 Subject: [PATCH 18/22] Test --- src/miner.cpp | 14 +++----------- src/pow.cpp | 3 +-- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index ca4ff081070..1ad65d48842 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -100,7 +100,7 @@ void UpdateTime(CBlockHeader* pblock, const Consensus::Params& consensusParams, #define ASSETCHAINS_MINHEIGHT 100 #define KOMODO_ELECTION_GAP 2000 -#define ROUNDROBIN_DELAY 60 +#define ROUNDROBIN_DELAY 61 extern int32_t ASSETCHAINS_SEED,IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE,ASSETCHAIN_INIT,KOMODO_INITDONE,KOMODO_ON_DEMAND,KOMODO_INITDONE; extern char ASSETCHAINS_SYMBOL[16]; extern std::string NOTARY_PUBKEY; @@ -626,16 +626,12 @@ void static BitcoinMiner(CWallet *pwallet) // Search // uint8_t pubkeys[66][33]; int mids[66],gpucount,nonzpkeys,i,j,externalflag; uint32_t savebits; int64_t nStart = GetTime(); -pblock->nBits = KOMODO_MINDIFF_NBITS; savebits = pblock->nBits; arith_uint256 hashTarget = arith_uint256().SetCompact(pblock->nBits); - int32_t z; for (z=0; z<32; z++) - fprintf(stderr,"%02x",((uint8_t *)&hashTarget)[z]); - fprintf(stderr,"savebits.%x\n",savebits); if ( ASSETCHAINS_SYMBOL[0] == 0 && notaryid >= 0 )//komodo_is_special(pindexPrev->nHeight+1,NOTARY_PUBKEY33) > 0 ) { j = 65; - if ( (Mining_height % KOMODO_ELECTION_GAP) > 64 || (Mining_height % KOMODO_ELECTION_GAP) == 0 ) + if ( (height >= 235300 && height < 236000) || (Mining_height % KOMODO_ELECTION_GAP) > 64 || (Mining_height % KOMODO_ELECTION_GAP) == 0 ) { komodo_eligiblenotary(pubkeys,mids,&nonzpkeys,pindexPrev->nHeight); if ( nonzpkeys > 0 ) @@ -671,7 +667,7 @@ pblock->nBits = KOMODO_MINDIFF_NBITS; if ( mids[j] == notaryid ) break; } else fprintf(stderr,"no nonz pubkeys\n"); - if ( j == 65 && Mining_height > KOMODO_MAYBEMINED+3 && Mining_height > KOMODO_LASTMINED+64 ) + if ( (height >= 235300 && height < 236000) || (j == 65 && Mining_height > KOMODO_MAYBEMINED+3 && Mining_height > KOMODO_LASTMINED+64) ) { hashTarget = arith_uint256().SetCompact(KOMODO_MINDIFF_NBITS); fprintf(stderr,"I am the chosen one for %s ht.%d\n",ASSETCHAINS_SYMBOL,pindexPrev->nHeight+1); @@ -715,10 +711,6 @@ pblock->nBits = KOMODO_MINDIFF_NBITS; { //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) // fprintf(stderr," missed target\n"); - arith_uint256 tmp = UintToArith256(pblock->GetHash()); - int32_t z; for (z=0; z<32; z++) - fprintf(stderr,"%02x",((uint8_t *)&tmp)[z]); - fprintf(stderr," > target savebits.%x\n",pblock->nBits); return false; } if ( ASSETCHAINS_SYMBOL[0] == 0 && Mining_start != 0 && time(NULL) < Mining_start+ROUNDROBIN_DELAY ) diff --git a/src/pow.cpp b/src/pow.cpp index e954875f150..9246d68386e 100644 --- a/src/pow.cpp +++ b/src/pow.cpp @@ -19,7 +19,6 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader *pblock, const Consensus::Params& params) { unsigned int nProofOfWorkLimit = UintToArith256(params.powLimit).GetCompact(); -return(KOMODO_MINDIFF_NBITS); // Genesis block if (pindexLast == NULL ) return nProofOfWorkLimit; @@ -156,7 +155,7 @@ bool CheckProofOfWork(int32_t height,uint8_t *pubkey33,uint256 hash, unsigned in // Check proof of work matches claimed amount if ( UintToArith256(hash) > bnTarget ) { - if ( KOMODO_LOADINGBLOCKS == 0 && height > 188000 && KOMODO_REWIND == 0 )//186269, 182507&& komodo_chainactive(height) != 0 && nonzpkeys > 0 + if ( (height < 235300 || height >= 236000) && KOMODO_LOADINGBLOCKS == 0 && height > 188000 && KOMODO_REWIND == 0 )//186269, 182507&& komodo_chainactive(height) != 0 && nonzpkeys > 0 { int32_t i; for (i=31; i>=0; i--) From 5a471ba9937bda1ec35f65ea03595dba541d4e69 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 13:42:21 +0200 Subject: [PATCH 19/22] Transition mining --- src/miner.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index 1ad65d48842..a681fb37b05 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -631,7 +631,7 @@ void static BitcoinMiner(CWallet *pwallet) if ( ASSETCHAINS_SYMBOL[0] == 0 && notaryid >= 0 )//komodo_is_special(pindexPrev->nHeight+1,NOTARY_PUBKEY33) > 0 ) { j = 65; - if ( (height >= 235300 && height < 236000) || (Mining_height % KOMODO_ELECTION_GAP) > 64 || (Mining_height % KOMODO_ELECTION_GAP) == 0 ) + if ( (Mining_height >= 235300 && Mining_height < 236000) || (Mining_height % KOMODO_ELECTION_GAP) > 64 || (Mining_height % KOMODO_ELECTION_GAP) == 0 ) { komodo_eligiblenotary(pubkeys,mids,&nonzpkeys,pindexPrev->nHeight); if ( nonzpkeys > 0 ) @@ -667,7 +667,7 @@ void static BitcoinMiner(CWallet *pwallet) if ( mids[j] == notaryid ) break; } else fprintf(stderr,"no nonz pubkeys\n"); - if ( (height >= 235300 && height < 236000) || (j == 65 && Mining_height > KOMODO_MAYBEMINED+3 && Mining_height > KOMODO_LASTMINED+64) ) + if ( (Mining_height >= 235300 && Mining_height < 236000) || (j == 65 && Mining_height > KOMODO_MAYBEMINED+3 && Mining_height > KOMODO_LASTMINED+64) ) { hashTarget = arith_uint256().SetCompact(KOMODO_MINDIFF_NBITS); fprintf(stderr,"I am the chosen one for %s ht.%d\n",ASSETCHAINS_SYMBOL,pindexPrev->nHeight+1); From d46afae5fa31c70b27d36630db5498ef84e61c98 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 13:55:58 +0200 Subject: [PATCH 20/22] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index a681fb37b05..376c12c6350 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -100,7 +100,7 @@ void UpdateTime(CBlockHeader* pblock, const Consensus::Params& consensusParams, #define ASSETCHAINS_MINHEIGHT 100 #define KOMODO_ELECTION_GAP 2000 -#define ROUNDROBIN_DELAY 61 +#define ROUNDROBIN_DELAY 60 extern int32_t ASSETCHAINS_SEED,IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE,ASSETCHAIN_INIT,KOMODO_INITDONE,KOMODO_ON_DEMAND,KOMODO_INITDONE; extern char ASSETCHAINS_SYMBOL[16]; extern std::string NOTARY_PUBKEY; From 36f1b84beef8ab6eca19a109568768c690293631 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 14:10:53 +0200 Subject: [PATCH 21/22] Test --- src/komodo_gateway.h | 2 +- src/main.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 168d11617cb..5df0e13934f 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -614,7 +614,7 @@ void komodo_bannedset(uint256 *array,int32_t max) array[i] = uint256S(banned_txids[i]); if ( i != max ) printf("banned txid array error i.%d != max.%d\n",i,max); - else printf("set %d banned txids\n",max); + //else printf("set %d banned txids\n",max); } int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above block is valid pax pricing diff --git a/src/main.cpp b/src/main.cpp index 78aa9f6ddbf..7e28ef742ae 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3206,7 +3206,7 @@ bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& sta int nHeight = pindexPrev->nHeight+1; // Check proof of work - if (block.nBits != GetNextWorkRequired(pindexPrev, &block, consensusParams)) + if ( (nHeight < 235300 || nHeight > 236000) && block.nBits != GetNextWorkRequired(pindexPrev, &block, consensusParams)) { cout << block.nBits << " block.nBits vs. calc " << GetNextWorkRequired(pindexPrev, &block, consensusParams) << endl; return state.DoS(100, error("%s: incorrect proof of work", __func__), From fe43f943521791e9b4c841346538e8c49cd06fe0 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 14:14:39 +0200 Subject: [PATCH 22/22] -addnode=78.47.196.146 --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 7e28ef742ae..307d1d460d5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3413,7 +3413,7 @@ bool ProcessNewBlock(int32_t height,CValidationState &state, CNode* pfrom, CBloc fRequested |= fForceProcessing; if (!checked) { if ( pfrom != 0 ) - Misbehaving(pfrom->GetId(), 20); + Misbehaving(pfrom->GetId(), 1); return error("%s: CheckBlock FAILED", __func__); }