|
|
@ -61,10 +61,18 @@ void dpow_checkpointset(struct supernet_info *myinfo,struct dpow_checkpoint *che |
|
|
|
void dpow_srcupdate(struct supernet_info *myinfo,struct dpow_info *dp,int32_t height,bits256 hash,uint32_t timestamp,uint32_t blocktime) |
|
|
|
{ |
|
|
|
//struct komodo_ccdataMoMoM mdata; cJSON *blockjson; uint64_t signedmask; struct iguana_info *coin;
|
|
|
|
void **ptrs; char str[65]; struct dpow_checkpoint checkpoint; int32_t i,ht; struct dpow_block *bp; |
|
|
|
void **ptrs; char str[65]; struct dpow_checkpoint checkpoint; int32_t i,ht,suppress=0; struct dpow_block *bp; |
|
|
|
dpow_checkpointset(myinfo,&dp->last,height,hash,timestamp,blocktime); |
|
|
|
checkpoint = dp->srcfifo[dp->srcconfirms]; |
|
|
|
dpow_fifoupdate(myinfo,dp->srcfifo,dp->last); |
|
|
|
if ( strcmp(dp->dest,"KMD") == 0 ) |
|
|
|
{ |
|
|
|
if ( dp->DESTHEIGHT < dp->prevDESTHEIGHT+DPOW_CHECKPOINTFREQ ) |
|
|
|
{ |
|
|
|
suppress = 1; |
|
|
|
fprintf(stderr,"suppress %s -> KMD\n",dp->symbol); |
|
|
|
} |
|
|
|
} |
|
|
|
/*if ( strcmp(dp->dest,"KMD") == 0 )//|| strcmp(dp->dest,"CHAIN") == 0 )
|
|
|
|
{ |
|
|
|
//if ( dp->SRCREALTIME == 0 )
|
|
|
@ -109,11 +117,12 @@ void dpow_srcupdate(struct supernet_info *myinfo,struct dpow_info *dp,int32_t he |
|
|
|
}*/ |
|
|
|
if ( dp->freq <= 0 ) |
|
|
|
dp->freq = 1; |
|
|
|
if ( bits256_nonz(checkpoint.blockhash.hash) != 0 && (checkpoint.blockhash.height % dp->freq) == 0 ) |
|
|
|
if ( suppress == 0 && bits256_nonz(checkpoint.blockhash.hash) != 0 && (checkpoint.blockhash.height % dp->freq) == 0 ) |
|
|
|
{ |
|
|
|
if ( (0) && strcmp("KMD",dp->symbol) == 0 ) |
|
|
|
printf("%s/%s src ht.%d dest.%u nonz.%d %s minsigs.%d freq.%d\n",dp->symbol,dp->dest,checkpoint.blockhash.height,dp->destupdated,bits256_nonz(checkpoint.blockhash.hash),bits256_str(str,dp->last.blockhash.hash),dp->minsigs,dp->freq); |
|
|
|
dpow_heightfind(myinfo,dp,checkpoint.blockhash.height + 1000); |
|
|
|
dp->prevDESTHEIGHT = dp->DESTHEIGHT; |
|
|
|
ptrs = calloc(1,sizeof(void *)*5 + sizeof(struct dpow_checkpoint) + sizeof(pthread_t)); |
|
|
|
ptrs[0] = (void *)myinfo; |
|
|
|
ptrs[1] = (void *)dp; |
|
|
@ -184,6 +193,7 @@ void dpow_destconfirm(struct supernet_info *myinfo,struct dpow_info *dp,struct d |
|
|
|
void dpow_destupdate(struct supernet_info *myinfo,struct dpow_info *dp,int32_t height,bits256 hash,uint32_t timestamp,uint32_t blocktime) |
|
|
|
{ |
|
|
|
dp->destupdated = timestamp; |
|
|
|
dp->DESTHEIGHT = height; |
|
|
|
dpow_checkpointset(myinfo,&dp->destchaintip,height,hash,timestamp,blocktime); |
|
|
|
dpow_approvedset(myinfo,dp,&dp->destchaintip,dp->desttx,dp->numdesttx); |
|
|
|
dpow_fifoupdate(myinfo,dp->destfifo,dp->destchaintip); |
|
|
|