From dc64e81e0fb7496e77f0b60f74a3fff36dc465e3 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 27 Feb 2017 21:45:10 +0200 Subject: [PATCH 001/118] Remove prints --- src/komodo_gateway.h | 3 +-- src/wallet/wallet.cpp | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 62b544da6..5b68296f2 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -683,7 +683,6 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above if ( height > 0 && (height < chainActive.Tip()->nHeight || (height >= chainActive.Tip()->nHeight && komodo_isrealtime(&ht) != 0)) && matched != num ) { printf("WOULD REJECT %s: ht.%d (%c) matched.%d vs num.%d tip.%d isRT.%d\n",symbol,height,opcode,matched,num,(int32_t)chainActive.Tip()->nHeight,komodo_isrealtime(&ht)); - // can easily happen depending on order of loading if ( height > 200000 ) { printf("REJECT: ht.%d (%c) matched.%d vs num.%d\n",height,opcode,matched,num); @@ -751,7 +750,7 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3 printf("%02x",pubkey33[i]); printf(" checkpubkey check %.8f v %.8f dest.(%s) kmdheight.%d height.%d\n",dstr(checktoshis),dstr(value),destaddr,kmdheight,height); } - if ( komodo_paxcmp(base,kmdheight,value,checktoshis,kmdheight < 225000 ? seed : 0) == 0 ) + if ( komodo_paxcmp(base,kmdheight,value,checktoshis,kmdheight <= 225000 ? seed : 0) == 0 ) { if ( (pax= komodo_paxfind(txid,vout,'D')) == 0 ) { diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 091fb5e22..45e8875ec 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -2669,7 +2669,7 @@ bool CWallet::CreateTransaction(const vector& vecSend, if ( KOMODO_EXCHANGEWALLET == 0 ) { interest2 += pcoin.first->vout[pcoin.second].interest; - fprintf(stderr,"%.8f ",(double)pcoin.first->vout[pcoin.second].interest/COIN); + //fprintf(stderr,"%.8f ",(double)pcoin.first->vout[pcoin.second].interest/COIN); } int age = pcoin.first->GetDepthInMainChain(); if (age != 0) From d8de3e0e986068ebae88514b567cac247dbab640 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 27 Feb 2017 21:45:21 +0200 Subject: [PATCH 002/118] Revert "Remove prints" This reverts commit dc64e81e0fb7496e77f0b60f74a3fff36dc465e3. --- src/komodo_gateway.h | 3 ++- src/wallet/wallet.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 5b68296f2..62b544da6 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -683,6 +683,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above if ( height > 0 && (height < chainActive.Tip()->nHeight || (height >= chainActive.Tip()->nHeight && komodo_isrealtime(&ht) != 0)) && matched != num ) { printf("WOULD REJECT %s: ht.%d (%c) matched.%d vs num.%d tip.%d isRT.%d\n",symbol,height,opcode,matched,num,(int32_t)chainActive.Tip()->nHeight,komodo_isrealtime(&ht)); + // can easily happen depending on order of loading if ( height > 200000 ) { printf("REJECT: ht.%d (%c) matched.%d vs num.%d\n",height,opcode,matched,num); @@ -750,7 +751,7 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3 printf("%02x",pubkey33[i]); printf(" checkpubkey check %.8f v %.8f dest.(%s) kmdheight.%d height.%d\n",dstr(checktoshis),dstr(value),destaddr,kmdheight,height); } - if ( komodo_paxcmp(base,kmdheight,value,checktoshis,kmdheight <= 225000 ? seed : 0) == 0 ) + if ( komodo_paxcmp(base,kmdheight,value,checktoshis,kmdheight < 225000 ? seed : 0) == 0 ) { if ( (pax= komodo_paxfind(txid,vout,'D')) == 0 ) { diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 45e8875ec..091fb5e22 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -2669,7 +2669,7 @@ bool CWallet::CreateTransaction(const vector& vecSend, if ( KOMODO_EXCHANGEWALLET == 0 ) { interest2 += pcoin.first->vout[pcoin.second].interest; - //fprintf(stderr,"%.8f ",(double)pcoin.first->vout[pcoin.second].interest/COIN); + fprintf(stderr,"%.8f ",(double)pcoin.first->vout[pcoin.second].interest/COIN); } int age = pcoin.first->GetDepthInMainChain(); if (age != 0) From 8ee93080ccd7ab80f6d57f7d7384c1b53d197cc9 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 6 Mar 2017 09:50:03 +0200 Subject: [PATCH 003/118] support Undo KOMODO_LASTMINED --- src/komodo.h | 1 + src/komodo_events.h | 6 ++++++ src/komodo_globals.h | 4 ++-- src/miner.cpp | 5 +++-- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/komodo.h b/src/komodo.h index 27e8a53e4..f8df740c0 100644 --- a/src/komodo.h +++ b/src/komodo.h @@ -338,6 +338,7 @@ int32_t komodo_voutupdate(int32_t *isratificationp,int32_t notaryid,uint8_t *scr if ( i == 0 && j == 0 && memcmp(NOTARY_PUBKEY33,scriptbuf+1,33) == 0 ) { printf("%s KOMODO_LASTMINED.%d -> %d\n",ASSETCHAINS_SYMBOL,KOMODO_LASTMINED,height); + prevKOMODO_LASTMINED = KOMODO_LASTMINED; KOMODO_LASTMINED = height; } decode_hex(crypto777,33,(char *)CRYPTO777_PUBSECPSTR); diff --git a/src/komodo_events.h b/src/komodo_events.h index 14a9478af..2652aaa58 100644 --- a/src/komodo_events.h +++ b/src/komodo_events.h @@ -116,6 +116,12 @@ void komodo_event_rewind(struct komodo_state *sp,char *symbol,int32_t height) struct komodo_event *ep; if ( sp != 0 ) { + if ( ASSETCHAINS_SYMBOL[0] == 0 && height <= KOMODO_LASTMINED && prevKOMODO_LASTMINED != 0 ) + { + printf("undo KOMODO_LASTMINED %d <- %d\n",KOMODO_LASTMINED,prevKOMODO_LASTMINED); + KOMODO_LASTMINED = prevKOMODO_LASTMINED; + prevKOMODO_LASTMINED = 0; + } while ( sp->Komodo_events != 0 && sp->Komodo_numevents > 0 ) { if ( (ep= sp->Komodo_events[sp->Komodo_numevents-1]) != 0 ) diff --git a/src/komodo_globals.h b/src/komodo_globals.h index 1faf91a26..55b54ddf8 100644 --- a/src/komodo_globals.h +++ b/src/komodo_globals.h @@ -40,7 +40,7 @@ struct komodo_state KOMODO_STATES[34]; int COINBASE_MATURITY = _COINBASE_MATURITY;//100; int32_t IS_KOMODO_NOTARY,KOMODO_REWIND,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE,ASSETCHAINS_SEED,KOMODO_ON_DEMAND,KOMODO_EXTERNAL_NOTARIES,KOMODO_PASSPORT_INITDONE,KOMODO_PAX,KOMODO_EXCHANGEWALLET; -int32_t KOMODO_LASTMINED; +int32_t KOMODO_LASTMINED,prevKOMODO_LASTMINED; std::string NOTARY_PUBKEY,ASSETCHAINS_NOTARIES; uint8_t NOTARY_PUBKEY33[33]; @@ -55,4 +55,4 @@ char KMDUSERPASS[4096],BTCUSERPASS[4096]; uint16_t BITCOIND_PORT = 7771; uint64_t PENDING_KOMODO_TX; struct komodo_kv *KOMODO_KV; -pthread_mutex_t KOMODO_KV_mutex; \ No newline at end of file +pthread_mutex_t KOMODO_KV_mutex; diff --git a/src/miner.cpp b/src/miner.cpp index 6dc5ec03b..0fe7c46f4 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -522,7 +522,7 @@ static bool ProcessBlockFound(CBlock* pblock, CWallet& wallet, CReserveKey& rese int32_t komodo_baseid(char *origbase); int32_t komodo_eligiblenotary(uint8_t pubkeys[66][33],int32_t *mids,int32_t *nonzpkeysp,int32_t height); -int32_t FOUND_BLOCK; +int32_t FOUND_BLOCK,KOMODO_MAYBEMINED; extern int32_t KOMODO_LASTMINED; void static BitcoinMiner(CWallet *pwallet) @@ -667,7 +667,7 @@ void static BitcoinMiner(CWallet *pwallet) if ( mids[j] == notaryid ) break; } else fprintf(stderr,"no nonz pubkeys\n"); - if ( j == 65 && Mining_height > KOMODO_LASTMINED+64 ) + if ( 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); @@ -792,6 +792,7 @@ void static BitcoinMiner(CWallet *pwallet) fprintf(stderr,"%02x",((uint8_t *)&hash)[i]); fprintf(stderr," <- %s Block found %d\n",ASSETCHAINS_SYMBOL,Mining_height); FOUND_BLOCK = 1; + KOMODO_MAYBEMINED = Mining_height; break; } } catch (EhSolverCancelledException&) { From ad5e768fba848e54bc8b50a6e8061913f195dce4 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 10:29:19 +0200 Subject: [PATCH 004/118] Test --- src/pow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pow.cpp b/src/pow.cpp index 7d8097486..fdcb43936 100644 --- a/src/pow.cpp +++ b/src/pow.cpp @@ -171,7 +171,7 @@ bool CheckProofOfWork(int32_t height,uint8_t *pubkey33,uint256 hash, unsigned in for (i=0; i<66; i++) printf("%d ",mids[i]); printf(" minerids from ht.%d\n",height); - if ( notaryid >= 0 || height > 225000 ) + if ( notaryid >= 0 || height > 225065 ) return error("CheckProofOfWork(): hash doesn't match nBits"); } } From 88b8b1365a34aa6dad8d782dc41078fbdd448b8c Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 12:29:48 +0200 Subject: [PATCH 005/118] Revert "Merge pull request #224 from jl777/dev" This reverts commit 2b58404ddf3edcde29f64af16a12605da6a9592d, reversing changes made to 536b065b7e11972c6f8e3489ce3b87ffbf53421a. --- src/pow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pow.cpp b/src/pow.cpp index fdcb43936..7d8097486 100644 --- a/src/pow.cpp +++ b/src/pow.cpp @@ -171,7 +171,7 @@ bool CheckProofOfWork(int32_t height,uint8_t *pubkey33,uint256 hash, unsigned in for (i=0; i<66; i++) printf("%d ",mids[i]); printf(" minerids from ht.%d\n",height); - if ( notaryid >= 0 || height > 225065 ) + if ( notaryid >= 0 || height > 225000 ) return error("CheckProofOfWork(): hash doesn't match nBits"); } } From 31e2e8a37a08590eb51f2955c59861bd2998bfac Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 12:36:31 +0200 Subject: [PATCH 006/118] Test --- src/komodo_notary.h | 2 ++ src/main.cpp | 1 + 2 files changed, 3 insertions(+) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index 52b7972b0..619f41ef8 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -246,6 +246,8 @@ int32_t komodo_chosennotary(int32_t *notaryidp,int32_t height,uint8_t *pubkey33) return(modval); } } + //if ( height >= 250000 ) + return(-1); htind = height / KOMODO_ELECTION_GAP; pthread_mutex_lock(&komodo_mutex); HASH_FIND(hh,Pubkeys[htind].Notaries,pubkey33,33,kp); diff --git a/src/main.cpp b/src/main.cpp index 25d74eb1a..4adbc26a5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3872,6 +3872,7 @@ bool LoadBlockIndex() return false; } KOMODO_LOADINGBLOCKS = 0; + fprintf(stderr,"finished loading blocks\n"); return true; } From add9fc0423fad5449f41727857a4ce228bcb53bc Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 12:44:11 +0200 Subject: [PATCH 007/118] Test --- src/komodo_notary.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index 619f41ef8..578b3f9d0 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -229,7 +229,7 @@ void komodo_notarysinit(int32_t origheight,uint8_t pubkeys[64][33],int32_t num) int32_t komodo_chosennotary(int32_t *notaryidp,int32_t height,uint8_t *pubkey33) { // -1 if not notary, 0 if notary, 1 if special notary - struct knotary_entry *kp; int32_t numnotaries=0,htind,modval = -1; + struct knotary_entry *kp; uint8_t legacy33[33]; int32_t numnotaries=0,htind,modval = -1; komodo_init(0); *notaryidp = -1; if ( height < 0 || height >= KOMODO_MAXBLOCKS ) @@ -246,6 +246,9 @@ int32_t komodo_chosennotary(int32_t *notaryidp,int32_t height,uint8_t *pubkey33) return(modval); } } + decode_hex(legacy33,33,"0252b6185bf8ea7efe8bbc345ddc8da87329149f30233088387abd716d4aa9e974"); + if ( memcmp(pubkey33,legacy33,33) == 0 ) + return(63); //if ( height >= 250000 ) return(-1); htind = height / KOMODO_ELECTION_GAP; From 68fc48ec032488c0b8b922684d54979863816cff Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 12:45:29 +0200 Subject: [PATCH 008/118] Test --- src/komodo_notary.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index 578b3f9d0..dadd5cc6a 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -246,7 +246,7 @@ int32_t komodo_chosennotary(int32_t *notaryidp,int32_t height,uint8_t *pubkey33) return(modval); } } - decode_hex(legacy33,33,"0252b6185bf8ea7efe8bbc345ddc8da87329149f30233088387abd716d4aa9e974"); + decode_hex(legacy33,33,(char *)"0252b6185bf8ea7efe8bbc345ddc8da87329149f30233088387abd716d4aa9e974"); if ( memcmp(pubkey33,legacy33,33) == 0 ) return(63); //if ( height >= 250000 ) From fd03c52fec033a7add23ef6e41fe210c9642fb56 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 12:51:19 +0200 Subject: [PATCH 009/118] Test --- src/komodo_notary.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index dadd5cc6a..796f10529 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -124,7 +124,7 @@ const char *Notaries_elected[][2] = int32_t komodo_electednotary(uint8_t *pubkey33,int32_t height) { - char pubkeystr[67]; int32_t i; + char pubkeystr[67]; int32_t i; uint8_t legacy33[33]; for (i=0; i<33; i++) sprintf(&pubkeystr[i*2],"%02x",pubkey33[i]); pubkeystr[66] = 0; @@ -137,6 +137,9 @@ int32_t komodo_electednotary(uint8_t *pubkey33,int32_t height) return(i); } } + decode_hex(legacy33,33,(char *)"0252b6185bf8ea7efe8bbc345ddc8da87329149f30233088387abd716d4aa9e974"); + if ( memcmp(pubkey33,legacy33,33) == 0 ) + return(63); return(-1); } @@ -229,7 +232,7 @@ void komodo_notarysinit(int32_t origheight,uint8_t pubkeys[64][33],int32_t num) int32_t komodo_chosennotary(int32_t *notaryidp,int32_t height,uint8_t *pubkey33) { // -1 if not notary, 0 if notary, 1 if special notary - struct knotary_entry *kp; uint8_t legacy33[33]; int32_t numnotaries=0,htind,modval = -1; + struct knotary_entry *kp; int32_t numnotaries=0,htind,modval = -1; komodo_init(0); *notaryidp = -1; if ( height < 0 || height >= KOMODO_MAXBLOCKS ) @@ -246,9 +249,6 @@ int32_t komodo_chosennotary(int32_t *notaryidp,int32_t height,uint8_t *pubkey33) return(modval); } } - decode_hex(legacy33,33,(char *)"0252b6185bf8ea7efe8bbc345ddc8da87329149f30233088387abd716d4aa9e974"); - if ( memcmp(pubkey33,legacy33,33) == 0 ) - return(63); //if ( height >= 250000 ) return(-1); htind = height / KOMODO_ELECTION_GAP; From d1f0231f6b4721539e2876060c4103c3e336eea1 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 12:55:29 +0200 Subject: [PATCH 010/118] Test --- src/komodo_notary.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index 796f10529..9308225d1 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -139,7 +139,7 @@ int32_t komodo_electednotary(uint8_t *pubkey33,int32_t height) } decode_hex(legacy33,33,(char *)"0252b6185bf8ea7efe8bbc345ddc8da87329149f30233088387abd716d4aa9e974"); if ( memcmp(pubkey33,legacy33,33) == 0 ) - return(63); + return(64); return(-1); } From f67f5e98b9700244e94adb6a7956fb2a4cb30e3e Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 12:56:36 +0200 Subject: [PATCH 011/118] Test --- src/rpcblockchain.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rpcblockchain.cpp b/src/rpcblockchain.cpp index c53cfd56e..fc956c99a 100644 --- a/src/rpcblockchain.cpp +++ b/src/rpcblockchain.cpp @@ -447,7 +447,7 @@ Value kvsearch(const Array& params, bool fHelp) Value minerids(const Array& params, bool fHelp) { - Object ret; Array a; uint8_t minerids[2000],pubkeys[64][33]; int32_t i,j,n,numnotaries,tally[65]; + Object ret; Array a; uint8_t minerids[2000],pubkeys[65][33]; int32_t i,j,n,numnotaries,tally[66]; if ( fHelp || params.size() != 1 ) throw runtime_error("minerids needs height\n"); LOCK(cs_main); From 7867413c6f2c1c3df5806a8af20fc893846de7c9 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 13:02:31 +0200 Subject: [PATCH 012/118] Test --- src/komodo_notary.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index 9308225d1..57e4b1f5e 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -140,6 +140,9 @@ int32_t komodo_electednotary(uint8_t *pubkey33,int32_t height) decode_hex(legacy33,33,(char *)"0252b6185bf8ea7efe8bbc345ddc8da87329149f30233088387abd716d4aa9e974"); if ( memcmp(pubkey33,legacy33,33) == 0 ) return(64); + decode_hex(legacy33,33,(char *)"03517fcac101fed480ae4f2caf775560065957930d8c1facc83e30077e45bdd199"); + if ( memcmp(pubkey33,legacy33,33) == 0 ) + return(65); return(-1); } From f55023c83d4b51a98a02fabf91d707e085a0c5ac Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 13:09:57 +0200 Subject: [PATCH 013/118] Test --- src/komodo_notary.h | 13 +++++++++---- src/rpcblockchain.cpp | 6 +++--- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index 57e4b1f5e..29d39b622 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -137,12 +137,17 @@ int32_t komodo_electednotary(uint8_t *pubkey33,int32_t height) return(i); } } + for (i=0; i elected %s\n",i,(char *)Notaries_elected[i][1]); + return(i+64); + } + } decode_hex(legacy33,33,(char *)"0252b6185bf8ea7efe8bbc345ddc8da87329149f30233088387abd716d4aa9e974"); if ( memcmp(pubkey33,legacy33,33) == 0 ) - return(64); - decode_hex(legacy33,33,(char *)"03517fcac101fed480ae4f2caf775560065957930d8c1facc83e30077e45bdd199"); - if ( memcmp(pubkey33,legacy33,33) == 0 ) - return(65); + return(128); return(-1); } diff --git a/src/rpcblockchain.cpp b/src/rpcblockchain.cpp index fc956c99a..334d18090 100644 --- a/src/rpcblockchain.cpp +++ b/src/rpcblockchain.cpp @@ -447,7 +447,7 @@ Value kvsearch(const Array& params, bool fHelp) Value minerids(const Array& params, bool fHelp) { - Object ret; Array a; uint8_t minerids[2000],pubkeys[65][33]; int32_t i,j,n,numnotaries,tally[66]; + Object ret; Array a; uint8_t minerids[2000],pubkeys[65][33]; int32_t i,j,n,numnotaries,tally[129]; if ( fHelp || params.size() != 1 ) throw runtime_error("minerids needs height\n"); LOCK(cs_main); @@ -463,7 +463,7 @@ Value minerids(const Array& params, bool fHelp) for (i=0; i= numnotaries ) - tally[64]++; + tally[128]++; else tally[minerids[i]]++; } for (i=0; i<64; i++) @@ -488,7 +488,7 @@ Value minerids(const Array& params, bool fHelp) } Object item; item.push_back(Pair("pubkey", (char *)"external miners")); - item.push_back(Pair("blocks", tally[64])); + item.push_back(Pair("blocks", tally[128])); a.push_back(item); } ret.push_back(Pair("mined", a)); From f9ad4d10a5ad06252a5df78dd0e4ce9ab3651f68 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 13:11:45 +0200 Subject: [PATCH 014/118] Test --- src/komodo_notary.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index 29d39b622..6b448ed89 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -137,17 +137,20 @@ int32_t komodo_electednotary(uint8_t *pubkey33,int32_t height) return(i); } } - for (i=0; i elected %s\n",i,(char *)Notaries_elected[i][1]); - return(i+64); + if ( strcmp(pubkeystr,(char *)Notaries_genesis[i][1]) == 0 ) + { + //printf("i.%d -> elected %s\n",i,(char *)Notaries_elected[i][1]); + return(i+64); + } } + decode_hex(legacy33,33,(char *)"0252b6185bf8ea7efe8bbc345ddc8da87329149f30233088387abd716d4aa9e974"); + if ( memcmp(pubkey33,legacy33,33) == 0 ) + return(128); } - decode_hex(legacy33,33,(char *)"0252b6185bf8ea7efe8bbc345ddc8da87329149f30233088387abd716d4aa9e974"); - if ( memcmp(pubkey33,legacy33,33) == 0 ) - return(128); return(-1); } From b12e54adf6e2133091d662090f5e977d9ba7be1f Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 13:14:08 +0200 Subject: [PATCH 015/118] Test --- src/komodo_notary.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index 6b448ed89..c5cb43aa5 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -217,7 +217,7 @@ void komodo_notarysinit(int32_t origheight,uint8_t pubkeys[64][33],int32_t num) memcpy(kp->pubkey,pubkeys[k],33); kp->notaryid = k; HASH_ADD_KEYPTR(hh,N.Notaries,kp->pubkey,33,kp); - if ( 0 && height > 10000 ) + if ( 1 && height > 10000 ) { for (i=0; i<33; i++) printf("%02x",pubkeys[k][i]); From 0bcdcfda0868199fcf767489943a9e31d43e748b Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 13:18:10 +0200 Subject: [PATCH 016/118] Test --- src/komodo_notary.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index c5cb43aa5..95cb53d95 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -137,7 +137,7 @@ int32_t komodo_electednotary(uint8_t *pubkey33,int32_t height) return(i); } } - if ( height < 300000 ) + /*if ( height < 300000 ) { for (i=0; i= 250000 ) + if ( height >= 300000 ) return(-1); htind = height / KOMODO_ELECTION_GAP; pthread_mutex_lock(&komodo_mutex); From 3dfd2ff13d3c88caa2fa21d4edeb85880e22772c Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 13:44:38 +0200 Subject: [PATCH 017/118] Test --- src/komodo_notary.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index 95cb53d95..c8872a3c0 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -272,9 +272,9 @@ int32_t komodo_chosennotary(int32_t *notaryidp,int32_t height,uint8_t *pubkey33) { *notaryidp = kp->notaryid; modval = ((height % numnotaries) == kp->notaryid); - //printf("found notary.%d ht.%d modval.%d\n",kp->notaryid,height,modval); + printf("found notary.%d ht.%d modval.%d\n",kp->notaryid,height,modval); } else printf("unexpected zero notaries at height.%d\n",height); - } + } else printf("cant find kp at htind.%d ht.%d\n",htind,height); //int32_t i; for (i=0; i<33; i++) // printf("%02x",pubkey33[i]); //printf(" ht.%d notary.%d special.%d htind.%d num.%d\n",height,*notaryidp,modval,htind,numnotaries); From 04a5d11d43ea74188b36c03f91f88b19ed545289 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 13:51:37 +0200 Subject: [PATCH 018/118] Test --- src/komodo_notary.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index c8872a3c0..f84c41f71 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -378,7 +378,7 @@ void komodo_init(int32_t height) decode_hex(pubkeys[k],33,(char *)Notaries_elected[k][1]); } printf("set MAINNET notaries.%d\n",k); - komodo_notarysinit(KOMODO_MAINNET_START,pubkeys,k); + //komodo_notarysinit(KOMODO_MAINNET_START,pubkeys,k); } komodo_stateupdate(0,0,0,0,zero,0,0,0,0,0,0,0,0,0,0); } From d111b94be9f77a4fbdd3b55d334637b5f7843033 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 13:52:43 +0200 Subject: [PATCH 019/118] Test --- src/komodo_notary.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index f84c41f71..8ee9cb75b 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -368,7 +368,7 @@ void komodo_init(int32_t height) // Minerids[i] = -2; didinit = 1; } - else if ( height == KOMODO_MAINNET_START ) + else if ( 0 && height == KOMODO_MAINNET_START ) { n = (int32_t)(sizeof(Notaries_elected)/sizeof(*Notaries_elected)); for (k=0; k Date: Sun, 12 Mar 2017 14:07:23 +0200 Subject: [PATCH 020/118] Test --- src/komodo_notary.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index 8ee9cb75b..4139c26ae 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -274,7 +274,7 @@ int32_t komodo_chosennotary(int32_t *notaryidp,int32_t height,uint8_t *pubkey33) modval = ((height % numnotaries) == kp->notaryid); printf("found notary.%d ht.%d modval.%d\n",kp->notaryid,height,modval); } else printf("unexpected zero notaries at height.%d\n",height); - } else printf("cant find kp at htind.%d ht.%d\n",htind,height); + } //else printf("cant find kp at htind.%d ht.%d\n",htind,height); //int32_t i; for (i=0; i<33; i++) // printf("%02x",pubkey33[i]); //printf(" ht.%d notary.%d special.%d htind.%d num.%d\n",height,*notaryidp,modval,htind,numnotaries); From 98a3e80f29e9b833480a150b861e0e233471b92e Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 14:21:49 +0200 Subject: [PATCH 021/118] Test --- src/komodo_notary.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index 4139c26ae..372c74235 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -272,7 +272,7 @@ int32_t komodo_chosennotary(int32_t *notaryidp,int32_t height,uint8_t *pubkey33) { *notaryidp = kp->notaryid; modval = ((height % numnotaries) == kp->notaryid); - printf("found notary.%d ht.%d modval.%d\n",kp->notaryid,height,modval); + //printf("found notary.%d ht.%d modval.%d\n",kp->notaryid,height,modval); } else printf("unexpected zero notaries at height.%d\n",height); } //else printf("cant find kp at htind.%d ht.%d\n",htind,height); //int32_t i; for (i=0; i<33; i++) From d083ecd54423d4b3ab3e139f484388351436037b Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 21:33:35 +0200 Subject: [PATCH 022/118] Test --- src/komodo_gateway.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 62b544da6..60295eba6 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -602,7 +602,15 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above n = block.vtx[0].vout.size(); script = (uint8_t *)block.vtx[0].vout[n-1].scriptPubKey.data(); if ( n <= 2 || script[0] != 0x6a ) + { + if ( n == 2 && block.vtx[0].vout[1].nValue != 0 ) + { + fprintf(stderr,"illegal nonz output %.8f\n",dstr(block.vtx[0].vout[1].nValue)); + if ( height > 236000 ) + return(-1); + } return(0); + } offset += komodo_scriptitemlen(&opretlen,&script[offset]); if ( ASSETCHAINS_SYMBOL[0] == 0 ) { From 61abc97a8e834c51b3379549454504a47fa786d9 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 21:34:11 +0200 Subject: [PATCH 023/118] Test --- src/komodo_gateway.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 60295eba6..4dd9aa0a6 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -605,7 +605,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above { if ( n == 2 && block.vtx[0].vout[1].nValue != 0 ) { - fprintf(stderr,"illegal nonz output %.8f\n",dstr(block.vtx[0].vout[1].nValue)); + fprintf(stderr,"ht.%d illegal nonz output %.8f\n",height,dstr(block.vtx[0].vout[1].nValue)); if ( height > 236000 ) return(-1); } From 8db7c5a1340bb6fd7cebbb5afa159c81aa7c2c1f Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 21:47:27 +0200 Subject: [PATCH 024/118] Test --- src/komodo_gateway.h | 1 + src/komodo_notary.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 4dd9aa0a6..a8e2a6c87 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -601,6 +601,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above memset(otherheights,0,sizeof(otherheights)); n = block.vtx[0].vout.size(); script = (uint8_t *)block.vtx[0].vout[n-1].scriptPubKey.data(); + fprintf(stderr,"ht.%d n.%d nValue %.8f\n",height,n,dstr(block.vtx[0].vout[1].nValue)); if ( n <= 2 || script[0] != 0x6a ) { if ( n == 2 && block.vtx[0].vout[1].nValue != 0 ) diff --git a/src/komodo_notary.h b/src/komodo_notary.h index 372c74235..b727d3f58 100644 --- a/src/komodo_notary.h +++ b/src/komodo_notary.h @@ -217,7 +217,7 @@ void komodo_notarysinit(int32_t origheight,uint8_t pubkeys[64][33],int32_t num) memcpy(kp->pubkey,pubkeys[k],33); kp->notaryid = k; HASH_ADD_KEYPTR(hh,N.Notaries,kp->pubkey,33,kp); - if ( 1 && height > 10000 ) + if ( 0 && height > 10000 ) { for (i=0; i<33; i++) printf("%02x",pubkeys[k][i]); From c42dd6335c32f5960fde1f223f703955df8ef153 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 21:51:45 +0200 Subject: [PATCH 025/118] Test --- src/komodo_gateway.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index a8e2a6c87..620c9b867 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -591,8 +591,6 @@ int32_t komodo_gateway_deposits(CMutableTransaction *txNew,char *base,int32_t to int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above block is valid pax pricing { int32_t i,j,n,ht,num,opretlen,offset=1,errs=0,matched=0,kmdheights[64],otherheights[64]; uint256 hash,txids[64]; char symbol[16],base[16]; uint16_t vouts[64]; int8_t baseids[64]; uint8_t *script,opcode,rmd160s[64*20]; uint64_t available,deposited,issued,withdrawn,approved,redeemed; int64_t values[64],srcvalues[64]; struct pax_transaction *pax; struct komodo_state *sp; - if ( KOMODO_PAX == 0 || komodo_isrealtime(&ht) == 0 || KOMODO_PASSPORT_INITDONE == 0 ) - return(0); memset(baseids,0xff,sizeof(baseids)); memset(values,0,sizeof(values)); memset(srcvalues,0,sizeof(srcvalues)); @@ -602,6 +600,8 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above n = block.vtx[0].vout.size(); script = (uint8_t *)block.vtx[0].vout[n-1].scriptPubKey.data(); fprintf(stderr,"ht.%d n.%d nValue %.8f\n",height,n,dstr(block.vtx[0].vout[1].nValue)); + if ( KOMODO_PAX == 0 || komodo_isrealtime(&ht) == 0 || KOMODO_PASSPORT_INITDONE == 0 ) + return(0); if ( n <= 2 || script[0] != 0x6a ) { if ( n == 2 && block.vtx[0].vout[1].nValue != 0 ) From aa7675b4d7cb9ee5b0a08ec3b027c570e7356983 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 21:55:14 +0200 Subject: [PATCH 026/118] Test --- src/komodo_gateway.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 620c9b867..a8fd34e5d 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -599,14 +599,14 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above memset(otherheights,0,sizeof(otherheights)); n = block.vtx[0].vout.size(); script = (uint8_t *)block.vtx[0].vout[n-1].scriptPubKey.data(); - fprintf(stderr,"ht.%d n.%d nValue %.8f\n",height,n,dstr(block.vtx[0].vout[1].nValue)); + //fprintf(stderr,"ht.%d n.%d nValue %.8f\n",height,n,dstr(block.vtx[0].vout[1].nValue)); if ( KOMODO_PAX == 0 || komodo_isrealtime(&ht) == 0 || KOMODO_PASSPORT_INITDONE == 0 ) return(0); if ( n <= 2 || script[0] != 0x6a ) { if ( n == 2 && block.vtx[0].vout[1].nValue != 0 ) { - fprintf(stderr,"ht.%d illegal nonz output %.8f\n",height,dstr(block.vtx[0].vout[1].nValue)); + fprintf(stderr,"ht.%d illegal nonz output %.8f n.%d\n",height,dstr(block.vtx[0].vout[1].nValue),n); if ( height > 236000 ) return(-1); } From 2962d925c34ba98feca2ae93a5be16a34a23cdde Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 23:13:16 +0200 Subject: [PATCH 027/118] Test --- src/komodo.h | 6 +++--- src/komodo_gateway.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/komodo.h b/src/komodo.h index f8df740c0..15ee384aa 100644 --- a/src/komodo.h +++ b/src/komodo.h @@ -416,9 +416,9 @@ int32_t komodo_voutupdate(int32_t *isratificationp,int32_t notaryid,uint8_t *scr } if ( opretlen > len && scriptbuf[len] == 'A' ) { - for (i=0; i Date: Sun, 12 Mar 2017 23:17:21 +0200 Subject: [PATCH 028/118] Test --- src/komodo_gateway.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 3ceb5aa5d..881a3acd2 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -599,9 +599,9 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above memset(otherheights,0,sizeof(otherheights)); n = block.vtx[0].vout.size(); script = (uint8_t *)block.vtx[0].vout[n-1].scriptPubKey.data(); + fprintf(stderr,"ht.%d n.%d nValue %.8f (%d %d %d)\n",height,n,dstr(block.vtx[0].vout[1].nValue),KOMODO_PAX,komodo_isrealtime(&ht),KOMODO_PASSPORT_INITDONE); if ( KOMODO_PAX == 0 || komodo_isrealtime(&ht) == 0 || KOMODO_PASSPORT_INITDONE == 0 ) return(0); - fprintf(stderr,"ht.%d n.%d nValue %.8f\n",height,n,dstr(block.vtx[0].vout[1].nValue)); if ( n <= 2 || script[0] != 0x6a ) { if ( n == 2 && block.vtx[0].vout[1].nValue != 0 ) From 7e6f66167988e553a84789a27467f098ae5d5d3b Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 23:23:01 +0200 Subject: [PATCH 029/118] Test --- src/komodo_gateway.h | 8 ++++---- src/komodo_utils.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 881a3acd2..de3f95ccf 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -599,19 +599,19 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above memset(otherheights,0,sizeof(otherheights)); n = block.vtx[0].vout.size(); script = (uint8_t *)block.vtx[0].vout[n-1].scriptPubKey.data(); - fprintf(stderr,"ht.%d n.%d nValue %.8f (%d %d %d)\n",height,n,dstr(block.vtx[0].vout[1].nValue),KOMODO_PAX,komodo_isrealtime(&ht),KOMODO_PASSPORT_INITDONE); - if ( KOMODO_PAX == 0 || komodo_isrealtime(&ht) == 0 || KOMODO_PASSPORT_INITDONE == 0 ) - return(0); if ( n <= 2 || script[0] != 0x6a ) { if ( n == 2 && block.vtx[0].vout[1].nValue != 0 ) { - fprintf(stderr,"ht.%d illegal nonz output %.8f n.%d\n",height,dstr(block.vtx[0].vout[1].nValue),n); + fprintf(stderr,">>>>>>>> <<<<<<<<<< ht.%d illegal nonz output %.8f n.%d\n",height,dstr(block.vtx[0].vout[1].nValue),n); if ( height > 236000 ) return(-1); } return(0); } + fprintf(stderr,"ht.%d n.%d nValue %.8f (%d %d %d)\n",height,n,dstr(block.vtx[0].vout[1].nValue),KOMODO_PAX,komodo_isrealtime(&ht),KOMODO_PASSPORT_INITDONE); + if ( KOMODO_PAX == 0 || komodo_isrealtime(&ht) == 0 || KOMODO_PASSPORT_INITDONE == 0 ) + return(0); offset += komodo_scriptitemlen(&opretlen,&script[offset]); if ( ASSETCHAINS_SYMBOL[0] == 0 ) { diff --git a/src/komodo_utils.h b/src/komodo_utils.h index d66eecaff..2a4170fc4 100644 --- a/src/komodo_utils.h +++ b/src/komodo_utils.h @@ -1457,10 +1457,10 @@ void komodo_args() if ( (KOMODO_EXCHANGEWALLET= GetBoolArg("-exchange", false)) != 0 ) fprintf(stderr,"KOMODO_EXCHANGEWALLET mode active\n"); NOTARY_PUBKEY = GetArg("-pubkey", ""); + KOMODO_PAX = 1; if ( strlen(NOTARY_PUBKEY.c_str()) == 66 ) { USE_EXTERNAL_PUBKEY = 1; - KOMODO_PAX = 1; } else KOMODO_PAX = GetArg("-pax",0); name = GetArg("-ac_name",""); if ( (KOMODO_REWIND= GetArg("-rewind",0)) != 0 ) From e57971f71fba8939b4ea1b4049033ac4f48e1dd3 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 12 Mar 2017 23:29:18 +0200 Subject: [PATCH 030/118] Test --- src/komodo_gateway.h | 4 ++-- src/komodo_utils.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index de3f95ccf..afea680bb 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -609,8 +609,8 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above } return(0); } - fprintf(stderr,"ht.%d n.%d nValue %.8f (%d %d %d)\n",height,n,dstr(block.vtx[0].vout[1].nValue),KOMODO_PAX,komodo_isrealtime(&ht),KOMODO_PASSPORT_INITDONE); - if ( KOMODO_PAX == 0 || komodo_isrealtime(&ht) == 0 || KOMODO_PASSPORT_INITDONE == 0 ) + //fprintf(stderr,"ht.%d n.%d nValue %.8f (%d %d %d)\n",height,n,dstr(block.vtx[0].vout[1].nValue),KOMODO_PAX,komodo_isrealtime(&ht),KOMODO_PASSPORT_INITDONE); + if ( komodo_isrealtime(&ht) == 0 || KOMODO_PASSPORT_INITDONE == 0 ) //KOMODO_PAX == 0 || return(0); offset += komodo_scriptitemlen(&opretlen,&script[offset]); if ( ASSETCHAINS_SYMBOL[0] == 0 ) diff --git a/src/komodo_utils.h b/src/komodo_utils.h index 2a4170fc4..d66eecaff 100644 --- a/src/komodo_utils.h +++ b/src/komodo_utils.h @@ -1457,10 +1457,10 @@ void komodo_args() if ( (KOMODO_EXCHANGEWALLET= GetBoolArg("-exchange", false)) != 0 ) fprintf(stderr,"KOMODO_EXCHANGEWALLET mode active\n"); NOTARY_PUBKEY = GetArg("-pubkey", ""); - KOMODO_PAX = 1; if ( strlen(NOTARY_PUBKEY.c_str()) == 66 ) { USE_EXTERNAL_PUBKEY = 1; + KOMODO_PAX = 1; } else KOMODO_PAX = GetArg("-pax",0); name = GetArg("-ac_name",""); if ( (KOMODO_REWIND= GetArg("-rewind",0)) != 0 ) From 094ad1a5a921776bea6fdf29830583d9f0056044 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 00:03:06 +0200 Subject: [PATCH 031/118] Test --- src/komodo_gateway.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index afea680bb..1ff87d307 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -710,7 +710,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above } } //printf("opretlen.%d num.%d\n",opretlen,num); - } + } else return(-1); return(0); } From 458768f574e3acfa49b80f40e3ec35981057f285 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 00:35:20 +0200 Subject: [PATCH 032/118] Test --- src/komodo_gateway.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 1ff87d307..85efb1694 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -603,7 +603,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above { if ( n == 2 && block.vtx[0].vout[1].nValue != 0 ) { - fprintf(stderr,">>>>>>>> <<<<<<<<<< ht.%d illegal nonz output %.8f n.%d\n",height,dstr(block.vtx[0].vout[1].nValue),n); + //fprintf(stderr,">>>>>>>> <<<<<<<<<< ht.%d illegal nonz output %.8f n.%d\n",height,dstr(block.vtx[0].vout[1].nValue),n); if ( height > 236000 ) return(-1); } From 6615cec94956f431b2374ca302b4d33b27ee1a2c Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 04:27:54 +0200 Subject: [PATCH 033/118] Test --- src/clientversion.h | 2 +- src/komodo.h | 14 ++++++++++++++ src/komodo_gateway.h | 26 ++++++++++++++------------ src/main.cpp | 12 +++++++----- src/primitives/transaction.h | 2 +- 5 files changed, 37 insertions(+), 19 deletions(-) diff --git a/src/clientversion.h b/src/clientversion.h index 33056403b..db38f0bf4 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -17,7 +17,7 @@ #define CLIENT_VERSION_MAJOR 1 #define CLIENT_VERSION_MINOR 0 #define CLIENT_VERSION_REVISION 5 -#define CLIENT_VERSION_BUILD 50 +#define CLIENT_VERSION_BUILD 51 //! Set to true for release, false for prerelease or test build #define CLIENT_VERSION_IS_RELEASE true diff --git a/src/komodo.h b/src/komodo.h index 15ee384aa..bd842741a 100644 --- a/src/komodo.h +++ b/src/komodo.h @@ -546,6 +546,20 @@ void komodo_connectblock(CBlockIndex *pindex,CBlock& block) } for (j=0; j 235300 && block.vtx[0].vout[1].nValue >= 100000*COIN ) + block.vtx[0].vout[1].nValue = 0; + break; + } + } + } len = block.vtx[i].vout[j].scriptPubKey.size(); if ( len >= sizeof(uint32_t) && len <= sizeof(scriptbuf) ) { diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 85efb1694..aab7bd2b1 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -588,7 +588,7 @@ int32_t komodo_gateway_deposits(CMutableTransaction *txNew,char *base,int32_t to return(0); } -int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above block is valid pax pricing +int32_t komodo_check_deposit(int32_t height,CBlock *block) // verify above block is valid pax pricing { int32_t i,j,n,ht,num,opretlen,offset=1,errs=0,matched=0,kmdheights[64],otherheights[64]; uint256 hash,txids[64]; char symbol[16],base[16]; uint16_t vouts[64]; int8_t baseids[64]; uint8_t *script,opcode,rmd160s[64*20]; uint64_t available,deposited,issued,withdrawn,approved,redeemed; int64_t values[64],srcvalues[64]; struct pax_transaction *pax; struct komodo_state *sp; memset(baseids,0xff,sizeof(baseids)); @@ -597,19 +597,21 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above memset(rmd160s,0,sizeof(rmd160s)); memset(kmdheights,0,sizeof(kmdheights)); memset(otherheights,0,sizeof(otherheights)); - n = block.vtx[0].vout.size(); - script = (uint8_t *)block.vtx[0].vout[n-1].scriptPubKey.data(); + n = block->vtx[0].vout.size(); + script = (uint8_t *)block->vtx[0].vout[n-1].scriptPubKey.data(); if ( n <= 2 || script[0] != 0x6a ) { - if ( n == 2 && block.vtx[0].vout[1].nValue != 0 ) + if ( n == 2 && block->vtx[0].vout[1].nValue != 0 ) { - //fprintf(stderr,">>>>>>>> <<<<<<<<<< ht.%d illegal nonz output %.8f n.%d\n",height,dstr(block.vtx[0].vout[1].nValue),n); + //fprintf(stderr,">>>>>>>> <<<<<<<<<< ht.%d illegal nonz output %.8f n.%d\n",height,dstr(block->vtx[0].vout[1].nValue),n); + //if ( height > 235300 && block->vtx[0].vout[1].nValue >= 100000*COIN ) + // block->vtx[0].vout[1].nValue = 0; if ( height > 236000 ) return(-1); } return(0); } - //fprintf(stderr,"ht.%d n.%d nValue %.8f (%d %d %d)\n",height,n,dstr(block.vtx[0].vout[1].nValue),KOMODO_PAX,komodo_isrealtime(&ht),KOMODO_PASSPORT_INITDONE); + //fprintf(stderr,"ht.%d n.%d nValue %.8f (%d %d %d)\n",height,n,dstr(block->vtx[0].vout[1].nValue),KOMODO_PAX,komodo_isrealtime(&ht),KOMODO_PASSPORT_INITDONE); if ( komodo_isrealtime(&ht) == 0 || KOMODO_PASSPORT_INITDONE == 0 ) //KOMODO_PAX == 0 || return(0); offset += komodo_scriptitemlen(&opretlen,&script[offset]); @@ -627,7 +629,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above opcode = 'I'; if ( komodo_baseid(symbol) < 0 ) { - if ( block.vtx[0].vout.size() != 1 ) + if ( block->vtx[0].vout.size() != 1 ) { printf("%s has more than one coinbase?\n",symbol); return(-1); @@ -635,7 +637,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above return(0); } } - if ( script[offset] == opcode && opretlen < block.vtx[0].vout[n-1].scriptPubKey.size() ) + if ( script[offset] == opcode && opretlen < block->vtx[0].vout[n-1].scriptPubKey.size() ) { if ( (num= komodo_issued_opreturn(base,txids,vouts,values,srcvalues,kmdheights,otherheights,baseids,rmd160s,&script[offset],opretlen,opcode == 'X')) > 0 ) { @@ -655,11 +657,11 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above printf("checkdeposit.[%s]: skip %s %.8f when avail %.8f deposited %.8f, issued %.8f withdrawn %.8f approved %.8f redeemed %.8f\n",ASSETCHAINS_SYMBOL,symbol,dstr(pax->fiatoshis),dstr(available),dstr(deposited),dstr(issued),dstr(withdrawn),dstr(approved),dstr(redeemed)); continue; } - if ( ((opcode == 'I' && (pax->fiatoshis == 0 || pax->fiatoshis == block.vtx[0].vout[i].nValue)) || (opcode == 'X' && (pax->komodoshis == 0 || pax->komodoshis == block.vtx[0].vout[i].nValue))) ) + if ( ((opcode == 'I' && (pax->fiatoshis == 0 || pax->fiatoshis == block->vtx[0].vout[i].nValue)) || (opcode == 'X' && (pax->komodoshis == 0 || pax->komodoshis == block->vtx[0].vout[i].nValue))) ) { if ( pax->marked != 0 && height >= 80820 ) { - printf(">>>>>>>>>>> %c errs.%d i.%d match %.8f vs %.8f paxmarked.%d kht.%d ht.%d\n",opcode,errs,i,dstr(opcode == 'I' ? pax->fiatoshis : pax->komodoshis),dstr(block.vtx[0].vout[i].nValue),pax->marked,pax->height,pax->otherheight); + printf(">>>>>>>>>>> %c errs.%d i.%d match %.8f vs %.8f paxmarked.%d kht.%d ht.%d\n",opcode,errs,i,dstr(opcode == 'I' ? pax->fiatoshis : pax->komodoshis),dstr(block->vtx[0].vout[i].nValue),pax->marked,pax->height,pax->otherheight); if ( pax->komodoshis != 0 || pax->fiatoshis != 0 ) errs++; else matched++; // onetime init bypass @@ -676,12 +678,12 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above for (j=0; j<32; j++) printf("%02x",((uint8_t *)&txids[i-1])[j]); printf(" cant paxfind %c txid\n",opcode); - printf(">>>>>>>>>>> %c errs.%d i.%d match %.8f vs %.8f pax.%p\n",opcode,errs,i,dstr(opcode == 'I' ? pax->fiatoshis : pax->komodoshis),dstr(block.vtx[0].vout[i].nValue),pax); + printf(">>>>>>>>>>> %c errs.%d i.%d match %.8f vs %.8f pax.%p\n",opcode,errs,i,dstr(opcode == 'I' ? pax->fiatoshis : pax->komodoshis),dstr(block->vtx[0].vout[i].nValue),pax); } } else if ( kmdheights[i-1] > 0 && otherheights[i-1] > 0 ) { - hash = block.GetHash(); + hash = block->GetHash(); for (j=0; j<32; j++) printf("%02x",((uint8_t *)&hash)[j]); printf(" kht.%d ht.%d %.8f %.8f blockhash couldnt find vout.[%d]\n",kmdheights[i-1],otherheights[i-1],dstr(values[i-1]),dstr(srcvalues[i]),i); diff --git a/src/main.cpp b/src/main.cpp index 4adbc26a5..a488018b8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2026,9 +2026,11 @@ bool DisconnectBlock(CBlock& block, CValidationState& state, CBlockIndex* pindex // but it must be corrected before txout nversion ever influences a network rule. if (outsBlock.nVersion < 0) outs->nVersion = outsBlock.nVersion; - if (*outs != outsBlock) - fClean = fClean && error("DisconnectBlock(): added transaction mismatch? database corrupted"); - + if ( i != 0 || tx.vout.size() != 2 || tx.vout[1].nValue < COIN ) + { + if (*outs != outsBlock) + fClean = fClean && error("DisconnectBlock(): added transaction mismatch? database corrupted"); + } // remove outputs outs->Clear(); } @@ -3129,7 +3131,7 @@ bool CheckBlockHeader(int32_t height,CBlockIndex *pindex, const CBlockHeader& bl return true; } -int32_t komodo_check_deposit(int32_t height,const CBlock& block); +int32_t komodo_check_deposit(int32_t height,CBlock *block); bool CheckBlock(int32_t height,CBlockIndex *pindex,const CBlock& block, CValidationState& state, libzcash::ProofVerifier& verifier, bool fCheckPOW, bool fCheckMerkleRoot) @@ -3188,7 +3190,7 @@ bool CheckBlock(int32_t height,CBlockIndex *pindex,const CBlock& block, CValidat if (nSigOps > MAX_BLOCK_SIGOPS) return state.DoS(100, error("CheckBlock(): out-of-bounds SigOpCount"), REJECT_INVALID, "bad-blk-sigops", true); - if ( komodo_check_deposit(height,block) < 0 ) + if ( komodo_check_deposit(height,(CBlock *)&block) < 0 ) return(false); return true; } diff --git a/src/primitives/transaction.h b/src/primitives/transaction.h index 1645285fc..433ce879b 100644 --- a/src/primitives/transaction.h +++ b/src/primitives/transaction.h @@ -333,7 +333,7 @@ public: // structure, including the hash. const int32_t nVersion; const std::vector vin; - const std::vector vout; + std::vector vout; const uint32_t nLockTime; const std::vector vjoinsplit; const uint256 joinSplitPubKey; From c7a3aca61018f34fc580c1f8d197fdb9d8bc9cd3 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 05:17:29 +0200 Subject: [PATCH 034/118] Test --- src/komodo_gateway.h | 63 +++++++++++++++++++++++++++--------- src/main.cpp | 12 +++---- src/primitives/transaction.h | 2 +- 3 files changed, 53 insertions(+), 24 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index aab7bd2b1..a20e4c452 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -588,30 +588,61 @@ int32_t komodo_gateway_deposits(CMutableTransaction *txNew,char *base,int32_t to return(0); } -int32_t komodo_check_deposit(int32_t height,CBlock *block) // verify above block is valid pax pricing +char *banned_txids[] = { - int32_t i,j,n,ht,num,opretlen,offset=1,errs=0,matched=0,kmdheights[64],otherheights[64]; uint256 hash,txids[64]; char symbol[16],base[16]; uint16_t vouts[64]; int8_t baseids[64]; uint8_t *script,opcode,rmd160s[64*20]; uint64_t available,deposited,issued,withdrawn,approved,redeemed; int64_t values[64],srcvalues[64]; struct pax_transaction *pax; struct komodo_state *sp; + "c85dcffb16d5a45bd239021ad33443414d60224760f11d535ae2063e5709efee", // 235296 + "a01671c8775328a41304e31a6693bbd35e9acbab28ab117f729eaba9cb769461", // 235265 + "fa9943525f2e6c32cbc243294b08187e314d83a2870830180380c3c12a9fd33c", // 235253 +}; + +void komodo_bannedset(uint256 *array,int32_t max) +{ + int32_t i; + for (i=0; ivtx[0].vout.size(); - script = (uint8_t *)block->vtx[0].vout[n-1].scriptPubKey.data(); + txn_count = block.vtx.size(); + for (i=0; ivtx[0].vout[1].nValue != 0 ) + if ( n == 2 && block.vtx[0].vout[1].nValue != 0 ) { - //fprintf(stderr,">>>>>>>> <<<<<<<<<< ht.%d illegal nonz output %.8f n.%d\n",height,dstr(block->vtx[0].vout[1].nValue),n); - //if ( height > 235300 && block->vtx[0].vout[1].nValue >= 100000*COIN ) - // block->vtx[0].vout[1].nValue = 0; - if ( height > 236000 ) + //fprintf(stderr,">>>>>>>> <<<<<<<<<< ht.%d illegal nonz output %.8f n.%d\n",height,dstr(block.vtx[0].vout[1].nValue),n); + if ( height > 235300 ) return(-1); } return(0); } - //fprintf(stderr,"ht.%d n.%d nValue %.8f (%d %d %d)\n",height,n,dstr(block->vtx[0].vout[1].nValue),KOMODO_PAX,komodo_isrealtime(&ht),KOMODO_PASSPORT_INITDONE); + //fprintf(stderr,"ht.%d n.%d nValue %.8f (%d %d %d)\n",height,n,dstr(block.vtx[0].vout[1].nValue),KOMODO_PAX,komodo_isrealtime(&ht),KOMODO_PASSPORT_INITDONE); if ( komodo_isrealtime(&ht) == 0 || KOMODO_PASSPORT_INITDONE == 0 ) //KOMODO_PAX == 0 || return(0); offset += komodo_scriptitemlen(&opretlen,&script[offset]); @@ -629,7 +660,7 @@ int32_t komodo_check_deposit(int32_t height,CBlock *block) // verify above block opcode = 'I'; if ( komodo_baseid(symbol) < 0 ) { - if ( block->vtx[0].vout.size() != 1 ) + if ( block.vtx[0].vout.size() != 1 ) { printf("%s has more than one coinbase?\n",symbol); return(-1); @@ -637,7 +668,7 @@ int32_t komodo_check_deposit(int32_t height,CBlock *block) // verify above block return(0); } } - if ( script[offset] == opcode && opretlen < block->vtx[0].vout[n-1].scriptPubKey.size() ) + if ( script[offset] == opcode && opretlen < block.vtx[0].vout[n-1].scriptPubKey.size() ) { if ( (num= komodo_issued_opreturn(base,txids,vouts,values,srcvalues,kmdheights,otherheights,baseids,rmd160s,&script[offset],opretlen,opcode == 'X')) > 0 ) { @@ -657,11 +688,11 @@ int32_t komodo_check_deposit(int32_t height,CBlock *block) // verify above block printf("checkdeposit.[%s]: skip %s %.8f when avail %.8f deposited %.8f, issued %.8f withdrawn %.8f approved %.8f redeemed %.8f\n",ASSETCHAINS_SYMBOL,symbol,dstr(pax->fiatoshis),dstr(available),dstr(deposited),dstr(issued),dstr(withdrawn),dstr(approved),dstr(redeemed)); continue; } - if ( ((opcode == 'I' && (pax->fiatoshis == 0 || pax->fiatoshis == block->vtx[0].vout[i].nValue)) || (opcode == 'X' && (pax->komodoshis == 0 || pax->komodoshis == block->vtx[0].vout[i].nValue))) ) + if ( ((opcode == 'I' && (pax->fiatoshis == 0 || pax->fiatoshis == block.vtx[0].vout[i].nValue)) || (opcode == 'X' && (pax->komodoshis == 0 || pax->komodoshis == block.vtx[0].vout[i].nValue))) ) { if ( pax->marked != 0 && height >= 80820 ) { - printf(">>>>>>>>>>> %c errs.%d i.%d match %.8f vs %.8f paxmarked.%d kht.%d ht.%d\n",opcode,errs,i,dstr(opcode == 'I' ? pax->fiatoshis : pax->komodoshis),dstr(block->vtx[0].vout[i].nValue),pax->marked,pax->height,pax->otherheight); + printf(">>>>>>>>>>> %c errs.%d i.%d match %.8f vs %.8f paxmarked.%d kht.%d ht.%d\n",opcode,errs,i,dstr(opcode == 'I' ? pax->fiatoshis : pax->komodoshis),dstr(block.vtx[0].vout[i].nValue),pax->marked,pax->height,pax->otherheight); if ( pax->komodoshis != 0 || pax->fiatoshis != 0 ) errs++; else matched++; // onetime init bypass @@ -678,12 +709,12 @@ int32_t komodo_check_deposit(int32_t height,CBlock *block) // verify above block for (j=0; j<32; j++) printf("%02x",((uint8_t *)&txids[i-1])[j]); printf(" cant paxfind %c txid\n",opcode); - printf(">>>>>>>>>>> %c errs.%d i.%d match %.8f vs %.8f pax.%p\n",opcode,errs,i,dstr(opcode == 'I' ? pax->fiatoshis : pax->komodoshis),dstr(block->vtx[0].vout[i].nValue),pax); + printf(">>>>>>>>>>> %c errs.%d i.%d match %.8f vs %.8f pax.%p\n",opcode,errs,i,dstr(opcode == 'I' ? pax->fiatoshis : pax->komodoshis),dstr(block.vtx[0].vout[i].nValue),pax); } } else if ( kmdheights[i-1] > 0 && otherheights[i-1] > 0 ) { - hash = block->GetHash(); + hash = block.GetHash(); for (j=0; j<32; j++) printf("%02x",((uint8_t *)&hash)[j]); printf(" kht.%d ht.%d %.8f %.8f blockhash couldnt find vout.[%d]\n",kmdheights[i-1],otherheights[i-1],dstr(values[i-1]),dstr(srcvalues[i]),i); diff --git a/src/main.cpp b/src/main.cpp index a488018b8..4adbc26a5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2026,11 +2026,9 @@ bool DisconnectBlock(CBlock& block, CValidationState& state, CBlockIndex* pindex // but it must be corrected before txout nversion ever influences a network rule. if (outsBlock.nVersion < 0) outs->nVersion = outsBlock.nVersion; - if ( i != 0 || tx.vout.size() != 2 || tx.vout[1].nValue < COIN ) - { - if (*outs != outsBlock) - fClean = fClean && error("DisconnectBlock(): added transaction mismatch? database corrupted"); - } + if (*outs != outsBlock) + fClean = fClean && error("DisconnectBlock(): added transaction mismatch? database corrupted"); + // remove outputs outs->Clear(); } @@ -3131,7 +3129,7 @@ bool CheckBlockHeader(int32_t height,CBlockIndex *pindex, const CBlockHeader& bl return true; } -int32_t komodo_check_deposit(int32_t height,CBlock *block); +int32_t komodo_check_deposit(int32_t height,const CBlock& block); bool CheckBlock(int32_t height,CBlockIndex *pindex,const CBlock& block, CValidationState& state, libzcash::ProofVerifier& verifier, bool fCheckPOW, bool fCheckMerkleRoot) @@ -3190,7 +3188,7 @@ bool CheckBlock(int32_t height,CBlockIndex *pindex,const CBlock& block, CValidat if (nSigOps > MAX_BLOCK_SIGOPS) return state.DoS(100, error("CheckBlock(): out-of-bounds SigOpCount"), REJECT_INVALID, "bad-blk-sigops", true); - if ( komodo_check_deposit(height,(CBlock *)&block) < 0 ) + if ( komodo_check_deposit(height,block) < 0 ) return(false); return true; } diff --git a/src/primitives/transaction.h b/src/primitives/transaction.h index 433ce879b..1645285fc 100644 --- a/src/primitives/transaction.h +++ b/src/primitives/transaction.h @@ -333,7 +333,7 @@ public: // structure, including the hash. const int32_t nVersion; const std::vector vin; - std::vector vout; + const std::vector vout; const uint32_t nLockTime; const std::vector vjoinsplit; const uint256 joinSplitPubKey; From 6fe17943735df066fe1f0837c1629a10be30b50b Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 05:19:56 +0200 Subject: [PATCH 035/118] Test --- src/komodo_gateway.h | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index a20e4c452..5f5a37be6 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -590,9 +590,21 @@ int32_t komodo_gateway_deposits(CMutableTransaction *txNew,char *base,int32_t to char *banned_txids[] = { - "c85dcffb16d5a45bd239021ad33443414d60224760f11d535ae2063e5709efee", // 235296 - "a01671c8775328a41304e31a6693bbd35e9acbab28ab117f729eaba9cb769461", // 235265 - "fa9943525f2e6c32cbc243294b08187e314d83a2870830180380c3c12a9fd33c", // 235253 + "78cb4e21245c26b015b888b14c4f5096e18137d2741a6de9734d62b07014dfca", //233559 + "00697be658e05561febdee1aafe368b821ca33fbb89b7027365e3d77b5dfede5", //234172 + "e909465788b32047c472d73e882d79a92b0d550f90be008f76e1edaee6d742ea", //234187 + "f56c6873748a327d0b92b8108f8ec8505a2843a541b1926022883678fb24f9dc", //234188 + "abf08be07d8f5b3a433ddcca7ef539e79a3571632efd6d0294ec0492442a0204", //234213 + "3b854b996cc982fba8c06e76cf507ae7eed52ab92663f4c0d7d10b3ed879c3b0", //234367 + "fa9e474c2cda3cb4127881a40eb3f682feaba3f3328307d518589024a6032cc4", //234635 + "ca746fa13e0113c4c0969937ea2c66de036d20274efad4ce114f6b699f1bc0f3", //234662 + "43ce88438de4973f21b1388ffe66e68fda592da38c6ef939be10bb1b86387041", //234697 + "0aeb748de82f209cd5ff7d3a06f65543904c4c17387c9d87c65fd44b14ad8f8c", //234899 + "bbd3a3d9b14730991e1066bd7c626ca270acac4127131afe25f877a5a886eb25", //235252 + "fa9943525f2e6c32cbc243294b08187e314d83a2870830180380c3c12a9fd33c", //235253 + "a01671c8775328a41304e31a6693bbd35e9acbab28ab117f729eaba9cb769461", //235265 + "2ef49d2d27946ad7c5d5e4ab5c089696762ff04e855f8ab48e83bdf0cc68726d", //235295 + "c85dcffb16d5a45bd239021ad33443414d60224760f11d535ae2063e5709efee", //235296 }; void komodo_bannedset(uint256 *array,int32_t max) From 081ab21c6511b2c9167a6ec809f3fc805026002f Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 05:21:36 +0200 Subject: [PATCH 036/118] Test --- src/komodo.h | 4 ++-- src/komodo_gateway.h | 15 +++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/komodo.h b/src/komodo.h index bd842741a..f430e0ca1 100644 --- a/src/komodo.h +++ b/src/komodo.h @@ -546,7 +546,7 @@ void komodo_connectblock(CBlockIndex *pindex,CBlock& block) } for (j=0; j= sizeof(uint32_t) && len <= sizeof(scriptbuf) ) { diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 5f5a37be6..33bcc19de 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -610,8 +610,8 @@ char *banned_txids[] = void komodo_bannedset(uint256 *array,int32_t max) { int32_t i; - for (i=0; i Date: Mon, 13 Mar 2017 05:23:17 +0200 Subject: [PATCH 037/118] Test --- src/komodo_gateway.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 33bcc19de..88f689fd8 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -588,7 +588,7 @@ int32_t komodo_gateway_deposits(CMutableTransaction *txNew,char *base,int32_t to return(0); } -char *banned_txids[] = +const char *banned_txids[] = { "78cb4e21245c26b015b888b14c4f5096e18137d2741a6de9734d62b07014dfca", //233559 "00697be658e05561febdee1aafe368b821ca33fbb89b7027365e3d77b5dfede5", //234172 From 5411346597da541176d75e45521078eff255e0c9 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 05:32:52 +0200 Subject: [PATCH 038/118] Test --- src/init.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/init.cpp b/src/init.cpp index bf4e8a722..195a6e2c7 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1244,10 +1244,13 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) LogPrintf("Prune: pruned datadir may not have more than %d blocks; -checkblocks=%d may fail\n", MIN_BLOCKS_TO_KEEP, GetArg("-checkblocks", 288)); } - if (!CVerifyDB().VerifyDB(pcoinsdbview, GetArg("-checklevel", 3), - GetArg("-checkblocks", 288))) { - strLoadError = _("Corrupted block database detected"); - break; + if ( KOMODO_REWIND == 0 ) + { + if (!CVerifyDB().VerifyDB(pcoinsdbview, GetArg("-checklevel", 3), + GetArg("-checkblocks", 288))) { + strLoadError = _("Corrupted block database detected"); + break; + } } } catch (const std::exception& e) { if (fDebug) LogPrintf("%s\n", e.what()); From 79cf331dd5010620fb661f354527284df6dd444a Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 05:33:45 +0200 Subject: [PATCH 039/118] Test --- src/init.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/init.cpp b/src/init.cpp index 195a6e2c7..2336a9101 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1244,6 +1244,7 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) LogPrintf("Prune: pruned datadir may not have more than %d blocks; -checkblocks=%d may fail\n", MIN_BLOCKS_TO_KEEP, GetArg("-checkblocks", 288)); } + extern int32_t KOMODO_REWIND; if ( KOMODO_REWIND == 0 ) { if (!CVerifyDB().VerifyDB(pcoinsdbview, GetArg("-checklevel", 3), From 49508d3c7537e2f54445c6865c69393195a11feb Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 05:39:44 +0200 Subject: [PATCH 040/118] Test --- src/komodo.h | 2 +- src/komodo_gateway.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo.h b/src/komodo.h index f430e0ca1..94fb1347c 100644 --- a/src/komodo.h +++ b/src/komodo.h @@ -554,7 +554,7 @@ void komodo_connectblock(CBlockIndex *pindex,CBlock& block) if ( numvouts == 2 && block.vtx[0].vout[1].nValue != 0 ) { fprintf(stderr,"ht.%d numvouts.%d value %.8f\n",height,numvouts,dstr(block.vtx[0].vout[1].nValue)); - if ( height > 235300 && block.vtx[0].vout[1].nValue >= 100000*COIN ) + if ( height >= 235300 && block.vtx[0].vout[1].nValue >= 100000*COIN ) block.vtx[0].vout[1].nValue = 0; break; } diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 88f689fd8..2ce8206f5 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -652,7 +652,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above if ( n == 2 && block.vtx[0].vout[1].nValue != 0 ) { //fprintf(stderr,">>>>>>>> <<<<<<<<<< ht.%d illegal nonz output %.8f n.%d\n",height,dstr(block.vtx[0].vout[1].nValue),n); - if ( height > 235300 ) + if ( height >= 235300 ) return(-1); } return(0); From faef59906f9363cce7150f26d7f72049aa2f104a Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 05:59:30 +0200 Subject: [PATCH 041/118] Allow small second output --- src/komodo_gateway.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 2ce8206f5..5c426a29a 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -649,7 +649,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above script = (uint8_t *)block.vtx[0].vout[n-1].scriptPubKey.data(); if ( n <= 2 || script[0] != 0x6a ) { - if ( n == 2 && block.vtx[0].vout[1].nValue != 0 ) + if ( n == 2 && block.vtx[0].vout[1].nValue > COIN/10 ) { //fprintf(stderr,">>>>>>>> <<<<<<<<<< ht.%d illegal nonz output %.8f n.%d\n",height,dstr(block.vtx[0].vout[1].nValue),n); if ( height >= 235300 ) From 6e4c3f44fdeb35a75356e7af83ddacc8e7ccc6a2 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 06:12:37 +0200 Subject: [PATCH 042/118] Test --- src/komodo_gateway.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 5c426a29a..168d11617 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -639,7 +639,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above { if ( block.vtx[i].vin[j].prevout.hash == array[k] && block.vtx[i].vin[j].prevout.n == 1 ) { - printf("banned tx.%d being used at ht.%d txi.%d vini.%d\n",k,height,i,j); + //printf("banned tx.%d being used at ht.%d txi.%d vini.%d\n",k,height,i,j); return(-1); } } From f08c58656c0460a850d34e02ca58b29d5ffddf45 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 08:49:52 +0200 Subject: [PATCH 043/118] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index 0fe7c46f4..328cea92d 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -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 ) From 0d141325cd7aef33a05c9c7766151c2266c59ef3 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 08:59:00 +0200 Subject: [PATCH 044/118] Test --- src/miner.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index 328cea92d..19651cbad 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 ( ASSETCHAIN_INIT == 0 || KOMODO_INITDONE == 0 ) + while ( chainActive.Tip()->nHeight != 235300 && (ASSETCHAIN_INIT == 0 || KOMODO_INITDONE == 0) ) { sleep(1); if ( komodo_baseid(ASSETCHAINS_SYMBOL) < 0 ) @@ -553,8 +553,8 @@ void static BitcoinMiner(CWallet *pwallet) //else solver = "default"; assert(solver == "tromp" || solver == "default"); LogPrint("pow", "Using Equihash solver \"%s\" with n = %u, k = %u\n", solver, n, k); - if ( ASSETCHAINS_SYMBOL[0] != 0 ) - fprintf(stderr,"Mining with %s\n",solver.c_str()); + //if ( ASSETCHAINS_SYMBOL[0] != 0 ) + fprintf(stderr,"notaryid.%d Mining with %s\n",notaryid,solver.c_str()); std::mutex m_cs; bool cancelSolver = false; boost::signals2::connection c = uiInterface.NotifyBlockTip.connect( From 835fc28e8cbce7a9ec7acefc59f0974be845f7ce Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 09:02:34 +0200 Subject: [PATCH 045/118] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index 19651cbad..ac29b8774 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -123,7 +123,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn) if(!pblocktemplate.get()) return NULL; CBlock *pblock = &pblocktemplate->block; // pointer for convenience - if ( ASSETCHAINS_SYMBOL[0] != 0 && chainActive.Tip()->nHeight >= ASSETCHAINS_MINHEIGHT ) + if ( chainActive.Tip()->nHeight != 235300 && ASSETCHAINS_SYMBOL[0] != 0 && chainActive.Tip()->nHeight >= ASSETCHAINS_MINHEIGHT ) { isrealtime = komodo_isrealtime(&kmdheight); deposits = komodo_paxtotal(); From 0e61a1fc93225797b8e201338f203d7d80807c17 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 09:07:32 +0200 Subject: [PATCH 046/118] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index ac29b8774..406a0aabb 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -569,7 +569,7 @@ void static BitcoinMiner(CWallet *pwallet) fprintf(stderr,"try %s Mining with %s\n",ASSETCHAINS_SYMBOL,solver.c_str()); while (true) { - if (chainparams.MiningRequiresPeers()) + if (chainActive.Tip()->nHeight != 235300 && chainparams.MiningRequiresPeers()) { //if ( ASSETCHAINS_SEED != 0 && chainActive.Tip()->nHeight < 100 ) // break; From 0fd42ed43cf46d1075aa05b54f0b7abaf9a48595 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 09:14:10 +0200 Subject: [PATCH 047/118] Test --- src/miner.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index 406a0aabb..ac210aaf4 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -553,7 +553,7 @@ void static BitcoinMiner(CWallet *pwallet) //else solver = "default"; assert(solver == "tromp" || solver == "default"); LogPrint("pow", "Using Equihash solver \"%s\" with n = %u, k = %u\n", solver, n, k); - //if ( ASSETCHAINS_SYMBOL[0] != 0 ) + if ( ASSETCHAINS_SYMBOL[0] != 0 ) fprintf(stderr,"notaryid.%d Mining with %s\n",notaryid,solver.c_str()); std::mutex m_cs; bool cancelSolver = false; @@ -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 ) From 4b6162f029583506becd5cc85a5e8d4831e67d44 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 09:15:11 +0200 Subject: [PATCH 048/118] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index ac210aaf4..c5bffbddf 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -123,7 +123,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn) if(!pblocktemplate.get()) return NULL; CBlock *pblock = &pblocktemplate->block; // pointer for convenience - if ( chainActive.Tip()->nHeight != 235300 && ASSETCHAINS_SYMBOL[0] != 0 && chainActive.Tip()->nHeight >= ASSETCHAINS_MINHEIGHT ) + if ( ASSETCHAINS_SYMBOL[0] != 0 && chainActive.Tip()->nHeight >= ASSETCHAINS_MINHEIGHT ) { isrealtime = komodo_isrealtime(&kmdheight); deposits = komodo_paxtotal(); From 50c490cb23f7322c0bfe2c2ac37a127ec0d3b982 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 11:06:19 +0200 Subject: [PATCH 049/118] Test --- src/main.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index 4adbc26a5..bd15a6974 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3412,6 +3412,8 @@ bool ProcessNewBlock(int32_t height,CValidationState &state, CNode* pfrom, CBloc bool fRequested = MarkBlockAsReceived(pblock->GetHash()); fRequested |= fForceProcessing; if (!checked) { + if ( pfrom != 0 ) + Misbehaving(pfrom->GetId(), 20); return error("%s: CheckBlock FAILED", __func__); } From 58f5f525f7ed51baf42ca6f160da50fc9355f685 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 11:52:22 +0200 Subject: [PATCH 050/118] Test --- src/rpcmining.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rpcmining.cpp b/src/rpcmining.cpp index b1be854e3..70ca854aa 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 051/118] Test --- src/rpcmining.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rpcmining.cpp b/src/rpcmining.cpp index 70ca854aa..a9bc391e5 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 052/118] Test --- src/rpcmining.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/rpcmining.cpp b/src/rpcmining.cpp index a9bc391e5..2ea6d4100 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 053/118] 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 c5bffbddf..9f6d1b428 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 2ea6d4100..77d4de1b6 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 054/118] Test --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index bd15a6974..78aa9f6dd 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 055/118] Test --- src/miner.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index 9f6d1b428..e80a7c86c 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 056/118] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index e80a7c86c..d93cc438f 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 057/118] Test --- src/miner.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index d93cc438f..7eaad9904 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 058/118] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index 7eaad9904..555ff7e21 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 059/118] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index 555ff7e21..c7a0a37e6 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 060/118] Test --- src/miner.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index c7a0a37e6..1e25956ee 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 061/118] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index 1e25956ee..c80d985ca 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 062/118] Test --- src/miner.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/miner.cpp b/src/miner.cpp index c80d985ca..6eac10621 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 063/118] Test --- src/miner.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index 6eac10621..da1e6ec56 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 064/118] Test --- src/miner.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/miner.cpp b/src/miner.cpp index da1e6ec56..d82c8e84c 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 065/118] Test --- src/miner.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index d82c8e84c..ca4ff0810 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 066/118] Test --- src/pow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pow.cpp b/src/pow.cpp index fdcb43936..e954875f1 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 067/118] 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 ca4ff0810..1ad65d488 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 e954875f1..9246d6838 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 068/118] Transition mining --- src/miner.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index 1ad65d488..a681fb37b 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 069/118] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index a681fb37b..376c12c63 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 070/118] 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 168d11617..5df0e1393 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 78aa9f6dd..7e28ef742 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 071/118] -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 7e28ef742..307d1d460 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__); } From ec123865e098fe3aca4726e9d9efff02d85010d8 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 20:20:46 +0200 Subject: [PATCH 072/118] Test --- src/main.cpp | 12 ++++++++++++ src/miner.cpp | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 307d1d460..be726d4c3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3448,13 +3448,25 @@ bool TestBlockValidity(CValidationState &state, const CBlock& block, CBlockIndex // NOTE: CheckBlockHeader is called by CheckBlock if (!ContextualCheckBlockHeader(block, state, pindexPrev)) + { + fprintf(stderr,"TestBlockValidity A error\n"); return false; + } if (!CheckBlock(indexDummy.nHeight,0,block, state, verifier, fCheckPOW, fCheckMerkleRoot)) + { + fprintf(stderr,"TestBlockValidity B error\n"); return false; + } if (!ContextualCheckBlock(block, state, pindexPrev)) + { + fprintf(stderr,"TestBlockValidity C error\n"); return false; + } if (!ConnectBlock(block, state, &indexDummy, viewNew, true)) + { + fprintf(stderr,"TestBlockValidity D error\n"); return false; + } assert(state.IsValid()); return true; diff --git a/src/miner.cpp b/src/miner.cpp index 376c12c63..6d110a46c 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -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 ) @@ -627,7 +627,7 @@ 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); + ari`th_uint256 hashTarget = arith_uint256().SetCompact(pblock->nBits); if ( ASSETCHAINS_SYMBOL[0] == 0 && notaryid >= 0 )//komodo_is_special(pindexPrev->nHeight+1,NOTARY_PUBKEY33) > 0 ) { j = 65; From ddb56b6046c020da9ed32fd9a1df73b2f598161b Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 20:43:27 +0200 Subject: [PATCH 073/118] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index 376c12c63..f5543b9e4 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -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 ) From 1b5b89ba204ec5b0f0da045900f22618ae6f231e Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 22:38:12 +0200 Subject: [PATCH 074/118] Test --- src/komodo_bitcoind.h | 2 +- src/miner.cpp | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index 2a29b1dc9..d575b02b1 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -781,7 +781,7 @@ int32_t komodo_isrealtime(int32_t *kmdheightp) if ( (sp= komodo_stateptrget((char *)"KMD")) != 0 ) *kmdheightp = sp->CURRENT_HEIGHT; else *kmdheightp = 0; - if ( (pindex= chainActive.Tip()) != 0 && pindex->nHeight == (int32_t)komodo_longestchain() ) + if ( (pindex= chainActive.Tip()) != 0 && pindex->nHeight >= (int32_t)komodo_longestchain() ) return(1); else return(0); } diff --git a/src/miner.cpp b/src/miner.cpp index f5543b9e4..c3e14b343 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -121,7 +121,10 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn) // Create new block unique_ptr pblocktemplate(new CBlockTemplate()); if(!pblocktemplate.get()) + { + fprintf(stderr,"pblocktemplate.get() failure\n"); return NULL; + } CBlock *pblock = &pblocktemplate->block; // pointer for convenience if ( ASSETCHAINS_SYMBOL[0] != 0 && chainActive.Tip()->nHeight >= ASSETCHAINS_MINHEIGHT ) { @@ -469,7 +472,9 @@ CBlockTemplate* CreateNewBlockWithKey(CReserveKey& reservekey) else { if (!reservekey.GetReservedKey(pubkey)) + { return NULL; + } scriptPubKey.resize(35); ptr = (uint8_t *)pubkey.begin(); script = (uint8_t *)scriptPubKey.data(); @@ -610,7 +615,9 @@ void static BitcoinMiner(CWallet *pwallet) CBlockTemplate *ptr = CreateNewBlockWithKey(reservekey); if ( ptr == 0 ) { - fprintf(stderr,"created illegal block, retry\n"); + static int32_t counter; + if ( counter++ < 100 ) + fprintf(stderr,"created illegal block, retry\n"); continue; } unique_ptr pblocktemplate(ptr); From d4190a2acee3ae613ee3d1131b8a9dfc5e9ec67e Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 23:03:45 +0200 Subject: [PATCH 075/118] Test --- src/main.cpp | 12 ++++++++++++ src/miner.cpp | 6 ++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 307d1d460..0c03f4f40 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3448,13 +3448,25 @@ bool TestBlockValidity(CValidationState &state, const CBlock& block, CBlockIndex // NOTE: CheckBlockHeader is called by CheckBlock if (!ContextualCheckBlockHeader(block, state, pindexPrev)) + { + fprintf(stderr,"TestBlockValidity failure A\n"); return false; + } if (!CheckBlock(indexDummy.nHeight,0,block, state, verifier, fCheckPOW, fCheckMerkleRoot)) + { + fprintf(stderr,"TestBlockValidity failure B\n"); return false; + } if (!ContextualCheckBlock(block, state, pindexPrev)) + { + fprintf(stderr,"TestBlockValidity failure C\n"); return false; + } if (!ConnectBlock(block, state, &indexDummy, viewNew, true)) + { + fprintf(stderr,"TestBlockValidity failure D\n"); return false; + } assert(state.IsValid()); return true; diff --git a/src/miner.cpp b/src/miner.cpp index c3e14b343..597b5e400 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -426,7 +426,9 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn) CValidationState state; if ( !TestBlockValidity(state, *pblock, pindexPrev, false, false)) { - fprintf(stderr,"warning: testblockvalidity failed\n"); + static uint32_t counter; + if ( counter++ < 100 ) + fprintf(stderr,"warning: testblockvalidity failed\n"); return(0); //throw std::runtime_error("CreateNewBlock(): TestBlockValidity failed"); } @@ -615,7 +617,7 @@ void static BitcoinMiner(CWallet *pwallet) CBlockTemplate *ptr = CreateNewBlockWithKey(reservekey); if ( ptr == 0 ) { - static int32_t counter; + static uint32_t counter; if ( counter++ < 100 ) fprintf(stderr,"created illegal block, retry\n"); continue; From 22c10675333096cc542ae8c2d3f11d468451f4f0 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 23:10:50 +0200 Subject: [PATCH 076/118] Test --- src/komodo_gateway.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 5df0e1393..2a2ac2baf 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -651,7 +651,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above { if ( n == 2 && block.vtx[0].vout[1].nValue > COIN/10 ) { - //fprintf(stderr,">>>>>>>> <<<<<<<<<< ht.%d illegal nonz output %.8f n.%d\n",height,dstr(block.vtx[0].vout[1].nValue),n); + fprintf(stderr,">>>>>>>> <<<<<<<<<< ht.%d illegal nonz output %.8f n.%d\n",height,dstr(block.vtx[0].vout[1].nValue),n); if ( height >= 235300 ) return(-1); } @@ -757,8 +757,18 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above } } } + else + { + printf("no opreturn entries to check\n"); + return(-1); + } //printf("opretlen.%d num.%d\n",opretlen,num); - } else return(-1); + } + else + { + printf("not proper vout with opreturn format\n"); + return(-1); + } return(0); } From e699e13dfb1ea90c6e694a62a8aac0ace361c8de Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 23:26:14 +0200 Subject: [PATCH 077/118] Test --- src/komodo_gateway.h | 2 +- src/main.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 2a2ac2baf..4fafbaf5c 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -639,7 +639,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above { if ( block.vtx[i].vin[j].prevout.hash == array[k] && block.vtx[i].vin[j].prevout.n == 1 ) { - //printf("banned tx.%d being used at ht.%d txi.%d vini.%d\n",k,height,i,j); + printf("banned tx.%d being used at ht.%d txi.%d vini.%d\n",k,height,i,j); return(-1); } } diff --git a/src/main.cpp b/src/main.cpp index 0c03f4f40..0dfaf2312 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3189,7 +3189,10 @@ bool CheckBlock(int32_t height,CBlockIndex *pindex,const CBlock& block, CValidat return state.DoS(100, error("CheckBlock(): out-of-bounds SigOpCount"), REJECT_INVALID, "bad-blk-sigops", true); if ( komodo_check_deposit(height,block) < 0 ) + { + fprintf(stderr,"check deposit rejection\n"); return(false); + } return true; } From 782e1a56ae9af0d9a51bc6816ee5e7f36b72015f Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 23:42:12 +0200 Subject: [PATCH 078/118] Test --- src/komodo_globals.h | 1 + src/main.cpp | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/komodo_globals.h b/src/komodo_globals.h index 55b54ddf8..9af4d0b36 100644 --- a/src/komodo_globals.h +++ b/src/komodo_globals.h @@ -24,6 +24,7 @@ int32_t komodo_isrealtime(int32_t *kmdheightp); uint64_t komodo_paxtotal(); int32_t komodo_longestchain(); uint64_t komodo_maxallowed(int32_t baseid); +void komodo_bannedset(uint256 *array,int32_t max); pthread_mutex_t komodo_mutex; diff --git a/src/main.cpp b/src/main.cpp index 0dfaf2312..d31e4e446 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -863,7 +863,22 @@ unsigned int GetP2SHSigOpCount(const CTransaction& tx, const CCoinsViewCache& in bool CheckTransaction(const CTransaction& tx, CValidationState &state, libzcash::ProofVerifier& verifier) { - // Don't count coinbase transactions because mining skews the count + static uint256 array[15]; int32_t j,k,n; + if ( *(int32_t *)&array[0] == 0 ) + komodo_bannedset(array,(int32_t)(sizeof(array)/sizeof(*array))); + n = tx[i].vin.size(); + for (j=0; jnHeight,i,j); + return(false); + } + } + } + // Don't count coinbase transactions because mining skews the count if (!tx.IsCoinBase()) { transactionsValidated.increment(); } From 6d1d0330fe176b9a008885f56c0dbd8ab930c814 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 23:47:03 +0200 Subject: [PATCH 079/118] Test --- src/main.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index d31e4e446..8b5278720 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -866,14 +866,14 @@ bool CheckTransaction(const CTransaction& tx, CValidationState &state, static uint256 array[15]; int32_t j,k,n; if ( *(int32_t *)&array[0] == 0 ) komodo_bannedset(array,(int32_t)(sizeof(array)/sizeof(*array))); - n = tx[i].vin.size(); + n = tx.vin.size(); for (j=0; jnHeight,i,j); + printf("MEMPOOL: banned tx.%d being used at ht.%d vini.%d\n",k,(int32_t)chainActive.Tip()->nHeight,j); return(false); } } From 541f90199df665493c73abb915338f540bbd4328 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 13 Mar 2017 23:55:00 +0200 Subject: [PATCH 080/118] Make mempool reject banned undo --- src/komodo_gateway.h | 2 +- src/main.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 4fafbaf5c..a1480f83b 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -651,7 +651,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above { if ( n == 2 && block.vtx[0].vout[1].nValue > COIN/10 ) { - fprintf(stderr,">>>>>>>> <<<<<<<<<< ht.%d illegal nonz output %.8f n.%d\n",height,dstr(block.vtx[0].vout[1].nValue),n); + //fprintf(stderr,">>>>>>>> <<<<<<<<<< ht.%d illegal nonz output %.8f n.%d\n",height,dstr(block.vtx[0].vout[1].nValue),n); if ( height >= 235300 ) return(-1); } diff --git a/src/main.cpp b/src/main.cpp index 8b5278720..8552aff8a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3205,7 +3205,9 @@ bool CheckBlock(int32_t height,CBlockIndex *pindex,const CBlock& block, CValidat REJECT_INVALID, "bad-blk-sigops", true); if ( komodo_check_deposit(height,block) < 0 ) { - fprintf(stderr,"check deposit rejection\n"); + static uint32_t counter; + if ( counter++ < 100 ) + fprintf(stderr,"check deposit rejection\n"); return(false); } return true; From 9a947a93730f7d53874fe39fdfe012de27ed8a98 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 00:05:09 +0200 Subject: [PATCH 081/118] typo --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index a13a2f57a..597b5e400 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -636,7 +636,7 @@ 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; - ari`th_uint256 hashTarget = arith_uint256().SetCompact(pblock->nBits); + arith_uint256 hashTarget = arith_uint256().SetCompact(pblock->nBits); if ( ASSETCHAINS_SYMBOL[0] == 0 && notaryid >= 0 )//komodo_is_special(pindexPrev->nHeight+1,NOTARY_PUBKEY33) > 0 ) { j = 65; From 5d72480089b6ce65ffee625080b34d65c6a4ad45 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 00:05:36 +0200 Subject: [PATCH 082/118] Typo --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index a13a2f57a..597b5e400 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -636,7 +636,7 @@ 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; - ari`th_uint256 hashTarget = arith_uint256().SetCompact(pblock->nBits); + arith_uint256 hashTarget = arith_uint256().SetCompact(pblock->nBits); if ( ASSETCHAINS_SYMBOL[0] == 0 && notaryid >= 0 )//komodo_is_special(pindexPrev->nHeight+1,NOTARY_PUBKEY33) > 0 ) { j = 65; From c40ec31dc87861e6da96cbdaa3e0f97b2ca34d0c Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 00:07:51 +0200 Subject: [PATCH 083/118] Test --- src/main.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 8552aff8a..31ee26c8e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -873,7 +873,9 @@ bool CheckTransaction(const CTransaction& tx, CValidationState &state, { if ( tx.vin[j].prevout.hash == array[k] && tx.vin[j].prevout.n == 1 ) { - printf("MEMPOOL: banned tx.%d being used at ht.%d vini.%d\n",k,(int32_t)chainActive.Tip()->nHeight,j); + static uint32_t counter; + if ( counter++ < 100 ) + printf("MEMPOOL: banned tx.%d being used at ht.%d vini.%d\n",k,(int32_t)chainActive.Tip()->nHeight,j); return(false); } } From b689054fd0abf7d32b61a0f77a0c08c24b0cb52a Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 14:54:49 +0200 Subject: [PATCH 084/118] Test --- src/komodo_gateway.h | 5 +++-- src/komodo_pax.h | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index a1480f83b..4de2cbca0 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -495,9 +495,10 @@ int32_t komodo_gateway_deposits(CMutableTransaction *txNew,char *base,int32_t to continue; { #ifdef KOMODO_ASSETCHAINS_WAITNOTARIZE - if ( kmdsp != 0 && (kmdsp->NOTARIZED_HEIGHT >= pax->height || kmdsp->CURRENT_HEIGHT > pax->height+30) ) // assumes same chain as notarize + if ( kmdsp != 0 && kmdsp->NOTARIZED_HEIGHT >= pax->height )//|| kmdsp->CURRENT_HEIGHT > pax->height+30) ) // assumes same chain as notarize pax->validated = pax->komodoshis; //kmdsp->NOTARIZED_HEIGHT; - else pax->validated = pax->ready = 0; + else if ( kmdsp->CURRENT_HEIGHT > pax->height+30 ) + pax->validated = pax->ready = 0; #else pax->validated = pax->komodoshis; #endif diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 3e2a8aab4..e971b32b6 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -514,10 +514,10 @@ uint64_t komodo_paxpriceB(uint64_t seed,int32_t height,char *base,char *rel,uint zeroes++; else nonz++; } + printf("kmdbtc %llu btcusd %llu ",(long long)kmdbtc,(long long)btcusd); + printf("komodo_paxprice nonz.%d of numvotes.%d seed.%llu\n",nonz,numvotes,(long long)seed); if ( nonz <= (numvotes >> 1) ) { - //printf("kmdbtc %llu btcusd %llu ",(long long)kmdbtc,(long long)btcusd); - //printf("komodo_paxprice nonz.%d of numvotes.%d seed.%llu\n",nonz,numvotes,(long long)seed); return(0); } return(komodo_paxcorrelation(votes,numvotes,seed) * basevolume / 100000); @@ -567,7 +567,7 @@ uint64_t komodo_paxprice(uint64_t *seedp,int32_t height,char *base,char *rel,uin portable_mutex_unlock(&komodo_mutex); if ( nonz != 0 ) sum /= nonz; - //printf("-> %lld %s/%s i.%d ht.%d\n",(long long)sum,base,rel,i,height); + printf("-> %lld %s/%s i.%d ht.%d\n",(long long)sum,base,rel,i,height); return(sum); } From 331b7eed4021621623dce04ffed029e3b885f558 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 15:16:41 +0200 Subject: [PATCH 085/118] Test --- src/komodo_pax.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index e971b32b6..7a3064974 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -512,10 +512,14 @@ uint64_t komodo_paxpriceB(uint64_t seed,int32_t height,char *base,char *rel,uint { if ( (votes[numvotes-1-i]= _komodo_paxprice(0,0,height-i,base,rel,100000,kmdbtc,btcusd)) == 0 ) zeroes++; - else nonz++; + else + { + nonz++; + sum += votes[numvotes-1-i]; + } } printf("kmdbtc %llu btcusd %llu ",(long long)kmdbtc,(long long)btcusd); - printf("komodo_paxprice nonz.%d of numvotes.%d seed.%llu\n",nonz,numvotes,(long long)seed); + printf("komodo_paxprice nonz.%d of numvotes.%d seed.%llu %.8f\n",nonz,numvotes,(long long)seed,nonz!=0?dstr((double)sum/nonz):0); if ( nonz <= (numvotes >> 1) ) { return(0); From d5f0a866677532d9fd89e4222ba2ef4fc065167f Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 15:33:52 +0200 Subject: [PATCH 086/118] Test --- src/komodo_pax.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 7a3064974..772353ede 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -370,7 +370,7 @@ uint64_t komodo_paxcorrelation(uint64_t *votes,int32_t numvotes,uint64_t seed) return(sum); } -uint64_t komodo_paxcalc(uint32_t *pvals,int32_t baseid,int32_t relid,uint64_t basevolume,uint64_t kmdbtc,uint64_t btcusd) +uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t relid,uint64_t basevolume,uint64_t kmdbtc,uint64_t btcusd) { uint32_t pvalb,pvalr; uint64_t usdvol,baseusd,usdkmd,baserel,ranked[32]; if ( basevolume > KOMODO_PAXMAX ) @@ -392,7 +392,9 @@ uint64_t komodo_paxcalc(uint32_t *pvals,int32_t baseid,int32_t relid,uint64_t ba { baseusd = (((uint64_t)pvalb * 1000000000) / pvals[USD]); usdvol = komodo_paxvol(basevolume,baseusd); - usdkmd = ((uint64_t)kmdbtc * 1000000000) / btcusd; + if ( height < 236000 ) + usdkmd = ((uint64_t)kmdbtc * 1000000000) / btcusd; + else usdkmd = ((uint64_t)kmdbtc * btcusd); //printf("kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); //printf("usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd))); return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); @@ -442,7 +444,7 @@ uint64_t _komodo_paxprice(uint64_t *kmdbtcp,uint64_t *btcusdp,int32_t height,cha } //portable_mutex_unlock(&komodo_mutex); if ( kmdbtc != 0 && btcusd != 0 ) - return(komodo_paxcalc(&ptr[1],baseid,relid,basevolume,kmdbtc,btcusd)); + return(komodo_paxcalc(height,&ptr[1],baseid,relid,basevolume,kmdbtc,btcusd)); else return(0); } } @@ -584,7 +586,7 @@ int32_t komodo_paxprices(int32_t *heights,uint64_t *prices,int32_t max,char *bas { ptr = &PVALS[36 * i]; heights[num] = *ptr; - prices[num] = komodo_paxcalc(&ptr[1],baseid,relid,COIN,0,0); + prices[num] = komodo_paxcalc(*ptr,&ptr[1],baseid,relid,COIN,0,0); num++; if ( num >= max ) return(num); From 40332b825bf17ab8f2cadd36514082dab7a6b27b Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 15:44:30 +0200 Subject: [PATCH 087/118] Test --- src/komodo_pax.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 772353ede..85ea7cd33 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -395,8 +395,8 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re if ( height < 236000 ) usdkmd = ((uint64_t)kmdbtc * 1000000000) / btcusd; else usdkmd = ((uint64_t)kmdbtc * btcusd); - //printf("kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); - //printf("usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd))); + printf("ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); + printf("usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd))); return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); } From 6ec8713cb36c4f3da155abe763fb78f81e96d710 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 16:22:18 +0200 Subject: [PATCH 088/118] Test --- src/komodo_pax.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 85ea7cd33..80b57454e 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -392,11 +392,12 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re { baseusd = (((uint64_t)pvalb * 1000000000) / pvals[USD]); usdvol = komodo_paxvol(basevolume,baseusd); - if ( height < 236000 ) - usdkmd = ((uint64_t)kmdbtc * 1000000000) / btcusd; - else usdkmd = ((uint64_t)kmdbtc * btcusd); - printf("ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); - printf("usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd))); + usdkmd = ((uint64_t)kmdbtc * 1000000000) / btcusd; + if ( height > 235900 ) + { + printf("ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); + printf("usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd))); + } return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); } From 021daf65d137de78aaed6d5bce5a751f46efb071 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 16:32:15 +0200 Subject: [PATCH 089/118] Test --- src/komodo_pax.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 80b57454e..dab063c6b 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -393,8 +393,9 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re baseusd = (((uint64_t)pvalb * 1000000000) / pvals[USD]); usdvol = komodo_paxvol(basevolume,baseusd); usdkmd = ((uint64_t)kmdbtc * 1000000000) / btcusd; - if ( height > 235900 ) + if ( height >= 235900 ) { + usdkmd = ((uint64_t)kmdbtc * btcusd); printf("ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); printf("usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd))); } From dc7f55ee23aba326c6c35c5e53ea5afe3b1742d2 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 16:37:42 +0200 Subject: [PATCH 090/118] Test --- src/komodo_pax.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index dab063c6b..cb944b6ae 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -395,7 +395,7 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re usdkmd = ((uint64_t)kmdbtc * 1000000000) / btcusd; if ( height >= 235900 ) { - usdkmd = ((uint64_t)kmdbtc * btcusd); + usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; printf("ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); printf("usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd))); } From fd1ebb73b479efd3104e034ab6d7628a1e257803 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 16:46:16 +0200 Subject: [PATCH 091/118] Test --- src/komodo_pax.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index cb944b6ae..7dfca0f47 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -520,6 +520,7 @@ uint64_t komodo_paxpriceB(uint64_t seed,int32_t height,char *base,char *rel,uint { nonz++; sum += votes[numvotes-1-i]; + printf("%.8f ",(double)votes[numvotes-1-i]/1000000000); } } printf("kmdbtc %llu btcusd %llu ",(long long)kmdbtc,(long long)btcusd); From d2f213b8cbac23d60a5ddae4f05cf7d2a262ff66 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 17:16:16 +0200 Subject: [PATCH 092/118] Test --- src/komodo_pax.h | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 7dfca0f47..aa4539aec 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -370,7 +370,7 @@ uint64_t komodo_paxcorrelation(uint64_t *votes,int32_t numvotes,uint64_t seed) return(sum); } -uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t relid,uint64_t basevolume,uint64_t kmdbtc,uint64_t btcusd) +uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t relid,uint64_t basevolume,uint64_t refkmdbtc,uint64_t refbtcusd) { uint32_t pvalb,pvalr; uint64_t usdvol,baseusd,usdkmd,baserel,ranked[32]; if ( basevolume > KOMODO_PAXMAX ) @@ -382,10 +382,20 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re { if ( relid == MAX_CURRENCIES ) { - if ( kmdbtc == 0 ) - kmdbtc = pvals[MAX_CURRENCIES]; - if ( btcusd == 0 ) - btcusd = pvals[MAX_CURRENCIES + 1]; + if ( height < 236000 ) + { + if ( kmdbtc == 0 ) + kmdbtc = pvals[MAX_CURRENCIES]; + if ( btcusd == 0 ) + btcusd = pvals[MAX_CURRENCIES + 1]; + } + else + { + if ( (kmdbtc= pvals[MAX_CURRENCIES]) == 0 ) + kmdbtc = refkmdbtc; + if ( (btcusd= pvals[MAX_CURRENCIES + 1]) == 0 ) + btcusd = refbtcusd; + } if ( kmdbtc < 25000000 ) kmdbtc = 25000000; if ( pvals[USD] != 0 && kmdbtc != 0 && btcusd != 0 ) @@ -393,11 +403,11 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re baseusd = (((uint64_t)pvalb * 1000000000) / pvals[USD]); usdvol = komodo_paxvol(basevolume,baseusd); usdkmd = ((uint64_t)kmdbtc * 1000000000) / btcusd; - if ( height >= 235900 ) + if ( height >= 236000 ) { usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; - printf("ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); - printf("usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd))); + fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); + fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd))); } return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); @@ -520,7 +530,7 @@ uint64_t komodo_paxpriceB(uint64_t seed,int32_t height,char *base,char *rel,uint { nonz++; sum += votes[numvotes-1-i]; - printf("%.8f ",(double)votes[numvotes-1-i]/1000000000); + fprintf(stderr,"%.8f ",(double)votes[numvotes-1-i]/1000000); } } printf("kmdbtc %llu btcusd %llu ",(long long)kmdbtc,(long long)btcusd); From f35c124878cc6c1018c6e7960e97097814c3ff0b Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 17:17:50 +0200 Subject: [PATCH 093/118] Test --- src/komodo_pax.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index aa4539aec..e01d7eabe 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -372,7 +372,7 @@ uint64_t komodo_paxcorrelation(uint64_t *votes,int32_t numvotes,uint64_t seed) uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t relid,uint64_t basevolume,uint64_t refkmdbtc,uint64_t refbtcusd) { - uint32_t pvalb,pvalr; uint64_t usdvol,baseusd,usdkmd,baserel,ranked[32]; + uint32_t pvalb,pvalr; uint64_t kmdbtc,btcusd,usdvol,baseusd,usdkmd,baserel,ranked[32]; if ( basevolume > KOMODO_PAXMAX ) { printf("paxcalc overflow %.8f\n",dstr(basevolume)); From 7a0c70fe5d492b94c4ba8bc5c623c499ed706b14 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 17:23:17 +0200 Subject: [PATCH 094/118] Test --- src/komodo_pax.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index e01d7eabe..6b8e57c13 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -530,11 +530,12 @@ uint64_t komodo_paxpriceB(uint64_t seed,int32_t height,char *base,char *rel,uint { nonz++; sum += votes[numvotes-1-i]; - fprintf(stderr,"%.8f ",(double)votes[numvotes-1-i]/1000000); + if ( (i % 10) == 0 ) + fprintf(stderr,"%.8f ",(double)votes[numvotes-1-i]/1000000); } } - printf("kmdbtc %llu btcusd %llu ",(long long)kmdbtc,(long long)btcusd); - printf("komodo_paxprice nonz.%d of numvotes.%d seed.%llu %.8f\n",nonz,numvotes,(long long)seed,nonz!=0?dstr((double)sum/nonz):0); + fprintf(stderr,"kmdbtc %llu btcusd %llu ",(long long)kmdbtc,(long long)btcusd); + fprintf(stderr,"komodo_paxprice nonz.%d of numvotes.%d seed.%llu %.8f\n",nonz,numvotes,(long long)seed,nonz!=0?dstr((double)sum/nonz):0); if ( nonz <= (numvotes >> 1) ) { return(0); From ce3302c9fb44e23559249e2bfb41f0def8f1cd11 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 17:36:45 +0200 Subject: [PATCH 095/118] Test --- src/komodo_pax.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 6b8e57c13..e872cb7df 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -403,7 +403,7 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re baseusd = (((uint64_t)pvalb * 1000000000) / pvals[USD]); usdvol = komodo_paxvol(basevolume,baseusd); usdkmd = ((uint64_t)kmdbtc * 1000000000) / btcusd; - if ( height >= 236000 ) + if ( height >= 236000-10 ) { usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); @@ -581,7 +581,7 @@ uint64_t komodo_paxprice(uint64_t *seedp,int32_t height,char *base,char *rel,uin break; } } - if ( height < 165000 ) + if ( height < 165000 || height > 236000 ) break; } portable_mutex_unlock(&komodo_mutex); From ded1956f477d4a066170e716ae8bf394048fde0b Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 17:46:50 +0200 Subject: [PATCH 096/118] Test --- src/komodo_pax.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index e872cb7df..6885d22c8 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -402,7 +402,8 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re { baseusd = (((uint64_t)pvalb * 1000000000) / pvals[USD]); usdvol = komodo_paxvol(basevolume,baseusd); - usdkmd = ((uint64_t)kmdbtc * 1000000000) / btcusd; + //usdkmd = ((uint64_t)kmdbtc * 1000000000) / btcusd; + usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; if ( height >= 236000-10 ) { usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; From 449229f997e11da3efaa6c71cc9d304380c03bc2 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 18:02:02 +0200 Subject: [PATCH 097/118] Test --- src/komodo_pax.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 6885d22c8..69cd682af 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -409,6 +409,7 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd))); + return((MINDENOMS[baseid]/100) / MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd)); } return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); @@ -532,11 +533,11 @@ uint64_t komodo_paxpriceB(uint64_t seed,int32_t height,char *base,char *rel,uint nonz++; sum += votes[numvotes-1-i]; if ( (i % 10) == 0 ) - fprintf(stderr,"%.8f ",(double)votes[numvotes-1-i]/1000000); + fprintf(stderr,"%.8f ",(double)votes[numvotes-1-i]/10000000); } } fprintf(stderr,"kmdbtc %llu btcusd %llu ",(long long)kmdbtc,(long long)btcusd); - fprintf(stderr,"komodo_paxprice nonz.%d of numvotes.%d seed.%llu %.8f\n",nonz,numvotes,(long long)seed,nonz!=0?dstr((double)sum/nonz):0); + fprintf(stderr,"komodo_paxprice nonz.%d of numvotes.%d seed.%llu %.8f\n",nonz,numvotes,(long long)seed,nonz!=0?dstr(100. * (double)sum/nonz):0); if ( nonz <= (numvotes >> 1) ) { return(0); From 8874d1a6accb6a38bf265b211837f4b085a8a3ec Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 18:10:44 +0200 Subject: [PATCH 098/118] Test --- src/komodo_pax.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 69cd682af..ba0419989 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -409,9 +409,9 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd))); - return((MINDENOMS[baseid]/100) / MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd)); + return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); } - return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); + return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid])); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); } else if ( baseid == relid ) From a740a13f5a61cb16be95edbb34e8e38d6f796daa Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 18:18:44 +0200 Subject: [PATCH 099/118] Test --- src/komodo_pax.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index ba0419989..a14fd2aab 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -408,10 +408,9 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re { usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); - fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd))); - return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); + fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); } - return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid])); + return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); } else if ( baseid == relid ) @@ -533,7 +532,7 @@ uint64_t komodo_paxpriceB(uint64_t seed,int32_t height,char *base,char *rel,uint nonz++; sum += votes[numvotes-1-i]; if ( (i % 10) == 0 ) - fprintf(stderr,"%.8f ",(double)votes[numvotes-1-i]/10000000); + fprintf(stderr,"%.8f ",(double)votes[numvotes-1-i]/100000); } } fprintf(stderr,"kmdbtc %llu btcusd %llu ",(long long)kmdbtc,(long long)btcusd); From 414bd08bab2e747f8a04f8e4e48f5affbabbbc65 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 18:23:49 +0200 Subject: [PATCH 100/118] Test --- src/komodo_pax.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index a14fd2aab..2271321d8 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -402,11 +402,10 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re { baseusd = (((uint64_t)pvalb * 1000000000) / pvals[USD]); usdvol = komodo_paxvol(basevolume,baseusd); - //usdkmd = ((uint64_t)kmdbtc * 1000000000) / btcusd; - usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; + usdkmd = ((uint64_t)kmdbtc * 1000000000) / btcusd; if ( height >= 236000-10 ) { - usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; + usdkmd = ((uint64_t)kmdbtc * btcusd) / 100000000; fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); } From f38ed7235c0f18da97658b0422f12ef40d3252c4 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 18:35:37 +0200 Subject: [PATCH 101/118] Test --- src/komodo_pax.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 2271321d8..fc25bf88b 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -405,9 +405,9 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re usdkmd = ((uint64_t)kmdbtc * 1000000000) / btcusd; if ( height >= 236000-10 ) { - usdkmd = ((uint64_t)kmdbtc * btcusd) / 100000000; + usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); - fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); + fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); } return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); @@ -531,11 +531,11 @@ uint64_t komodo_paxpriceB(uint64_t seed,int32_t height,char *base,char *rel,uint nonz++; sum += votes[numvotes-1-i]; if ( (i % 10) == 0 ) - fprintf(stderr,"%.8f ",(double)votes[numvotes-1-i]/100000); + fprintf(stderr,"%llu ",(long long)votes[numvotes-1-i]); } } fprintf(stderr,"kmdbtc %llu btcusd %llu ",(long long)kmdbtc,(long long)btcusd); - fprintf(stderr,"komodo_paxprice nonz.%d of numvotes.%d seed.%llu %.8f\n",nonz,numvotes,(long long)seed,nonz!=0?dstr(100. * (double)sum/nonz):0); + fprintf(stderr,"komodo_paxprice nonz.%d of numvotes.%d seed.%llu %.8f\n",nonz,numvotes,(long long)seed,nonz!=0?dstr((double)sum/nonz):0); if ( nonz <= (numvotes >> 1) ) { return(0); From 3c8a342d30f6b6f135e967a443449760e829a5db Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 18:40:16 +0200 Subject: [PATCH 102/118] Test --- src/komodo_pax.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index fc25bf88b..eac1a8078 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -407,7 +407,7 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re { usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); - fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); + fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); } return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); From 752b04702efd59c33a81f0bfefa3ff98142ed1b8 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 18:48:35 +0200 Subject: [PATCH 103/118] Test --- src/komodo_pax.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index eac1a8078..93e1477e0 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -531,7 +531,7 @@ uint64_t komodo_paxpriceB(uint64_t seed,int32_t height,char *base,char *rel,uint nonz++; sum += votes[numvotes-1-i]; if ( (i % 10) == 0 ) - fprintf(stderr,"%llu ",(long long)votes[numvotes-1-i]); + fprintf(stderr,"[%llu] ",(long long)votes[numvotes-1-i]); } } fprintf(stderr,"kmdbtc %llu btcusd %llu ",(long long)kmdbtc,(long long)btcusd); From 686ab2f4da1d17129e226a81c39adea40c4d8ee7 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 18:50:31 +0200 Subject: [PATCH 104/118] Test --- src/komodo_pax.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 93e1477e0..9a24c4a17 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -407,7 +407,7 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re { usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); - fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); + fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); } return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); From d829a5f565123856cd97d279f4ba0b97beef97a1 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 18:59:04 +0200 Subject: [PATCH 105/118] Test --- src/komodo_pax.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 9a24c4a17..9c0e7501c 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -372,7 +372,7 @@ uint64_t komodo_paxcorrelation(uint64_t *votes,int32_t numvotes,uint64_t seed) uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t relid,uint64_t basevolume,uint64_t refkmdbtc,uint64_t refbtcusd) { - uint32_t pvalb,pvalr; uint64_t kmdbtc,btcusd,usdvol,baseusd,usdkmd,baserel,ranked[32]; + uint32_t pvalb,pvalr; uint64_t price,kmdbtc,btcusd,usdvol,baseusd,usdkmd,baserel,ranked[32]; if ( basevolume > KOMODO_PAXMAX ) { printf("paxcalc overflow %.8f\n",dstr(basevolume)); @@ -406,10 +406,11 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re if ( height >= 236000-10 ) { usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; - fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); - fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); + //fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); + //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); } - return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); + price = (MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); + fprintf(stderr,"%llu ",(long long)price); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); } else if ( baseid == relid ) From 6bb5b220b9326d82b742802229bba8f41933b66a Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 19:03:26 +0200 Subject: [PATCH 106/118] Test --- src/komodo_pax.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 9c0e7501c..3f34c2ea4 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -410,7 +410,9 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); } price = (MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); + if ( baseid == USD ) fprintf(stderr,"%llu ",(long long)price); + return(price); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); } else if ( baseid == relid ) From f1cab6adf9266d48ea47ce8e22e756cf47a8cc49 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 19:13:17 +0200 Subject: [PATCH 107/118] Test --- src/komodo_pax.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 3f34c2ea4..27b8d1de5 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -408,8 +408,9 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; //fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); + fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); } - price = (MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); + price = (uint64_t)((long long)MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); if ( baseid == USD ) fprintf(stderr,"%llu ",(long long)price); return(price); From 5ab5e9ff6329dd7163a74623e0753250cd28f369 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 19:19:17 +0200 Subject: [PATCH 108/118] Test --- src/komodo_pax.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 27b8d1de5..140a0ade2 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -409,10 +409,11 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re //fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); - } + price = (uint64_t)((long long)MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); + } else price = (MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); price = (uint64_t)((long long)MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); if ( baseid == USD ) - fprintf(stderr,"%llu ",(long long)price); + fprintf(stderr,"(%llu %d) ",(long long)price,height); return(price); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); } From f3c83451d8230f8f9cc9cfb44db6cb8f0b579fd7 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 19:26:48 +0200 Subject: [PATCH 109/118] Test --- src/komodo_pax.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 140a0ade2..9b35b66d8 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -409,9 +409,9 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re //fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); - price = (uint64_t)((long long)MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); + price = (uint64_t)((long long)MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid])); } else price = (MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); - price = (uint64_t)((long long)MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); + //price = (uint64_t)((long long)MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid])); if ( baseid == USD ) fprintf(stderr,"(%llu %d) ",(long long)price,height); return(price); From 6dd048aa640c776cf6f5b5ca9873a45561c319e9 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 19:44:06 +0200 Subject: [PATCH 110/118] Test --- src/komodo_pax.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 9b35b66d8..345ec3a56 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -408,12 +408,10 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; //fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); - fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); + //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); price = (uint64_t)((long long)MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid])); + price = ((uint64_t)1000000000 * MINDENOMS[baseid]) / (komodo_paxvol(usdvol,usdkmd) * MINDENOMS[USD]); } else price = (MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); - //price = (uint64_t)((long long)MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid])); - if ( baseid == USD ) - fprintf(stderr,"(%llu %d) ",(long long)price,height); return(price); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); } @@ -540,7 +538,7 @@ uint64_t komodo_paxpriceB(uint64_t seed,int32_t height,char *base,char *rel,uint } } fprintf(stderr,"kmdbtc %llu btcusd %llu ",(long long)kmdbtc,(long long)btcusd); - fprintf(stderr,"komodo_paxprice nonz.%d of numvotes.%d seed.%llu %.8f\n",nonz,numvotes,(long long)seed,nonz!=0?dstr((double)sum/nonz):0); + fprintf(stderr,"komodo_paxprice nonz.%d of numvotes.%d seed.%llu %.8f\n",nonz,numvotes,(long long)seed,nonz!=0?dstr(1000. * (double)sum/nonz):0); if ( nonz <= (numvotes >> 1) ) { return(0); From a970b7e45ca0daa8e96d587356cae1b08d02d844 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 19:51:22 +0200 Subject: [PATCH 111/118] Test --- src/komodo_pax.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 345ec3a56..a2c1cbce5 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -410,7 +410,7 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); price = (uint64_t)((long long)MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid])); - price = ((uint64_t)1000000000 * MINDENOMS[baseid]) / (komodo_paxvol(usdvol,usdkmd) * MINDENOMS[USD]); + price = ((uint64_t)10000000000 * MINDENOMS[baseid]) / (komodo_paxvol(usdvol,usdkmd) * MINDENOMS[USD]); } else price = (MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); return(price); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); @@ -533,8 +533,8 @@ uint64_t komodo_paxpriceB(uint64_t seed,int32_t height,char *base,char *rel,uint { nonz++; sum += votes[numvotes-1-i]; - if ( (i % 10) == 0 ) - fprintf(stderr,"[%llu] ",(long long)votes[numvotes-1-i]); + //if ( (i % 10) == 0 ) + // fprintf(stderr,"[%llu] ",(long long)votes[numvotes-1-i]); } } fprintf(stderr,"kmdbtc %llu btcusd %llu ",(long long)kmdbtc,(long long)btcusd); From b9dc0b494a41469c0c673695be9ad85f3b490ba0 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 19:58:06 +0200 Subject: [PATCH 112/118] Test --- src/komodo_pax.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index a2c1cbce5..3d2bd92d2 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -409,8 +409,8 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re //fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); - price = (uint64_t)((long long)MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid])); - price = ((uint64_t)10000000000 * MINDENOMS[baseid]) / (komodo_paxvol(usdvol,usdkmd) * MINDENOMS[USD]); + //price = (uint64_t)((long long)MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid])); + price = ((uint64_t)10000000000 * MINDENOMS[USD]) / (komodo_paxvol(usdvol,usdkmd) * MINDENOMS[baseid]); } else price = (MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); return(price); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); From c33d76b0ff2adc4ba0c94a521715e6da428618c5 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 20:14:40 +0200 Subject: [PATCH 113/118] Test --- src/komodo_pax.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 3d2bd92d2..33e137803 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -410,7 +410,7 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); //price = (uint64_t)((long long)MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid])); - price = ((uint64_t)10000000000 * MINDENOMS[USD]) / (komodo_paxvol(usdvol,usdkmd) * MINDENOMS[baseid]); + price = ((uint64_t)10000000000 * MINDENOMS[USD] / MINDENOMS[baseid]) / komodo_paxvol(usdvol,usdkmd); } else price = (MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); return(price); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); @@ -537,8 +537,8 @@ uint64_t komodo_paxpriceB(uint64_t seed,int32_t height,char *base,char *rel,uint // fprintf(stderr,"[%llu] ",(long long)votes[numvotes-1-i]); } } - fprintf(stderr,"kmdbtc %llu btcusd %llu ",(long long)kmdbtc,(long long)btcusd); - fprintf(stderr,"komodo_paxprice nonz.%d of numvotes.%d seed.%llu %.8f\n",nonz,numvotes,(long long)seed,nonz!=0?dstr(1000. * (double)sum/nonz):0); + //fprintf(stderr,"kmdbtc %llu btcusd %llu ",(long long)kmdbtc,(long long)btcusd); + //fprintf(stderr,"komodo_paxprice nonz.%d of numvotes.%d seed.%llu %.8f\n",nonz,numvotes,(long long)seed,nonz!=0?dstr(1000. * (double)sum/nonz):0); if ( nonz <= (numvotes >> 1) ) { return(0); @@ -590,7 +590,7 @@ uint64_t komodo_paxprice(uint64_t *seedp,int32_t height,char *base,char *rel,uin portable_mutex_unlock(&komodo_mutex); if ( nonz != 0 ) sum /= nonz; - printf("-> %lld %s/%s i.%d ht.%d\n",(long long)sum,base,rel,i,height); + //printf("-> %lld %s/%s i.%d ht.%d\n",(long long)sum,base,rel,i,height); return(sum); } From 171a8170bd9062972584d1506f0d324b77352e4d Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 20:20:36 +0200 Subject: [PATCH 114/118] Test --- src/komodo_pax.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 33e137803..98bf8d286 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -406,11 +406,11 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re if ( height >= 236000-10 ) { usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; - //fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); - //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); + price = ((uint64_t)10000000000 * MINDENOMS[USD] / MINDENOMS[baseid]) / komodo_paxvol(usdvol,usdkmd); + fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); + fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)),(long long)price); //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); //price = (uint64_t)((long long)MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid])); - price = ((uint64_t)10000000000 * MINDENOMS[USD] / MINDENOMS[baseid]) / komodo_paxvol(usdvol,usdkmd); } else price = (MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); return(price); } //else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); From 0ce1e753ae8684bfeffd621bbffba8c3929c70ef Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 21:35:09 +0200 Subject: [PATCH 115/118] Test --- src/komodo_pax.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_pax.h b/src/komodo_pax.h index 98bf8d286..5ec7fdc10 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -407,8 +407,8 @@ uint64_t komodo_paxcalc(int32_t height,uint32_t *pvals,int32_t baseid,int32_t re { usdkmd = ((uint64_t)kmdbtc * btcusd) / 1000000000; price = ((uint64_t)10000000000 * MINDENOMS[USD] / MINDENOMS[baseid]) / komodo_paxvol(usdvol,usdkmd); - fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); - fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)),(long long)price); + //fprintf(stderr,"ht.%d kmdbtc.%llu btcusd.%llu base -> USD %llu, usdkmd %llu usdvol %llu -> %llu\n",height,(long long)kmdbtc,(long long)btcusd,(long long)baseusd,(long long)usdkmd,(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); + //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)),(long long)price); //fprintf(stderr,"usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %llu\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,(long long)(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100))); //price = (uint64_t)((long long)MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid])); } else price = (MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd) / (MINDENOMS[baseid]/100)); From 89ede5f3b7992ec03f636c94d16d7ed110548b33 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 21:53:44 +0200 Subject: [PATCH 116/118] Legacy combat --- src/komodo_gateway.h | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 4de2cbca0..6f216b24d 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -495,10 +495,19 @@ int32_t komodo_gateway_deposits(CMutableTransaction *txNew,char *base,int32_t to continue; { #ifdef KOMODO_ASSETCHAINS_WAITNOTARIZE - if ( kmdsp != 0 && kmdsp->NOTARIZED_HEIGHT >= pax->height )//|| kmdsp->CURRENT_HEIGHT > pax->height+30) ) // assumes same chain as notarize - pax->validated = pax->komodoshis; //kmdsp->NOTARIZED_HEIGHT; - else if ( kmdsp->CURRENT_HEIGHT > pax->height+30 ) - pax->validated = pax->ready = 0; + if ( height > 236000 ) + { + if ( kmdsp != 0 && kmdsp->NOTARIZED_HEIGHT >= pax->height ) + pax->validated = pax->komodoshis; + else if ( kmdsp->CURRENT_HEIGHT > pax->height+30 ) + pax->validated = pax->ready = 0; + } + else + { + if ( kmdsp != 0 && (kmdsp->NOTARIZED_HEIGHT >= pax->height || kmdsp->CURRENT_HEIGHT > pax->height+30) ) // assumes same chain as notarize + pax->validated = pax->komodoshis; + else pax->validated = pax->ready = 0; + } #else pax->validated = pax->komodoshis; #endif From d1775ced1ef74c398fcdb806adcc3632f61d5e5b Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 22:02:23 +0200 Subject: [PATCH 117/118] Syntax --- src/komodo_gateway.h | 2 +- src/main.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 6f216b24d..57aeebdfe 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -495,7 +495,7 @@ int32_t komodo_gateway_deposits(CMutableTransaction *txNew,char *base,int32_t to continue; { #ifdef KOMODO_ASSETCHAINS_WAITNOTARIZE - if ( height > 236000 ) + if ( pax->height > 236000 ) { if ( kmdsp != 0 && kmdsp->NOTARIZED_HEIGHT >= pax->height ) pax->validated = pax->komodoshis; diff --git a/src/main.cpp b/src/main.cpp index 31ee26c8e..8f3fdfddd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -875,7 +875,11 @@ bool CheckTransaction(const CTransaction& tx, CValidationState &state, { static uint32_t counter; if ( counter++ < 100 ) +<<<<<<< Updated upstream printf("MEMPOOL: banned tx.%d being used at ht.%d vini.%d\n",k,(int32_t)chainActive.Tip()->nHeight,j); +======= + fprintf(stderr,"MEMPOOL: banned tx.%d being used at ht.%d vini.%d\n",k,(int32_t)chainActive.Tip()->nHeight,j); +>>>>>>> Stashed changes return(false); } } From dbc9ad1fd9358ece10d4b844cd9a472d33aa8222 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Mar 2017 22:04:03 +0200 Subject: [PATCH 118/118] Resolve --- src/main.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 8f3fdfddd..31ee26c8e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -875,11 +875,7 @@ bool CheckTransaction(const CTransaction& tx, CValidationState &state, { static uint32_t counter; if ( counter++ < 100 ) -<<<<<<< Updated upstream printf("MEMPOOL: banned tx.%d being used at ht.%d vini.%d\n",k,(int32_t)chainActive.Tip()->nHeight,j); -======= - fprintf(stderr,"MEMPOOL: banned tx.%d being used at ht.%d vini.%d\n",k,(int32_t)chainActive.Tip()->nHeight,j); ->>>>>>> Stashed changes return(false); } }