|
|
@ -112,6 +112,7 @@ extern std::string NOTARY_PUBKEY,ASSETCHAINS_OVERRIDE_PUBKEY; |
|
|
|
|
|
|
|
extern uint8_t NOTARY_PUBKEY33[33],ASSETCHAINS_OVERRIDE_PUBKEY33[33]; |
|
|
|
uint32_t Mining_start,Mining_height; |
|
|
|
int32_t My_notaryid = -1; |
|
|
|
int32_t komodo_chosennotary(int32_t *notaryidp,int32_t height,uint8_t *pubkey33,uint32_t timestamp); |
|
|
|
int32_t komodo_pax_opreturn(int32_t height,uint8_t *opret,int32_t maxsize); |
|
|
|
//uint64_t komodo_paxtotal();
|
|
|
@ -472,13 +473,21 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn,int32_t gpucount) |
|
|
|
} |
|
|
|
pblock->nSolution.clear(); |
|
|
|
pblocktemplate->vTxSigOps[0] = GetLegacySigOpCount(pblock->vtx[0]); |
|
|
|
if ( ASSETCHAINS_SYMBOL[0] == 0 && NOTARY_PUBKEY33[0] != 0 ) |
|
|
|
if ( ASSETCHAINS_SYMBOL[0] == 0 && NOTARY_PUBKEY33[0] != 0 && My_notaryid >= 0 ) |
|
|
|
{ |
|
|
|
uint32_t r; |
|
|
|
CMutableTransaction txNotary = CreateNewContextualCMutableTransaction(Params().GetConsensus(), chainActive.Height() + 1); |
|
|
|
if ( pblock->nTime < pindexPrev->nTime+60 ) |
|
|
|
pblock->nTime = pindexPrev->nTime + 60; |
|
|
|
if ( gpucount < 33 ) |
|
|
|
pblock->nTime += (rand() % (33 - gpucount)*(33 - gpucount)); |
|
|
|
{ |
|
|
|
uint8_t tmpbuffer[40]; int32_t n=0; bits256 randvals; |
|
|
|
memcpy(&tmpbuffer[n],&My_notaryid,sizeof(My_notaryid)), n += sizeof(My_notaryid); |
|
|
|
memcpy(&tmpbuffer[n],&Mining_height,sizeof(Mining_height)), n += sizeof(Mining_height); |
|
|
|
memcpy(&tmpbuffer[n],&pblock->hashPrevBlock,sizeof(pblock->hashPrevBlock)), n += sizeof(pblock->hashPrevBlock); |
|
|
|
vcalc_sha256(0,randvals.bytes,tmpbuffer,n); |
|
|
|
pblock->nTime += (randvals.uints[0] % (33 - gpucount)*(33 - gpucount)); |
|
|
|
} |
|
|
|
if ( komodo_notaryvin(txNotary,NOTARY_PUBKEY33) > 0 ) |
|
|
|
{ |
|
|
|
CAmount txfees = 5000; |
|
|
@ -729,7 +738,8 @@ void static BitcoinMiner() |
|
|
|
break; |
|
|
|
} |
|
|
|
komodo_chosennotary(¬aryid,chainActive.Tip()->nHeight,NOTARY_PUBKEY33,(uint32_t)chainActive.Tip()->GetBlockTime()); |
|
|
|
|
|
|
|
if ( notaryid != My_notaryid ) |
|
|
|
My_notaryid = notaryid; |
|
|
|
std::string solver; |
|
|
|
//if ( notaryid >= 0 || ASSETCHAINS_SYMBOL[0] != 0 )
|
|
|
|
solver = "tromp"; |
|
|
|