Merge pull request #689 from jl777/jl777
-genjson option for komodo_port.c much faster convergence for PoS/Pow ratio, but it will break any existing test chains
This commit is contained in:
11
src/komodo.h
11
src/komodo.h
@@ -598,14 +598,15 @@ int32_t komodo_voutupdate(int32_t *isratificationp,int32_t notaryid,uint8_t *scr
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if ( scriptbuf[len] == 'K' )
|
||||||
|
{
|
||||||
|
fprintf(stderr,"i.%d j.%d KV OPRET len.%d %.8f\n",i,j,opretlen,dstr(value));
|
||||||
|
komodo_stateupdate(height,0,0,0,txhash,0,0,0,0,0,0,value,&scriptbuf[len],opretlen,j,zero,0);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
if ( strcmp(ASSETCHAINS_SYMBOL,(char *)&scriptbuf[len+32*2+4]) == 0 )
|
if ( strcmp(ASSETCHAINS_SYMBOL,(char *)&scriptbuf[len+32*2+4]) == 0 )
|
||||||
matched = 1;
|
matched = 1;
|
||||||
}
|
}
|
||||||
if ( scriptbuf[len] == 'K' )
|
|
||||||
{
|
|
||||||
fprintf(stderr,"i.%d j.%d KV OPRET len.%d %.8f\n",i,j,opretlen,dstr(value));
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
offset = 32 * (1 + matched) + 4;
|
offset = 32 * (1 + matched) + 4;
|
||||||
nameoffset = (int32_t)strlen((char *)&scriptbuf[len+offset]);
|
nameoffset = (int32_t)strlen((char *)&scriptbuf[len+offset]);
|
||||||
nameoffset++;
|
nameoffset++;
|
||||||
|
|||||||
@@ -1197,7 +1197,7 @@ arith_uint256 komodo_PoWtarget(int32_t *percPoSp,arith_uint256 target,int32_t he
|
|||||||
} else return(target);
|
} else return(target);
|
||||||
if ( percPoS < goalperc ) // increase PoW diff -> lower bnTarget
|
if ( percPoS < goalperc ) // increase PoW diff -> lower bnTarget
|
||||||
{
|
{
|
||||||
bnTarget = (ave * arith_uint256(percPoS * percPoS)) / arith_uint256((goalperc) * (goalperc));
|
bnTarget = (ave * arith_uint256(percPoS * percPoS)) / arith_uint256(goalperc * goalperc * goalperc);
|
||||||
if ( 1 )
|
if ( 1 )
|
||||||
{
|
{
|
||||||
for (i=31; i>=24; i--)
|
for (i=31; i>=24; i--)
|
||||||
|
|||||||
@@ -747,17 +747,18 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block,uint32_t prevtim
|
|||||||
if ( ASSETCHAINS_COMMISSION != 0 && height > 1 )
|
if ( ASSETCHAINS_COMMISSION != 0 && height > 1 )
|
||||||
{
|
{
|
||||||
if ( (checktoshis= komodo_checkcommission((CBlock *)&block,height)) < 0 )
|
if ( (checktoshis= komodo_checkcommission((CBlock *)&block,height)) < 0 )
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ( overflow != 0 || total > checktoshis || strangeout != 0 )
|
|
||||||
{
|
{
|
||||||
if ( strangeout != 0 )
|
fprintf(stderr,"ht.%d checktoshis %.8f overflow.%d total %.8f strangeout.%d\n",height,dstr(checktoshis),overflow,dstr(total),strangeout);
|
||||||
fprintf(stderr,">>>>>>>>>>>>> %s DUST ht.%d strangout.%d notmatched.%d <<<<<<<<<\n",ASSETCHAINS_SYMBOL,height,strangeout,notmatched);
|
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ( height >= 2 && (overflow != 0 || total > checktoshis || strangeout != 0) )
|
||||||
|
{
|
||||||
|
fprintf(stderr,"checkdeposit: ht.%d checktoshis %.8f overflow.%d total %.8f strangeout.%d\n",height,dstr(checktoshis),overflow,dstr(total),strangeout);
|
||||||
|
if ( strangeout != 0 )
|
||||||
|
fprintf(stderr,">>>>>>>>>>>>> %s DUST ht.%d strangout.%d notmatched.%d <<<<<<<<<\n",ASSETCHAINS_SYMBOL,height,strangeout,notmatched);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ void komodo_kvupdate(uint8_t *opretbuf,int32_t opretlen,uint64_t value)
|
|||||||
if ( keylen+13 > opretlen )
|
if ( keylen+13 > opretlen )
|
||||||
{
|
{
|
||||||
static uint32_t counter;
|
static uint32_t counter;
|
||||||
if ( ++counter < 100 )
|
if ( ++counter < 1 )
|
||||||
fprintf(stderr,"komodo_kvupdate: keylen.%d + 13 > opretlen.%d, this can be ignored\n",keylen,opretlen);
|
fprintf(stderr,"komodo_kvupdate: keylen.%d + 13 > opretlen.%d, this can be ignored\n",keylen,opretlen);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -826,7 +826,7 @@ uint16_t komodo_calcport(char *name,uint64_t supply,uint64_t endsubsidy,uint64_t
|
|||||||
|
|
||||||
int main(int argc, char * argv[])
|
int main(int argc, char * argv[])
|
||||||
{
|
{
|
||||||
uint16_t rpcport; int32_t i,j,offset=0,num = 1; uint64_t supply=10,commission=0,endsubsidy,reward,halving,decay; uint8_t *allocated=0,staked=0; uint32_t cc = 1;
|
uint16_t rpcport; int32_t i,j,offset=0,jsonflag=0,num = 1; uint64_t supply=10,commission=0,endsubsidy,reward,halving,decay; uint8_t *allocated=0,staked=0; uint32_t cc = 3;
|
||||||
endsubsidy = reward = halving = decay = 0;
|
endsubsidy = reward = halving = decay = 0;
|
||||||
if ( argc < 2 )
|
if ( argc < 2 )
|
||||||
{
|
{
|
||||||
@@ -835,9 +835,11 @@ int main(int argc, char * argv[])
|
|||||||
printf("%s -gen num name supply endsubsidy reward halving decay\n",argv[0]);
|
printf("%s -gen num name supply endsubsidy reward halving decay\n",argv[0]);
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
if ( strcmp(argv[1],"-gen") == 0 )
|
if ( strncmp(argv[1],"-gen",3) == 0 )
|
||||||
{
|
{
|
||||||
num = atoi(argv[2]);
|
num = atoi(argv[2]);
|
||||||
|
if ( strcmp(argv[1],"-genjson") == 0 )
|
||||||
|
jsonflag = 1;
|
||||||
offset = 2;
|
offset = 2;
|
||||||
allocated = calloc(1,1 << 16);
|
allocated = calloc(1,1 << 16);
|
||||||
}
|
}
|
||||||
@@ -852,7 +854,7 @@ int main(int argc, char * argv[])
|
|||||||
if ( argc > offset + 6 )
|
if ( argc > offset + 6 )
|
||||||
decay = (long long)atof(argv[offset + 6]);
|
decay = (long long)atof(argv[offset + 6]);
|
||||||
rpcport = 1 + komodo_calcport(argv[offset + 1],supply,endsubsidy,reward,halving,decay,commission,staked,cc);
|
rpcport = 1 + komodo_calcport(argv[offset + 1],supply,endsubsidy,reward,halving,decay,commission,staked,cc);
|
||||||
printf("./komodod -ac_name=%s -ac_cc=%u -ac_supply=%llu -ac_end=%llu -ac_reward=%llu -ac_halving=%llu -ac_decay=%llu & # rpcport %u\n",argv[offset + 1],cc,(long long)supply,(long long)endsubsidy,(long long)reward,(long long)halving,(long long)decay,rpcport);
|
printf("./komodod -ac_name=%s -ac_cc=%u -ac_supply=%llu -ac_end=%llu -ac_reward=%llu -ac_halving=%llu -ac_decay=%llu & # rpcport %u\n[",argv[offset + 1],cc,(long long)supply,(long long)endsubsidy,(long long)reward,(long long)halving,(long long)decay,rpcport);
|
||||||
if ( allocated != 0 )
|
if ( allocated != 0 )
|
||||||
{
|
{
|
||||||
char name[64],newname[64];
|
char name[64],newname[64];
|
||||||
@@ -868,7 +870,14 @@ int main(int argc, char * argv[])
|
|||||||
rpcport = 1 + komodo_calcport(newname,supply+j,endsubsidy,reward,halving,decay,commission,staked,cc);
|
rpcport = 1 + komodo_calcport(newname,supply+j,endsubsidy,reward,halving,decay,commission,staked,cc);
|
||||||
if ( allocated[rpcport] == 0 && allocated[rpcport-1] == 0 )
|
if ( allocated[rpcport] == 0 && allocated[rpcport-1] == 0 )
|
||||||
{
|
{
|
||||||
printf("./komodod -ac_name=%s -ac_cc=%u -ac_supply=%llu -ac_end=%llu -ac_reward=%llu -ac_halving=%llu -ac_decay=%llu & # rpcport %u\n",newname,cc,(long long)supply+j,(long long)endsubsidy,(long long)reward,(long long)halving,(long long)decay,rpcport);
|
if ( jsonflag == 0 )
|
||||||
|
{
|
||||||
|
printf("./komodod -ac_name=%s -ac_cc=%u -ac_supply=%llu -ac_end=%llu -ac_reward=%llu -ac_halving=%llu -ac_decay=%llu & # rpcport %u\n",newname,cc,(long long)supply+j,(long long)endsubsidy,(long long)reward,(long long)halving,(long long)decay,rpcport);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("{ \"assetname\": \"%s\", \"p2p\": %u, \"rpc\": %u, \"supply\": %llu, \"ac_cc\": %u, \"ac_reward\": %llu, \"notarize\": %s }%s ",newname,rpcport-1,rpcport,(long long)supply+j,cc,(long long)reward,i<64?"true":"false",i<num-1?",":"");
|
||||||
|
}
|
||||||
allocated[rpcport] = 1;
|
allocated[rpcport] = 1;
|
||||||
allocated[rpcport-1] = 1;
|
allocated[rpcport-1] = 1;
|
||||||
break;
|
break;
|
||||||
@@ -878,5 +887,6 @@ int main(int argc, char * argv[])
|
|||||||
}
|
}
|
||||||
free(allocated);
|
free(allocated);
|
||||||
}
|
}
|
||||||
|
printf("]\n");
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3779,7 +3779,7 @@ bool CheckBlockHeader(int32_t *futureblockp,int32_t height,CBlockIndex *pindex,
|
|||||||
{
|
{
|
||||||
if (blockhdr.GetBlockTime() < GetAdjustedTime() + 600)
|
if (blockhdr.GetBlockTime() < GetAdjustedTime() + 600)
|
||||||
*futureblockp = 1;
|
*futureblockp = 1;
|
||||||
LogPrintf("CheckBlockHeader block from future %d error",blockhdr.GetBlockTime() - GetAdjustedTime());
|
//LogPrintf("CheckBlockHeader block from future %d error",blockhdr.GetBlockTime() - GetAdjustedTime());
|
||||||
return false; //state.Invalid(error("CheckBlockHeader(): block timestamp too far in the future"),REJECT_INVALID, "time-too-new");
|
return false; //state.Invalid(error("CheckBlockHeader(): block timestamp too far in the future"),REJECT_INVALID, "time-too-new");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user