|
|
@ -404,30 +404,35 @@ UniValue setgenerate(const UniValue& params, bool fHelp) |
|
|
|
#endif |
|
|
|
|
|
|
|
CBlockIndex *komodo_chainactive(int32_t height); |
|
|
|
arith_uint256 zawy_ctB(arith_uint256 bnTarget,uint32_t solvetime); |
|
|
|
|
|
|
|
UniValue genminingCSV(const UniValue& params, bool fHelp) |
|
|
|
{ |
|
|
|
int32_t i,z,height; uint32_t prevtime=0; FILE *fp; char str[65],str2[65],fname[256]; uint256 hash; arith_uint256 bnTarget; CBlockIndex *pindex; bool fNegative,fOverflow; UniValue result(UniValue::VOBJ); |
|
|
|
int32_t i,z,height; uint32_t solvetime,prevtime=0; FILE *fp; char str[65],str2[65],fname[256]; uint256 hash; arith_uint256 bnTarget; CBlockIndex *pindex; bool fNegative,fOverflow; UniValue result(UniValue::VOBJ); |
|
|
|
if (fHelp || params.size() != 0 ) |
|
|
|
throw runtime_error("genminingCSV\n"); |
|
|
|
LOCK(cs_main); |
|
|
|
sprintf(fname,"%s_mining.csv",ASSETCHAINS_SYMBOL[0] == 0 ? "KMD" : ASSETCHAINS_SYMBOL); |
|
|
|
if ( (fp= fopen(fname,"wb")) != 0 ) |
|
|
|
{ |
|
|
|
fprintf(fp,"height,nTime,nBits,bnTarget,blockhash,diff,netdiff,solvetime\n"); |
|
|
|
fprintf(fp,"height,nTime,nBits,bnTarget,bnTargetB,diff,netdiff,solvetime\n"); |
|
|
|
height = komodo_nextheight(); |
|
|
|
for (i=0; i<height; i++) |
|
|
|
{ |
|
|
|
if ( (pindex= komodo_chainactive(i)) != 0 ) |
|
|
|
{ |
|
|
|
bnTarget.SetCompact(pindex->nBits,&fNegative,&fOverflow); |
|
|
|
solvetime = (prevtime==0) ? 0 : (int32_t)(pindex->nTime - prevtime); |
|
|
|
for (z=0; z<16; z++) |
|
|
|
sprintf(&str[z<<1],"%02x",((uint8_t *)&bnTarget)[31-z]); |
|
|
|
str[32] = 0; |
|
|
|
hash = pindex->GetBlockHash(); |
|
|
|
//hash = pindex->GetBlockHash();
|
|
|
|
memset(&hash,0,sizeof(hash)); |
|
|
|
if ( (pindex->nBits & 3) != 0 ) |
|
|
|
hash = zawy_ctB(bnTarget,solvetime); |
|
|
|
for (z=0; z<16; z++) |
|
|
|
sprintf(&str2[z<<1],"%02x",((uint8_t *)&hash)[31-z]); |
|
|
|
str2[32] = 0; fprintf(fp,"%d,%u,%08x,%s,%s,%.1f,%.1f,%d\n",i,pindex->nTime,pindex->nBits,str,str2,GetDifficulty(pindex),GetNetworkDifficulty(pindex),prevtime==0?0:(int32_t)(pindex->nTime-prevtime)); |
|
|
|
str2[32] = 0; fprintf(fp,"%d,%u,%08x,%s,%s,%.1f,%.1f,%d\n",i,pindex->nTime,pindex->nBits,str,str2,GetDifficulty(pindex),GetNetworkDifficulty(pindex),solvetime); |
|
|
|
prevtime = pindex->nTime; |
|
|
|
} |
|
|
|
} |
|
|
|