From 8c22eb466fc9326c824973fc54b6c764f833ce65 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 8 Nov 2016 15:36:44 -0300 Subject: [PATCH] test --- src/komodo_globals.h | 2 +- src/miner.cpp | 5 ++++- src/pow.cpp | 8 ++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/komodo_globals.h b/src/komodo_globals.h index e0516aa31..ef503c0e0 100644 --- a/src/komodo_globals.h +++ b/src/komodo_globals.h @@ -15,7 +15,7 @@ int COINBASE_MATURITY = 100; -int32_t IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY; +int32_t IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE; std::string NOTARY_PUBKEY; uint8_t NOTARY_PUBKEY33[33]; diff --git a/src/miner.cpp b/src/miner.cpp index a30877aec..6cfc35c55 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -436,7 +436,7 @@ void IncrementExtraNonce(CBlock* pblock, CBlockIndex* pindexPrev, unsigned int& // Internal miner // #define ROUNDROBIN_DELAY 10 -extern int32_t IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY; +extern int32_t IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE; extern std::string NOTARY_PUBKEY; extern uint8_t NOTARY_PUBKEY33[33]; uint32_t Mining_start,Mining_height; @@ -594,6 +594,7 @@ void static BitcoinMiner(CWallet *pwallet) { //fprintf(stderr,"%s start mining loop\n",ASSETCHAINS_SYMBOL); // Hash state + KOMODO_CHOSEN_ONE = 0; crypto_generichash_blake2b_state state; EhInitialiseState(n, k, state); // I = the block header minus nonce and solution. @@ -626,6 +627,7 @@ void static BitcoinMiner(CWallet *pwallet) { printf("Round robin diff sleep %d\n",(int32_t)(Mining_start+ROUNDROBIN_DELAY-time(NULL))); sleep(Mining_start+ROUNDROBIN_DELAY-time(NULL)); + KOMODO_CHOSEN_ONE = 1; } // Found a solution SetThreadPriority(THREAD_PRIORITY_NORMAL); @@ -636,6 +638,7 @@ void static BitcoinMiner(CWallet *pwallet) std::lock_guard lock{m_cs}; cancelSolver = false; } + KOMODO_CHOSEN_ONE = 0; int32_t i; uint256 hash = pblock->GetHash(); for (i=0; i<32; i++) fprintf(stderr,"%02x",((uint8_t *)&hash)[i]); diff --git a/src/pow.cpp b/src/pow.cpp index 8945a590c..650bfcb7a 100644 --- a/src/pow.cpp +++ b/src/pow.cpp @@ -138,6 +138,14 @@ bool CheckProofOfWork(int32_t height,uint8_t *pubkey33,uint256 hash, unsigned in flag = 1; } //else bnTarget /= 8; } + else if ( height == 0 && KOMODO_CHOSEN_ONE != 0 ) + { + bnTarget.SetCompact(KOMODO_MINDIFF_NBITS,&fNegative,&fOverflow); + memcpy(pubkey33,NOTARY_PUBKEY33,33); + special = 1; + notaryid = -1; + printf("KOMODO_CHOSEN_ONE -> MINDIFF\n"); + } // Check range if (fNegative || bnTarget == 0 || fOverflow || bnTarget > UintToArith256(params.powLimit)) return error("CheckProofOfWork(): nBits below minimum work");