Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
392957a2a5
  1. 20
      iguana/iguana_bundles.c

20
iguana/iguana_bundles.c

@ -654,16 +654,16 @@ int32_t iguana_bundleready(struct iguana_info *coin,struct iguana_bundle *bp)
int32_t iguana_bundleissuemissing(struct iguana_info *coin,struct iguana_bundle *bp,uint8_t *missings,int32_t priority,double mult) int32_t iguana_bundleissuemissing(struct iguana_info *coin,struct iguana_bundle *bp,uint8_t *missings,int32_t priority,double mult)
{ {
int32_t i,tmp,tmp2,n=0; bits256 hash2; double aveduration; int32_t i,tmp,num,tmp2,n=0; bits256 hash2; double aveduration; struct iguana_peer *addr;
if ( bp->emitfinish != 0 || (priority == 0 && time(NULL) < bp->missingstime+30) ) if ( bp->emitfinish != 0 || (priority == 0 && time(NULL) < bp->missingstime+30) )
return(0); return(0);
if ( bp->durationscount != 0 ) if ( bp->durationscount != 0 )
aveduration = (double)bp->totaldurations / bp->durationscount; aveduration = (double)bp->totaldurations / bp->durationscount;
else aveduration = IGUANA_DEFAULTLAG/3 + 1; else aveduration = IGUANA_DEFAULTLAG/3 + 1;
aveduration *= mult; aveduration *= mult;
if ( 1 || priority == 3 ) if ( priority == 3 )
n = iguana_bundlerequests(coin,missings,&tmp,&tmp2,mult,bp,priority); n = iguana_bundlerequests(coin,missings,&tmp,&tmp2,mult,bp,priority);
else if ( 0 ) else
{ {
for (i=0; i<bp->n; i++) for (i=0; i<bp->n; i++)
{ {
@ -678,7 +678,9 @@ int32_t iguana_bundleissuemissing(struct iguana_info *coin,struct iguana_bundle
{ {
if ( 0 && bp == coin->current ) if ( 0 && bp == coin->current )
printf("iguana_bundleissuemissing.[%d:%d]\n",bp->hdrsi,i); printf("iguana_bundleissuemissing.[%d:%d]\n",bp->hdrsi,i);
iguana_blockQ("missings",coin,bp,i,hash2,1); if ( (num= coin->peers.numranked) != 0 && (addr= coin->peers.ranked[rand() % num]) != 0 && addr->usock >= 0 && addr->dead == 0 )
iguana_sendblockreqPT(coin,addr,bp,i,hash2,0);
//iguana_blockQ("missings",coin,bp,i,hash2,1);
n++; n++;
} }
} }
@ -1002,14 +1004,14 @@ double iguana_bundlemissings(struct iguana_info *coin,struct iguana_bundle *bp,d
printf("priority.%d [%d] dist.%d durations %.2f vs %.2f counts[%d %d] \n",priority,bp->hdrsi,dist,aveduration,aveduplicates,(int32_t)bp->durationscount,bp->duplicatescount); printf("priority.%d [%d] dist.%d durations %.2f vs %.2f counts[%d %d] \n",priority,bp->hdrsi,dist,aveduration,aveduplicates,(int32_t)bp->durationscount,bp->duplicatescount);
} }
if ( aveduration != 0. ) if ( aveduration != 0. )
mult = ((bp == coin->current) ? (strcmp("BTC",coin->symbol) != 0 ? .5 : 2) : 7.); mult = ((bp == coin->current) ? (strcmp("BTC",coin->symbol) != 0 ? 1. : 3) : 7.);
else mult = 3.; else mult = 5.;
if ( mult > 2 && bp->numcached > .95*bp->n ) /*if ( mult > 2 && bp->numcached > .95*bp->n )
{ {
if ( bp->numcached > .99*bp->n ) if ( bp->numcached > .99*bp->n )
mult = 2.; mult = 2.;
else mult = 1.; else mult = 1.;
} }*/
if ( bp->numissued < bp->n ) if ( bp->numissued < bp->n )
max = bp->numissued; max = bp->numissued;
else max = bp->origmissings; else max = bp->origmissings;
@ -1228,7 +1230,7 @@ void iguana_bundlestats(struct iguana_info *coin,char *str,int32_t lag)
if ( bp->durationscount != 0 ) if ( bp->durationscount != 0 )
aveduration = (double)bp->totaldurations / bp->durationscount; aveduration = (double)bp->totaldurations / bp->durationscount;
else aveduration = IGUANA_DEFAULTLAG/3 + 1; else aveduration = IGUANA_DEFAULTLAG/3 + 1;
if ( (n= iguana_bundlerequests(coin,missings,&tmp,&tmp2,1.,bp,priority)) > 0 ) if ( (n= iguana_bundlerequests(coin,missings,&tmp,&tmp2,3.,bp,priority)) > 0 )
printf("issued %d priority requests [%d] to unstick stuckiters.%d lag.%d\n",n,bp->hdrsi,coin->stuckiters,lag); printf("issued %d priority requests [%d] to unstick stuckiters.%d lag.%d\n",n,bp->hdrsi,coin->stuckiters,lag);
//else printf("no bundlerequests issued\n"); //else printf("no bundlerequests issued\n");
} }

Loading…
Cancel
Save