From fbd69abd802e33a15434eac3fdd609d1adff9679 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 03:37:46 -1100 Subject: [PATCH 01/16] +print --- src/komodo_bitcoind.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index 0df145eee..f1caf47c0 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -1434,8 +1434,8 @@ arith_uint256 komodo_adaptivepow_target(int32_t height,arith_uint256 bnTarget,ui bnTarget = easy; fprintf(stderr,"miner overflowed mult.%lld, set to mindiff\n",(long long)mult); } else fprintf(stderr,"miner elapsed %d, adjust by factor of %lld\n",diff,(long long)mult); - } - } //else fprintf(stderr,"cant find height.%d\n",height); + } else fprintf(stderr,"diff %d, vs 120\n",diff); + } else fprintf(stderr,"cant find height.%d\n",height); return(bnTarget); } From ab9169210ba36e6ff434cd09d413f2504fc022c7 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 04:06:18 -1100 Subject: [PATCH 02/16] Test changing of default --- src/komodo_utils.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/komodo_utils.h b/src/komodo_utils.h index 31e87d82b..d2a9e12a1 100644 --- a/src/komodo_utils.h +++ b/src/komodo_utils.h @@ -2431,6 +2431,14 @@ fprintf(stderr,"extralen.%d before disable bits\n",extralen); CCENABLE(EVAL_DICE); CCENABLE(EVAL_ORACLES); } + if ( (pindex= komodo_activechain(1)) != 0 ) + { + if ( pindex->nTime > 1564499104 ) + { + ASSETCHAINS_ADAPTIVEPOW = 1; + fprintf(stderr,"default activate adaptivepow\n"); + } + } else fprintf(stderr,"cant find height 1\n"); } else BITCOIND_RPCPORT = GetArg("-rpcport", BaseParams().RPCPort()); KOMODO_DPOWCONFS = GetArg("-dpowconfs",dpowconfs); if ( ASSETCHAINS_SYMBOL[0] == 0 || strcmp(ASSETCHAINS_SYMBOL,"SUPERNET") == 0 || strcmp(ASSETCHAINS_SYMBOL,"DEX") == 0 || strcmp(ASSETCHAINS_SYMBOL,"COQUI") == 0 || strcmp(ASSETCHAINS_SYMBOL,"PIRATE") == 0 || strcmp(ASSETCHAINS_SYMBOL,"KMDICE") == 0 ) From 96d9bcb45ebc788fb17b2f4e527fd47154024364 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 04:07:34 -1100 Subject: [PATCH 03/16] Test timestamp --- src/komodo_utils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_utils.h b/src/komodo_utils.h index d2a9e12a1..8f9ece3a0 100644 --- a/src/komodo_utils.h +++ b/src/komodo_utils.h @@ -2433,7 +2433,7 @@ fprintf(stderr,"extralen.%d before disable bits\n",extralen); } if ( (pindex= komodo_activechain(1)) != 0 ) { - if ( pindex->nTime > 1564499104 ) + if ( pindex->nTime > 1564499104-365*2*1440 ) { ASSETCHAINS_ADAPTIVEPOW = 1; fprintf(stderr,"default activate adaptivepow\n"); From 6fbae7109cf99a0b78288bec490af20f23d4b1b9 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 04:09:37 -1100 Subject: [PATCH 04/16] Allow disabling adaptivepow --- src/komodo_bitcoind.h | 2 +- src/komodo_globals.h | 3 ++- src/komodo_utils.h | 2 +- src/miner.cpp | 10 +++++----- src/pow.cpp | 2 +- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index f1caf47c0..2e4461e7b 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -2283,7 +2283,7 @@ int32_t komodo_checkPOW(int32_t slowflag,CBlock *pblock,int32_t height) if ( height == 0 ) return(0); } - if ( ASSETCHAINS_ADAPTIVEPOW != 0 ) + if ( ASSETCHAINS_ADAPTIVEPOW > 0 ) bnTarget = komodo_adaptivepow_target(height,bnTarget,pblock->nTime); if ( ASSETCHAINS_LWMAPOS != 0 && bhash > bnTarget ) { diff --git a/src/komodo_globals.h b/src/komodo_globals.h index de42f12b1..817e51027 100644 --- a/src/komodo_globals.h +++ b/src/komodo_globals.h @@ -50,7 +50,8 @@ uint256 KOMODO_EARLYTXID; int32_t KOMODO_MININGTHREADS = -1,IS_KOMODO_NOTARY,IS_STAKED_NOTARY,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE,ASSETCHAINS_SEED,KOMODO_ON_DEMAND,KOMODO_EXTERNAL_NOTARIES,KOMODO_PASSPORT_INITDONE,KOMODO_PAX,KOMODO_EXCHANGEWALLET,KOMODO_REWIND,STAKED_ERA,KOMODO_CONNECTING = -1,KOMODO_DEALERNODE,KOMODO_EXTRASATOSHI,ASSETCHAINS_FOUNDERS,ASSETCHAINS_CBMATURITY,KOMODO_NSPV; int32_t KOMODO_INSYNC,KOMODO_LASTMINED,prevKOMODO_LASTMINED,KOMODO_CCACTIVATE,JUMBLR_PAUSE = 1; std::string NOTARY_PUBKEY,ASSETCHAINS_NOTARIES,ASSETCHAINS_OVERRIDE_PUBKEY,DONATION_PUBKEY,ASSETCHAINS_SCRIPTPUB,NOTARY_ADDRESS,ASSETCHAINS_SELFIMPORT,ASSETCHAINS_CCLIB; -uint8_t NOTARY_PUBKEY33[33],ASSETCHAINS_OVERRIDE_PUBKEY33[33],ASSETCHAINS_OVERRIDE_PUBKEYHASH[20],ASSETCHAINS_PUBLIC,ASSETCHAINS_PRIVATE,ASSETCHAINS_TXPOW,ASSETCHAINS_MARMARA,ASSETCHAINS_ADAPTIVEPOW; +uint8_t NOTARY_PUBKEY33[33],ASSETCHAINS_OVERRIDE_PUBKEY33[33],ASSETCHAINS_OVERRIDE_PUBKEYHASH[20],ASSETCHAINS_PUBLIC,ASSETCHAINS_PRIVATE,ASSETCHAINS_TXPOW,ASSETCHAINS_MARMARA; +int8_t ASSETCHAINS_ADAPTIVEPOW; bool VERUS_MINTBLOCKS; std::vector Mineropret; std::vector vWhiteListAddress; diff --git a/src/komodo_utils.h b/src/komodo_utils.h index 8f9ece3a0..9e470c657 100644 --- a/src/komodo_utils.h +++ b/src/komodo_utils.h @@ -2431,7 +2431,7 @@ fprintf(stderr,"extralen.%d before disable bits\n",extralen); CCENABLE(EVAL_DICE); CCENABLE(EVAL_ORACLES); } - if ( (pindex= komodo_activechain(1)) != 0 ) + if ( ASSETCHAINS_ADAPTIVEPOW == 0 && (pindex= komodo_activechain(1)) != 0 ) { if ( pindex->nTime > 1564499104-365*2*1440 ) { diff --git a/src/miner.cpp b/src/miner.cpp index 19e853479..05a24ca2f 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -1447,7 +1447,7 @@ void static BitcoinMiner_noeq() HASHTarget.SetCompact(KOMODO_MINDIFF_NBITS,&fNegative,&fOverflow); LogPrintf("Block %d : PoS %d%% vs target %d%%\n", Mining_height, percPoS, (int32_t)ASSETCHAINS_STAKED); } - else if ( ASSETCHAINS_ADAPTIVEPOW != 0 && ASSETCHAINS_STAKED == 0 ) + else if ( ASSETCHAINS_ADAPTIVEPOW > 0 && ASSETCHAINS_STAKED == 0 ) HASHTarget_POW = komodo_adaptivepow_target(Mining_height,HASHTarget,pblock->nTime); while (true) @@ -1482,7 +1482,7 @@ void static BitcoinMiner_noeq() } else if ( ASSETCHAINS_STAKED == 100 && Mining_height > 100 ) hashTarget = HASHTarget; - else if ( ASSETCHAINS_ADAPTIVEPOW != 0 && ASSETCHAINS_STAKED == 0 ) + else if ( ASSETCHAINS_ADAPTIVEPOW > 0 && ASSETCHAINS_STAKED == 0 ) hashTarget = HASHTarget_POW; // for speed check NONCEMASK at a time @@ -1820,7 +1820,7 @@ void static BitcoinMiner() if ( ASSETCHAINS_STAKED < 100 ) LogPrintf("Block %d : PoS %d%% vs target %d%% \n",Mining_height,percPoS,(int32_t)ASSETCHAINS_STAKED); } - else if ( ASSETCHAINS_ADAPTIVEPOW != 0 ) + else if ( ASSETCHAINS_ADAPTIVEPOW > 0 ) HASHTarget_POW = komodo_adaptivepow_target(Mining_height,HASHTarget,pblock->nTime); gotinvalid = 0; while (true) @@ -1849,7 +1849,7 @@ void static BitcoinMiner() arith_uint256 hashTarget; if ( KOMODO_MININGTHREADS > 0 && ASSETCHAINS_STAKED > 0 && ASSETCHAINS_STAKED < 100 && Mining_height > 10 ) hashTarget = HASHTarget_POW; - else if ( ASSETCHAINS_ADAPTIVEPOW != 0 ) + else if ( ASSETCHAINS_ADAPTIVEPOW > 0 ) hashTarget = HASHTarget_POW; else hashTarget = HASHTarget; std::function)> validBlock = @@ -2040,7 +2040,7 @@ void static BitcoinMiner() // Update nNonce and nTime pblock->nNonce = ArithToUint256(UintToArith256(pblock->nNonce) + 1); pblock->nBits = savebits; - if ( ASSETCHAINS_ADAPTIVEPOW != 0 ) + if ( ASSETCHAINS_ADAPTIVEPOW > 0 ) UpdateTime(pblock, chainparams.GetConsensus(), pindexPrev); /*if ( NOTARY_PUBKEY33[0] == 0 ) { diff --git a/src/pow.cpp b/src/pow.cpp index bc862b835..18fda549f 100644 --- a/src/pow.cpp +++ b/src/pow.cpp @@ -453,7 +453,7 @@ bool CheckProofOfWork(const CBlockHeader &blkHeader, uint8_t *pubkey33, int32_t arith_uint256 bnMaxPoSdiff; bnTarget.SetCompact(KOMODO_MINDIFF_NBITS,&fNegative,&fOverflow); } - else if ( ASSETCHAINS_ADAPTIVEPOW != 0 && ASSETCHAINS_STAKED == 0 ) + else if ( ASSETCHAINS_ADAPTIVEPOW > 0 && ASSETCHAINS_STAKED == 0 ) bnTarget = komodo_adaptivepow_target(height,bnTarget,blkHeader.nTime); // Check proof of work matches claimed amount if ( UintToArith256(hash = blkHeader.GetHash()) > bnTarget && !blkHeader.IsVerusPOSBlock() ) From 4c0e78bde3048a778d7071375a91ad581f513e95 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 04:14:22 -1100 Subject: [PATCH 05/16] Syntax --- src/komodo_defs.h | 3 ++- src/komodo_utils.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/komodo_defs.h b/src/komodo_defs.h index 10d71ea96..c6150f905 100644 --- a/src/komodo_defs.h +++ b/src/komodo_defs.h @@ -263,7 +263,8 @@ static const char *notaries_elected[NUM_KMD_SEASONS][NUM_KMD_NOTARIES][2] = //#define PRICES_DAYWINDOW (7) //#endif -extern uint8_t ASSETCHAINS_TXPOW,ASSETCHAINS_PUBLIC,ASSETCHAINS_ADAPTIVEPOW; +extern uint8_t ASSETCHAINS_TXPOW,ASSETCHAINS_PUBLIC; +extern int8_t ASSETCHAINS_ADAPTIVEPOW; int32_t MAX_BLOCK_SIZE(int32_t height); extern char ASSETCHAINS_SYMBOL[KOMODO_ASSETCHAIN_MAXLEN]; extern uint16_t ASSETCHAINS_P2PPORT,ASSETCHAINS_RPCPORT; diff --git a/src/komodo_utils.h b/src/komodo_utils.h index 9e470c657..0e3cbe577 100644 --- a/src/komodo_utils.h +++ b/src/komodo_utils.h @@ -2433,6 +2433,7 @@ fprintf(stderr,"extralen.%d before disable bits\n",extralen); } if ( ASSETCHAINS_ADAPTIVEPOW == 0 && (pindex= komodo_activechain(1)) != 0 ) { + CBlockIndex *pindex; if ( pindex->nTime > 1564499104-365*2*1440 ) { ASSETCHAINS_ADAPTIVEPOW = 1; From 629fb610f6054d47d75afc3f07cb2ea08c6bd7b7 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 04:19:38 -1100 Subject: [PATCH 06/16] Syntax --- src/komodo_utils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_utils.h b/src/komodo_utils.h index 0e3cbe577..99eb4337b 100644 --- a/src/komodo_utils.h +++ b/src/komodo_utils.h @@ -2431,9 +2431,9 @@ fprintf(stderr,"extralen.%d before disable bits\n",extralen); CCENABLE(EVAL_DICE); CCENABLE(EVAL_ORACLES); } + CBlockIndex *pindex; if ( ASSETCHAINS_ADAPTIVEPOW == 0 && (pindex= komodo_activechain(1)) != 0 ) { - CBlockIndex *pindex; if ( pindex->nTime > 1564499104-365*2*1440 ) { ASSETCHAINS_ADAPTIVEPOW = 1; From 68bc9849856424c246119fd686709099b8a68d56 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 04:22:44 -1100 Subject: [PATCH 07/16] Komodo_chainactive --- src/komodo_utils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_utils.h b/src/komodo_utils.h index 99eb4337b..4709a9bb1 100644 --- a/src/komodo_utils.h +++ b/src/komodo_utils.h @@ -2432,7 +2432,7 @@ fprintf(stderr,"extralen.%d before disable bits\n",extralen); CCENABLE(EVAL_ORACLES); } CBlockIndex *pindex; - if ( ASSETCHAINS_ADAPTIVEPOW == 0 && (pindex= komodo_activechain(1)) != 0 ) + if ( ASSETCHAINS_ADAPTIVEPOW == 0 && (pindex= komodo_chainactive(1)) != 0 ) { if ( pindex->nTime > 1564499104-365*2*1440 ) { From dd67e645ffecc8fc0777a50412ef66e456c6736e Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 04:36:20 -1100 Subject: [PATCH 08/16] Fix timeout error --- src/komodo_nSPV_defs.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_nSPV_defs.h b/src/komodo_nSPV_defs.h index 282e58cab..3f1016bb3 100644 --- a/src/komodo_nSPV_defs.h +++ b/src/komodo_nSPV_defs.h @@ -18,8 +18,8 @@ #define KOMODO_NSPV_DEFSH #define NSPV_PROTOCOL_VERSION 0x00000002 -#define NSPV_POLLITERS 100 -#define NSPV_POLLMICROS 30000 +#define NSPV_POLLITERS 200 +#define NSPV_POLLMICROS 50000 #define NSPV_MAXVINS 64 #define NSPV_AUTOLOGOUT 777 #define NSPV_BRANCHID 0x76b809bb From 9a32570ad09d7186f3e6c1618728be8652f34b63 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 04:41:05 -1100 Subject: [PATCH 09/16] Move to init time check --- src/bitcoind.cpp | 11 ++++++++++- src/komodo_utils.h | 8 -------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index 0baadf620..de36ea4ea 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -65,16 +65,25 @@ void komodo_passport_iteration(); uint64_t komodo_interestsum(); int32_t komodo_longestchain(); void komodo_cbopretupdate(int32_t forceflag); +CBlockIndex *komodo_chainactive(int32_t height); void WaitForShutdown(boost::thread_group* threadGroup) { - int32_t i,height; bool fShutdown = ShutdownRequested(); const uint256 zeroid; + int32_t i,height; CBlockIndex *pindex; bool fShutdown = ShutdownRequested(); const uint256 zeroid; // Tell the main threads to shutdown. if (komodo_currentheight()>KOMODO_EARLYTXID_HEIGHT && KOMODO_EARLYTXID!=zeroid && ((height=tx_height(KOMODO_EARLYTXID))==0 || height>KOMODO_EARLYTXID_HEIGHT)) { fprintf(stderr,"error: earlytx must be before block height %d or tx does not exist\n",KOMODO_EARLYTXID_HEIGHT); StartShutdown(); } + if ( ASSETCHAINS_ADAPTIVEPOW == 0 && (pindex= komodo_chainactive(1)) != 0 ) + { + if ( pindex->nTime > 1564499104-365*2*1440 ) + { + ASSETCHAINS_ADAPTIVEPOW = 1; + fprintf(stderr,"default activate adaptivepow\n"); + } + } else fprintf(stderr,"cant find height 1\n"); if ( ASSETCHAINS_CBOPRET != 0 ) komodo_pricesinit(); while (!fShutdown) diff --git a/src/komodo_utils.h b/src/komodo_utils.h index 4709a9bb1..7533e2376 100644 --- a/src/komodo_utils.h +++ b/src/komodo_utils.h @@ -2432,14 +2432,6 @@ fprintf(stderr,"extralen.%d before disable bits\n",extralen); CCENABLE(EVAL_ORACLES); } CBlockIndex *pindex; - if ( ASSETCHAINS_ADAPTIVEPOW == 0 && (pindex= komodo_chainactive(1)) != 0 ) - { - if ( pindex->nTime > 1564499104-365*2*1440 ) - { - ASSETCHAINS_ADAPTIVEPOW = 1; - fprintf(stderr,"default activate adaptivepow\n"); - } - } else fprintf(stderr,"cant find height 1\n"); } else BITCOIND_RPCPORT = GetArg("-rpcport", BaseParams().RPCPort()); KOMODO_DPOWCONFS = GetArg("-dpowconfs",dpowconfs); if ( ASSETCHAINS_SYMBOL[0] == 0 || strcmp(ASSETCHAINS_SYMBOL,"SUPERNET") == 0 || strcmp(ASSETCHAINS_SYMBOL,"DEX") == 0 || strcmp(ASSETCHAINS_SYMBOL,"COQUI") == 0 || strcmp(ASSETCHAINS_SYMBOL,"PIRATE") == 0 || strcmp(ASSETCHAINS_SYMBOL,"KMDICE") == 0 ) From dc1973c1152106f1e50eb54a8e670d526870d529 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 04:41:29 -1100 Subject: [PATCH 10/16] Cleanup --- src/komodo_utils.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/komodo_utils.h b/src/komodo_utils.h index 7533e2376..31e87d82b 100644 --- a/src/komodo_utils.h +++ b/src/komodo_utils.h @@ -2431,7 +2431,6 @@ fprintf(stderr,"extralen.%d before disable bits\n",extralen); CCENABLE(EVAL_DICE); CCENABLE(EVAL_ORACLES); } - CBlockIndex *pindex; } else BITCOIND_RPCPORT = GetArg("-rpcport", BaseParams().RPCPort()); KOMODO_DPOWCONFS = GetArg("-dpowconfs",dpowconfs); if ( ASSETCHAINS_SYMBOL[0] == 0 || strcmp(ASSETCHAINS_SYMBOL,"SUPERNET") == 0 || strcmp(ASSETCHAINS_SYMBOL,"DEX") == 0 || strcmp(ASSETCHAINS_SYMBOL,"COQUI") == 0 || strcmp(ASSETCHAINS_SYMBOL,"PIRATE") == 0 || strcmp(ASSETCHAINS_SYMBOL,"KMDICE") == 0 ) From 91ce4a99e63d90d9386352af13fa3cdc90c402c5 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 04:47:05 -1100 Subject: [PATCH 11/16] Test --- src/bitcoind.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index de36ea4ea..58f4b4930 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -82,7 +82,7 @@ void WaitForShutdown(boost::thread_group* threadGroup) { ASSETCHAINS_ADAPTIVEPOW = 1; fprintf(stderr,"default activate adaptivepow\n"); - } + } else fprintf(stderr,"height1 time %u vs %u\n",pindex->nTime,1564499104-365*2*1440) } else fprintf(stderr,"cant find height 1\n"); if ( ASSETCHAINS_CBOPRET != 0 ) komodo_pricesinit(); From 8fbb317419decab5519db41f89d70cd4f22bfdc9 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 04:50:27 -1100 Subject: [PATCH 12/16] Use tipdiff also --- src/bitcoind.cpp | 2 +- src/komodo_bitcoind.h | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index 58f4b4930..8ee328dcd 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -82,7 +82,7 @@ void WaitForShutdown(boost::thread_group* threadGroup) { ASSETCHAINS_ADAPTIVEPOW = 1; fprintf(stderr,"default activate adaptivepow\n"); - } else fprintf(stderr,"height1 time %u vs %u\n",pindex->nTime,1564499104-365*2*1440) + } else fprintf(stderr,"height1 time %u vs %u\n",pindex->nTime,1564499104-365*2*1440); } else fprintf(stderr,"cant find height 1\n"); if ( ASSETCHAINS_CBOPRET != 0 ) komodo_pricesinit(); diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index 2e4461e7b..c3dbf2d85 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -1418,10 +1418,13 @@ uint32_t komodo_stakehash(uint256 *hashp,char *address,uint8_t *hashbuf,uint256 arith_uint256 komodo_adaptivepow_target(int32_t height,arith_uint256 bnTarget,uint32_t nTime) { - arith_uint256 origtarget,easy; int32_t diff; int64_t mult; bool fNegative,fOverflow; CBlockIndex *tipindex; + arith_uint256 origtarget,easy; int32_t diff,tipdiff; int64_t mult; bool fNegative,fOverflow; CBlockIndex *tipindex; if ( height > 10 && (tipindex= komodo_chainactive(height - 1)) != 0 ) { diff = (nTime - tipindex->GetMedianTimePast()); + tipdiff = (nTime - tipindex->nTime); + if ( tipdiff > 13*ASSETCHAINS_BLOCKTIME ) + diff = 13*ASSETCHAINS_BLOCKTIME; if ( diff > 20 * ASSETCHAINS_BLOCKTIME ) { mult = diff - 19 * ASSETCHAINS_BLOCKTIME; From e836664a18ec11b3ddeddd52bfb2ce5aa5f2e2c1 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 04:53:46 -1100 Subject: [PATCH 13/16] Test timestamp --- src/bitcoind.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index 8ee328dcd..22b48139b 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -78,11 +78,11 @@ void WaitForShutdown(boost::thread_group* threadGroup) } if ( ASSETCHAINS_ADAPTIVEPOW == 0 && (pindex= komodo_chainactive(1)) != 0 ) { - if ( pindex->nTime > 1564499104-365*2*1440 ) + if ( pindex->nTime > 1539612702 ) { ASSETCHAINS_ADAPTIVEPOW = 1; fprintf(stderr,"default activate adaptivepow\n"); - } else fprintf(stderr,"height1 time %u vs %u\n",pindex->nTime,1564499104-365*2*1440); + } else fprintf(stderr,"height1 time %u vs %u\n",pindex->nTime,1539612702); } else fprintf(stderr,"cant find height 1\n"); if ( ASSETCHAINS_CBOPRET != 0 ) komodo_pricesinit(); From 7f7b3aa11d194f669e7c18f7f224128119e6d5d5 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 04:55:57 -1100 Subject: [PATCH 14/16] Hardfork adaptivpow activation --- src/bitcoind.cpp | 6 +++--- src/komodo_defs.h | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index 22b48139b..89f070f83 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -76,13 +76,13 @@ void WaitForShutdown(boost::thread_group* threadGroup) fprintf(stderr,"error: earlytx must be before block height %d or tx does not exist\n",KOMODO_EARLYTXID_HEIGHT); StartShutdown(); } - if ( ASSETCHAINS_ADAPTIVEPOW == 0 && (pindex= komodo_chainactive(1)) != 0 ) + if ( ASSETCHAINS_STAKED == 0 && ASSETCHAINS_ADAPTIVEPOW == 0 && (pindex= komodo_chainactive(1)) != 0 ) { - if ( pindex->nTime > 1539612702 ) + if ( pindex->nTime > ADAPTIVEPOW_CHANGETO_DEFAULTON ) { ASSETCHAINS_ADAPTIVEPOW = 1; fprintf(stderr,"default activate adaptivepow\n"); - } else fprintf(stderr,"height1 time %u vs %u\n",pindex->nTime,1539612702); + } else fprintf(stderr,"height1 time %u vs %u\n",pindex->nTime,ADAPTIVEPOW_CHANGETO_DEFAULTON); } else fprintf(stderr,"cant find height 1\n"); if ( ASSETCHAINS_CBOPRET != 0 ) komodo_pricesinit(); diff --git a/src/komodo_defs.h b/src/komodo_defs.h index c6150f905..b7b5c9da7 100644 --- a/src/komodo_defs.h +++ b/src/komodo_defs.h @@ -20,6 +20,7 @@ #include "komodo_nk.h" #define KOMODO_EARLYTXID_HEIGHT 100 +#define ADAPTIVEPOW_CHANGETO_DEFAULTON 1572480000 #define ASSETCHAINS_MINHEIGHT 128 #define ASSETCHAINS_MAX_ERAS 7 #define KOMODO_ELECTION_GAP 2000 From 20f1df3472a44423814998e94ce4037b39bef6f6 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 04:59:35 -1100 Subject: [PATCH 15/16] Fix --- src/komodo_bitcoind.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index c3dbf2d85..95f609483 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -1425,10 +1425,10 @@ arith_uint256 komodo_adaptivepow_target(int32_t height,arith_uint256 bnTarget,ui tipdiff = (nTime - tipindex->nTime); if ( tipdiff > 13*ASSETCHAINS_BLOCKTIME ) diff = 13*ASSETCHAINS_BLOCKTIME; - if ( diff > 20 * ASSETCHAINS_BLOCKTIME ) + if ( diff > 13 * ASSETCHAINS_BLOCKTIME ) { - mult = diff - 19 * ASSETCHAINS_BLOCKTIME; - mult = (mult / ASSETCHAINS_BLOCKTIME) * ASSETCHAINS_BLOCKTIME + ASSETCHAINS_BLOCKTIME / 3; + mult = diff - 12 * ASSETCHAINS_BLOCKTIME; + mult = (mult / ASSETCHAINS_BLOCKTIME) * ASSETCHAINS_BLOCKTIME + ASSETCHAINS_BLOCKTIME / 2; origtarget = bnTarget; bnTarget = bnTarget * arith_uint256(mult * mult); easy.SetCompact(KOMODO_MINDIFF_NBITS,&fNegative,&fOverflow); From 0454333ff8e80a18bf90a5bacc4108e0de7e0e24 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 30 Jul 2019 05:11:57 -1100 Subject: [PATCH 16/16] Tristate KOMODO_NSPV --- src/bitcoind.cpp | 2 +- src/cc/CCtokens.cpp | 2 +- src/cc/CCtx.cpp | 10 ++++----- src/cc/CCutils.cpp | 6 +++--- src/consensus/upgrades.cpp | 2 +- src/init.cpp | 8 +++---- src/komodo_nSPV_superlite.h | 8 +++---- src/main.cpp | 43 ++++++++++++++++++++----------------- src/net.cpp | 2 +- src/rpc/blockchain.cpp | 4 ++-- src/rpc/misc.cpp | 2 +- src/rpc/rawtransaction.cpp | 4 ++-- src/script/sign.cpp | 8 +++---- src/wallet/rpcdump.cpp | 24 ++++++++++----------- src/wallet/rpcwallet.cpp | 8 +++---- 15 files changed, 68 insertions(+), 65 deletions(-) diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index 89f070f83..cf9b1c20c 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -91,7 +91,7 @@ void WaitForShutdown(boost::thread_group* threadGroup) //fprintf(stderr,"call passport iteration\n"); if ( ASSETCHAINS_SYMBOL[0] == 0 ) { - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) komodo_passport_iteration(); for (i=0; i<10; i++) { diff --git a/src/cc/CCtokens.cpp b/src/cc/CCtokens.cpp index 39daede80..07b9efbb1 100644 --- a/src/cc/CCtokens.cpp +++ b/src/cc/CCtokens.cpp @@ -957,7 +957,7 @@ UniValue TokenInfo(uint256 tokenid) result.push_back(Pair("error", "cant find tokenid")); return(result); } - if ( KOMODO_NSPV == 0 && hashBlock.IsNull()) { + if ( KOMODO_NSPV <= 0 && hashBlock.IsNull()) { result.push_back(Pair("result", "error")); result.push_back(Pair("error", "the transaction is still in mempool")); return(result); diff --git a/src/cc/CCtx.cpp b/src/cc/CCtx.cpp index 01cb02211..8692be7da 100644 --- a/src/cc/CCtx.cpp +++ b/src/cc/CCtx.cpp @@ -162,7 +162,7 @@ std::string FinalizeCCTx(uint64_t CCmask,struct CCcontract_info *cp,CMutableTran utxovout = mtx.vin[i].prevout.n; if ( vintx.vout[utxovout].scriptPubKey.IsPayToCryptoCondition() == 0 ) { - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) { if ( SignTx(mtx,i,vintx.vout[utxovout].nValue,vintx.vout[utxovout].scriptPubKey) == 0 ) fprintf(stderr,"signing error for vini.%d of %llx\n",i,(long long)vinimask); @@ -344,7 +344,7 @@ void NSPV_CCtxids(std::vector > &txids,char void SetCCunspents(std::vector > &unspentOutputs,char *coinaddr,bool ccflag) { int32_t type=0,i,n; char *ptr; std::string addrstr; uint160 hashBytes; std::vector > addresses; - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) { NSPV_CCunspents(unspentOutputs,coinaddr,ccflag); return; @@ -368,7 +368,7 @@ void SetCCunspents(std::vector > &addressIndex,char *coinaddr,bool ccflag) { int32_t type=0,i,n; char *ptr; std::string addrstr; uint160 hashBytes; std::vector > addresses; - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) { NSPV_CCtxids(addressIndex,coinaddr,ccflag); return; @@ -555,7 +555,7 @@ int32_t CC_vinselect(int32_t *aboveip,int64_t *abovep,int32_t *belowip,int64_t * int64_t AddNormalinputs(CMutableTransaction &mtx,CPubKey mypk,int64_t total,int32_t maxinputs) { int32_t abovei,belowi,ind,vout,i,n = 0; int64_t sum,threshold,above,below; int64_t remains,nValue,totalinputs = 0; uint256 txid,hashBlock; std::vector vecOutputs; CTransaction tx; struct CC_utxo *utxos,*up; - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) return(NSPV_AddNormalinputs(mtx,mypk,total,maxinputs,&NSPV_U)); #ifdef ENABLE_WALLET assert(pwalletMain != NULL); @@ -652,7 +652,7 @@ int64_t AddNormalinputs2(CMutableTransaction &mtx,int64_t total,int32_t maxinput { int32_t abovei,belowi,ind,vout,i,n = 0; int64_t sum,threshold,above,below; int64_t remains,nValue,totalinputs = 0; char coinaddr[64]; uint256 txid,hashBlock; CTransaction tx; struct CC_utxo *utxos,*up; std::vector > unspentOutputs; - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) return(NSPV_AddNormalinputs(mtx,pubkey2pk(Mypubkey()),total,maxinputs,&NSPV_U)); utxos = (struct CC_utxo *)calloc(CC_MAXVINS,sizeof(*utxos)); if ( maxinputs > CC_MAXVINS ) diff --git a/src/cc/CCutils.cpp b/src/cc/CCutils.cpp index 7e376e0ce..b2125d3a4 100644 --- a/src/cc/CCutils.cpp +++ b/src/cc/CCutils.cpp @@ -450,7 +450,7 @@ extern uint32_t NSPV_logintime; bool Myprivkey(uint8_t myprivkey[]) { char coinaddr[64],checkaddr[64]; std::string strAddress; char *dest; int32_t i,n; CBitcoinAddress address; CKeyID keyID; CKey vchSecret; uint8_t buf33[33]; - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) { if ( NSPV_logintime == 0 || time(NULL) > NSPV_logintime+NSPV_AUTOLOGOUT ) { @@ -590,7 +590,7 @@ int32_t NSPV_coinaddr_inmempool(char const *logcategory,char *coinaddr,uint8_t C int32_t myIs_coinaddr_inmempoolvout(char const *logcategory,char *coinaddr) { int32_t i,n; char destaddr[64]; - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) return(NSPV_coinaddr_inmempool(logcategory,coinaddr,1)); BOOST_FOREACH(const CTxMemPoolEntry &e,mempool.mapTx) { @@ -619,7 +619,7 @@ int32_t myGet_mempool_txs(std::vector &txs,uint8_t evalcode,uint8_ { int i=0; - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) { CTransaction tx; uint256 hashBlock; diff --git a/src/consensus/upgrades.cpp b/src/consensus/upgrades.cpp index 786e58510..e23137a7b 100644 --- a/src/consensus/upgrades.cpp +++ b/src/consensus/upgrades.cpp @@ -101,7 +101,7 @@ int CurrentEpoch(int nHeight, const Consensus::Params& params) { uint32_t CurrentEpochBranchId(int nHeight, const Consensus::Params& params) { - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) return(NSPV_BRANCHID); return NetworkUpgradeInfo[CurrentEpoch(nHeight, params)].nBranchId; } diff --git a/src/init.cpp b/src/init.cpp index 9296d17ac..51d6cb435 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1066,7 +1066,7 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) RegisterAllCoreRPCCommands(tableRPC); #ifdef ENABLE_WALLET bool fDisableWallet = GetBoolArg("-disablewallet", false); - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) { fDisableWallet = true; nLocalServices = 0; @@ -1147,7 +1147,7 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) // Option to startup with mocktime set (used for regression testing): SetMockTime(GetArg("-mocktime", 0)); // SetMockTime(0) is a no-op - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) { if (GetBoolArg("-peerbloomfilters", true)) nLocalServices |= NODE_BLOOM; @@ -1306,7 +1306,7 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) libsnark::inhibit_profiling_info = true; libsnark::inhibit_profiling_counters = true; - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) { // Initialize Zcash circuit parameters ZC_LoadParams(chainparams); @@ -1487,7 +1487,7 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) } #endif - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) { std::vector vImportFiles; threadGroup.create_thread(boost::bind(&ThreadImport, vImportFiles)); diff --git a/src/komodo_nSPV_superlite.h b/src/komodo_nSPV_superlite.h index 29e60aa75..37f1c3c44 100644 --- a/src/komodo_nSPV_superlite.h +++ b/src/komodo_nSPV_superlite.h @@ -214,7 +214,7 @@ void komodo_nSPVresp(CNode *pfrom,std::vector response) // received a r CNode *NSPV_req(CNode *pnode,uint8_t *msg,int32_t len,uint64_t mask,int32_t ind) { int32_t n,flag = 0; CNode *pnodes[64]; uint32_t timestamp = (uint32_t)time(NULL); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) return(0); if ( pnode == 0 ) { @@ -243,7 +243,7 @@ CNode *NSPV_req(CNode *pnode,uint8_t *msg,int32_t len,uint64_t mask,int32_t ind) std::vector request; request.resize(len); memcpy(&request[0],msg,len); - if ( (0) && KOMODO_NSPV != 0 ) + if ( (0) && KOMODO_NSPV > 0 ) fprintf(stderr,"pushmessage [%d] len.%d\n",msg[0],len); pnode->PushMessage("getnSPV",request); pnode->prevtimes[ind] = timestamp; @@ -279,7 +279,7 @@ void komodo_nSPV(CNode *pto) // polling loop from SendMessages return; if ( pto->prevtimes[NSPV_INFO>>1] > timestamp ) pto->prevtimes[NSPV_INFO>>1] = 0; - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) { if ( timestamp > NSPV_lastinfo + ASSETCHAINS_BLOCKTIME/2 && timestamp > pto->prevtimes[NSPV_INFO>>1] + 2*ASSETCHAINS_BLOCKTIME/3 ) { @@ -537,7 +537,7 @@ UniValue NSPV_login(char *wifstr) result.push_back(Pair("address",NSPV_address)); result.push_back(Pair("pubkey",HexStr(pubkey))); strcpy(NSPV_pubkeystr,HexStr(pubkey).c_str()); - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) decode_hex(NOTARY_PUBKEY33,33,NSPV_pubkeystr); result.push_back(Pair("wifprefix",(int64_t)data[0])); result.push_back(Pair("compressed",(int64_t)(data[len-5] == 1))); diff --git a/src/main.cpp b/src/main.cpp index 34b84058e..c47ae67cf 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2227,7 +2227,7 @@ bool myAddtomempool(CTransaction &tx, CValidationState *pstate, bool fSkipExpiry bool myGetTransaction(const uint256 &hash, CTransaction &txOut, uint256 &hashBlock) { memset(&hashBlock,0,sizeof(hashBlock)); - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) { int64_t rewardsum = 0; int32_t i,retval,txheight,currentheight,height=0,vout = 0; for (i=0; i 0 ) { int64_t rewardsum = 0; int32_t i,retval,height=0,vout = 0; for (i=0; i 0 ) return(true); if ( KOMODO_STOPAT != 0 && pindex->GetHeight() > KOMODO_STOPAT ) return(false); @@ -4011,7 +4011,7 @@ bool static FlushStateToDisk(CValidationState &state, FlushStateMode mode) { void FlushStateToDisk() { CValidationState state; - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) FlushStateToDisk(state, FLUSH_STATE_ALWAYS); } @@ -4162,7 +4162,7 @@ bool static DisconnectTip(CValidationState &state, bool fBare = false) { if ((i == (block.vtx.size() - 1)) && (ASSETCHAINS_STAKED != 0 && (komodo_isPoS((CBlock *)&block,pindexDelete->GetHeight(),true) != 0))) { #ifdef ENABLE_WALLET - if ( !GetBoolArg("-disablewallet", false) && KOMODO_NSPV == 0 ) + if ( !GetBoolArg("-disablewallet", false) && KOMODO_NSPV <= 0 ) pwalletMain->EraseFromWallet(tx.GetHash()); #endif } @@ -4267,7 +4267,7 @@ bool static ConnectTip(CValidationState &state, CBlockIndex *pindexNew, CBlock * // Get the current commitment tree SproutMerkleTree oldSproutTree; SaplingMerkleTree oldSaplingTree; - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) { assert(pcoinsTip->GetSproutAnchorAt(pcoinsTip->GetBestAnchor(SPROUT), oldSproutTree)); assert(pcoinsTip->GetSaplingAnchorAt(pcoinsTip->GetBestAnchor(SAPLING), oldSaplingTree)); @@ -4296,13 +4296,13 @@ bool static ConnectTip(CValidationState &state, CBlockIndex *pindexNew, CBlock * mapBlockSource.erase(pindexNew->GetBlockHash()); nTime3 = GetTimeMicros(); nTimeConnectTotal += nTime3 - nTime2; LogPrint("bench", " - Connect total: %.2fms [%.2fs]\n", (nTime3 - nTime2) * 0.001, nTimeConnectTotal * 0.000001); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) assert(view.Flush()); } int64_t nTime4 = GetTimeMicros(); nTimeFlush += nTime4 - nTime3; LogPrint("bench", " - Flush: %.2fms [%.2fs]\n", (nTime4 - nTime3) * 0.001, nTimeFlush * 0.000001); // Write the chain state to disk, if necessary. - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) { if (!FlushStateToDisk(state, FLUSH_STATE_IF_NEEDED)) return false; @@ -4318,7 +4318,7 @@ bool static ConnectTip(CValidationState &state, CBlockIndex *pindexNew, CBlock * // Update chainActive & related variables. UpdateTip(pindexNew); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) { // Tell wallet about transactions that went from mempool // to conflicted: @@ -4346,7 +4346,7 @@ bool static ConnectTip(CValidationState &state, CBlockIndex *pindexNew, CBlock * komodo_broadcast(pblock,8); else if ( ASSETCHAINS_SYMBOL[0] != 0 ) komodo_broadcast(pblock,4);*/ - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) { if ( ASSETCHAINS_CBOPRET != 0 ) komodo_pricesupdate(pindexNew->GetHeight(),pblock); @@ -6547,7 +6547,7 @@ bool InitBlockIndex() { if (!ActivateBestChain(true, state, &block)) return error("LoadBlockIndex(): genesis block cannot be activated"); // Force a chainstate write so that when we VerifyDB in a moment, it doesn't check stale data - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) return FlushStateToDisk(state, FLUSH_STATE_ALWAYS); else return(true); } catch (const std::runtime_error& e) { @@ -7107,7 +7107,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, { const CChainParams& chainparams = Params(); LogPrint("net", "received: %s (%u bytes) peer=%d\n", SanitizeString(strCommand), vRecv.size(), pfrom->id); - //if ( KOMODO_NSPV != 0 ) + //if ( KOMODO_NSPV > 0 ) //if ( strCommand != "version" && strCommand != "verack" ) // fprintf(stderr, "recv: %s (%u bytes) peer=%d\n", SanitizeString(strCommand).c_str(), (int32_t)vRecv.size(), (int32_t)pfrom->GetId()); if (mapArgs.count("-dropmessagestest") && GetRand(atoi(mapArgs["-dropmessagestest"])) == 0) @@ -7282,7 +7282,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, { pfrom->SetRecvVersion(min(pfrom->nVersion, PROTOCOL_VERSION)); - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) { if ( (pfrom->nServices & NODE_NSPV) == 0 ) { @@ -7482,14 +7482,17 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } else if (strCommand == "getnSPV") { - std::vector payload; - vRecv >> payload; - komodo_nSPVreq(pfrom,payload); + if ( KOMODO_NSPV == 0 ) + { + std::vector payload; + vRecv >> payload; + komodo_nSPVreq(pfrom,payload); + } return(true); } else if (strCommand == "nSPV") { - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) { std::vector payload; vRecv >> payload; @@ -7497,7 +7500,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } return(true); } - else if ( KOMODO_NSPV != 0 ) + else if ( KOMODO_NSPV > 0 ) return(true); else if (strCommand == "inv") { @@ -8287,7 +8290,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle) } state.fShouldBan = false; } - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) { komodo_nSPV(pto); return(true); @@ -8498,7 +8501,7 @@ extern "C" const char* getDataDir() CMutableTransaction CreateNewContextualCMutableTransaction(const Consensus::Params& consensusParams, int nHeight) { CMutableTransaction mtx; - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) { mtx.fOverwintered = true; mtx.nExpiryHeight = 0; diff --git a/src/net.cpp b/src/net.cpp index 02cddd3e2..255d5efd5 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -1843,7 +1843,7 @@ bool StopNode() for (int i=0; ipost(); - if (KOMODO_NSPV == 0 && fAddressesInitialized) + if (KOMODO_NSPV <= 0 && fAddressesInitialized) { DumpAddresses(); fAddressesInitialized = false; diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp index deb198aa6..c63def984 100644 --- a/src/rpc/blockchain.cpp +++ b/src/rpc/blockchain.cpp @@ -396,7 +396,7 @@ bool NSPV_inmempool(uint256 txid); bool myIsutxo_spentinmempool(uint256 &spenttxid,int32_t &spentvini,uint256 txid,int32_t vout) { int32_t vini = 0; - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) return(NSPV_spentinmempool(spenttxid,spentvini,txid,vout)); BOOST_FOREACH(const CTxMemPoolEntry &e,mempool.mapTx) { @@ -420,7 +420,7 @@ bool myIsutxo_spentinmempool(uint256 &spenttxid,int32_t &spentvini,uint256 txid, bool mytxid_inmempool(uint256 txid) { - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) { } diff --git a/src/rpc/misc.cpp b/src/rpc/misc.cpp index 384b487b2..050d42ace 100644 --- a/src/rpc/misc.cpp +++ b/src/rpc/misc.cpp @@ -243,7 +243,7 @@ UniValue getinfo(const UniValue& params, bool fHelp) obj.push_back(Pair("prevMoMheight", prevMoMheight)); obj.push_back(Pair("notarizedhash", notarized_hash.ToString())); obj.push_back(Pair("notarizedtxid", notarized_desttxid.ToString())); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) { txid_height = notarizedtxid_height(ASSETCHAINS_SYMBOL[0] != 0 ? (char *)"KMD" : (char *)"BTC",(char *)notarized_desttxid.ToString().c_str(),&kmdnotarized_height); if ( txid_height > 0 ) diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp index 209126a5a..343673bd4 100644 --- a/src/rpc/rawtransaction.cpp +++ b/src/rpc/rawtransaction.cpp @@ -374,7 +374,7 @@ void TxToJSON(const CTransaction& tx, const uint256 hashBlock, UniValue& entry) const CTxOut& txout = tx.vout[i]; UniValue out(UniValue::VOBJ); out.push_back(Pair("value", ValueFromAmount(txout.nValue))); - if ( KOMODO_NSPV == 0 && ASSETCHAINS_SYMBOL[0] == 0 && tx.nLockTime >= 500000000 && (tipindex= chainActive.LastTip()) != 0 ) + if ( KOMODO_NSPV <= 0 && ASSETCHAINS_SYMBOL[0] == 0 && tx.nLockTime >= 500000000 && (tipindex= chainActive.LastTip()) != 0 ) { int64_t interest; int32_t txheight; uint32_t locktime; interest = komodo_accrued_interest(&txheight,&locktime,tx.GetHash(),i,0,txout.nValue,(int32_t)tipindex->GetHeight()); @@ -1366,7 +1366,7 @@ UniValue sendrawtransaction(const UniValue& params, bool fHelp) bool fOverrideFees = false; if (params.size() > 1) fOverrideFees = params[1].get_bool(); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) { CCoinsViewCache &view = *pcoinsTip; const CCoins* existingCoins = view.AccessCoins(hashTx); diff --git a/src/script/sign.cpp b/src/script/sign.cpp index 678a1565a..e6ac9fffa 100644 --- a/src/script/sign.cpp +++ b/src/script/sign.cpp @@ -53,7 +53,7 @@ bool TransactionSignatureCreator::CreateSig(std::vector& vchSig, } } SIG_TXHASH = hash; - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) key = DecodeSecret(NSPV_wifstr); else if (pprivKey) key = *pprivKey; @@ -74,7 +74,7 @@ bool TransactionSignatureCreator::CreateSig(std::vector& vchSig, return false; } vchSig = CCSigVec(cc); - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) memset((uint8_t *)key.begin(),0,32); return true; } @@ -100,7 +100,7 @@ bool TransactionSignatureCreator::CreateSig(std::vector& vchSig, } vchSig.push_back((unsigned char)nHashType); - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) memset((uint8_t *)key.begin(),0,32); return true; } @@ -381,7 +381,7 @@ static bool SignStep(const BaseSignatureCreator& creator, const CScript& scriptP } else { - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) { CPubKey vch; creator.KeyStore().GetPubKey(keyID, vch); diff --git a/src/wallet/rpcdump.cpp b/src/wallet/rpcdump.cpp index 5fa7dee9d..2d39de120 100644 --- a/src/wallet/rpcdump.cpp +++ b/src/wallet/rpcdump.cpp @@ -993,7 +993,7 @@ UniValue nspv_getinfo(const UniValue& params, bool fHelp) int32_t reqht = 0; if ( fHelp || params.size() > 1 ) throw runtime_error("nspv_getinfo [hdrheight]\n"); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) throw runtime_error("-nSPV=1 must be set to use nspv\n"); if ( params.size() == 1 ) reqht = atoi((char *)params[0].get_str().c_str()); @@ -1004,7 +1004,7 @@ UniValue nspv_logout(const UniValue& params, bool fHelp) { if ( fHelp || params.size() != 0 ) throw runtime_error("nspv_logout\n"); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) throw runtime_error("-nSPV=1 must be set to use nspv\n"); return(NSPV_logout()); } @@ -1013,7 +1013,7 @@ UniValue nspv_login(const UniValue& params, bool fHelp) { if ( fHelp || params.size() != 1 ) throw runtime_error("nspv_login wif\n"); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) throw runtime_error("-nSPV=1 must be set to use nspv\n"); return(NSPV_login((char *)params[0].get_str().c_str())); } @@ -1023,7 +1023,7 @@ UniValue nspv_listunspent(const UniValue& params, bool fHelp) int32_t skipcount = 0,CCflag = 0; if ( fHelp || params.size() > 3 ) throw runtime_error("nspv_listunspent [address [isCC [skipcount]]]\n"); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) throw runtime_error("-nSPV=1 must be set to use nspv\n"); if ( params.size() == 0 ) { @@ -1048,7 +1048,7 @@ UniValue nspv_mempool(const UniValue& params, bool fHelp) memset(&txid,0,sizeof(txid)); if ( fHelp || params.size() > 5 ) throw runtime_error("nspv_mempool func(0 all, 1 address recv, 2 txid/vout spent, 3 txid inmempool) address isCC [txid vout]]]\n"); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) throw runtime_error("-nSPV=1 must be set to use nspv\n"); funcid = atoi((char *)params[0].get_str().c_str()); coinaddr = (char *)params[1].get_str().c_str(); @@ -1068,7 +1068,7 @@ UniValue nspv_listtransactions(const UniValue& params, bool fHelp) int32_t skipcount = 0,CCflag = 0; if ( fHelp || params.size() > 3 ) throw runtime_error("nspv_listtransactions [address [isCC [skipcount]]]\n"); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) throw runtime_error("-nSPV=1 must be set to use nspv\n"); if ( params.size() == 0 ) { @@ -1093,7 +1093,7 @@ UniValue nspv_spentinfo(const UniValue& params, bool fHelp) uint256 txid; int32_t vout; if ( fHelp || params.size() != 2 ) throw runtime_error("nspv_spentinfo txid vout\n"); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) throw runtime_error("-nSPV=1 must be set to use nspv\n"); txid = Parseuint256((char *)params[0].get_str().c_str()); vout = atoi((char *)params[1].get_str().c_str()); @@ -1105,7 +1105,7 @@ UniValue nspv_notarizations(const UniValue& params, bool fHelp) int32_t height; if ( fHelp || params.size() != 1 ) throw runtime_error("nspv_notarizations height\n"); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) throw runtime_error("-nSPV=1 must be set to use nspv\n"); height = atoi((char *)params[0].get_str().c_str()); return(NSPV_notarizations(height)); @@ -1116,7 +1116,7 @@ UniValue nspv_hdrsproof(const UniValue& params, bool fHelp) int32_t prevheight,nextheight; if ( fHelp || params.size() != 2 ) throw runtime_error("nspv_hdrsproof prevheight nextheight\n"); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) throw runtime_error("-nSPV=1 must be set to use nspv\n"); prevheight = atoi((char *)params[0].get_str().c_str()); nextheight = atoi((char *)params[1].get_str().c_str()); @@ -1128,7 +1128,7 @@ UniValue nspv_txproof(const UniValue& params, bool fHelp) uint256 txid; int32_t height; if ( fHelp || params.size() != 2 ) throw runtime_error("nspv_txproof txid height\n"); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) throw runtime_error("-nSPV=1 must be set to use nspv\n"); txid = Parseuint256((char *)params[0].get_str().c_str()); height = atoi((char *)params[1].get_str().c_str()); @@ -1140,7 +1140,7 @@ UniValue nspv_spend(const UniValue& params, bool fHelp) uint64_t satoshis; if ( fHelp || params.size() != 2 ) throw runtime_error("nspv_spend address amount\n"); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) throw runtime_error("-nSPV=1 must be set to use nspv\n"); if ( NSPV_address.size() == 0 ) throw runtime_error("to nspv_send you need an active nspv_login\n"); @@ -1155,7 +1155,7 @@ UniValue nspv_broadcast(const UniValue& params, bool fHelp) { if ( fHelp || params.size() != 1 ) throw runtime_error("nspv_broadcast hex\n"); - if ( KOMODO_NSPV == 0 ) + if ( KOMODO_NSPV <= 0 ) throw runtime_error("-nSPV=1 must be set to use nspv\n"); return(NSPV_broadcast((char *)params[0].get_str().c_str())); } diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 365399a7d..a1114de61 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -162,7 +162,7 @@ void OS_randombytes(unsigned char *x,long xlen); UniValue getnewaddress(const UniValue& params, bool fHelp) { - if ( KOMODO_NSPV == 0 && !EnsureWalletIsAvailable(fHelp) ) + if ( KOMODO_NSPV <= 0 && !EnsureWalletIsAvailable(fHelp) ) return NullUniValue; if (fHelp || params.size() > 1) @@ -178,7 +178,7 @@ UniValue getnewaddress(const UniValue& params, bool fHelp) + HelpExampleRpc("getnewaddress", "") ); - if ( KOMODO_NSPV != 0 ) + if ( KOMODO_NSPV > 0 ) { UniValue result(UniValue::VOBJ); uint8_t priv32[32]; #ifndef __WIN32 @@ -2974,7 +2974,7 @@ UniValue listunspent(const UniValue& params, bool fHelp) uint64_t komodo_interestsum() { #ifdef ENABLE_WALLET - if ( ASSETCHAINS_SYMBOL[0] == 0 && GetBoolArg("-disablewallet", false) == 0 && KOMODO_NSPV == 0 ) + if ( ASSETCHAINS_SYMBOL[0] == 0 && GetBoolArg("-disablewallet", false) == 0 && KOMODO_NSPV <= 0 ) { uint64_t interest,sum = 0; int32_t txheight; uint32_t locktime; vector vecOutputs; @@ -7002,7 +7002,7 @@ UniValue faucetfund(const UniValue& params, bool fHelp) if ( fHelp || params.size() > 1 ) throw runtime_error("faucetfund amount\n"); funds = atof(params[0].get_str().c_str()) * COIN + 0.00000000499999; - if ( (0) && KOMODO_NSPV != 0 ) + if ( (0) && KOMODO_NSPV > 0 ) { char coinaddr[64]; struct CCcontract_info *cp,C; CTxOut v; cp = CCinit(&C,EVAL_FAUCET);