Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
ec1de82813
  1. 55
      iguana/iguana_bundles.c

55
iguana/iguana_bundles.c

@ -497,45 +497,48 @@ void iguana_bundlestats(struct iguana_info *coin,char *str)
sortds(&coin->rankedbps[0][0],n,sizeof(coin->rankedbps[0])); sortds(&coin->rankedbps[0][0],n,sizeof(coin->rankedbps[0]));
for (i=0; i<coin->peers.numranked; i++) for (i=0; i<coin->peers.numranked; i++)
{ {
if ( (addr= coin->peers.ranked[i]) != 0 ) if ( (addr= coin->peers.ranked[i]) != 0 && addr->msgcounts.verack > 0 )
pend += addr->pendblocks; pend += addr->pendblocks;
} }
origissue = (_IGUANA_MAXPENDING*coin->peers.numranked - pend); if ( pend > 0 )
if ( origissue < 8 )
origissue = 8;
issue = origissue;
while ( issue > 0 && m++ < 100 )
{ {
now = (uint32_t)time(NULL); origissue = (_IGUANA_MAXPENDING*coin->peers.numranked - pend);
for (i=0; i<n; i++) if ( origissue < 8 )
origissue = 8;
issue = origissue;
while ( issue > 0 && m++ < 100 )
{ {
if ( (bp= coin->bundles[(int32_t)coin->rankedbps[i][1]]) != 0 ) now = (uint32_t)time(NULL);
for (i=0; i<n; i++)
{ {
for (j=0; j<bp->n; j++) if ( (bp= coin->bundles[(int32_t)coin->rankedbps[i][1]]) != 0 )
{ {
if ( bits256_nonz(bp->hashes[j]) > 0 && (block= bp->blocks[j]) != 0 ) for (j=0; j<bp->n; j++)
{ {
//printf("j.%d bp.%d %d %x lag.%d\n",j,bp->minrequests,block->numrequests,block->fpipbits,now - bp->issued[j]); if ( bits256_nonz(bp->hashes[j]) > 0 && (block= bp->blocks[j]) != 0 )
if ( block->numrequests <= bp->minrequests && block->fpipbits == 0 && (bp->issued[j] == 0 || now > bp->issued[j]+60) )
{ {
printf("%d:%d.%d ",bp->hdrsi,j,block->numrequests); //printf("j.%d bp.%d %d %x lag.%d\n",j,bp->minrequests,block->numrequests,block->fpipbits,now - bp->issued[j]);
flag++; if ( block->numrequests <= bp->minrequests && block->fpipbits == 0 && (bp->issued[j] == 0 || now > bp->issued[j]+60) )
bp->issued[j] = now; {
iguana_blockQ(coin,bp,j,bp->hashes[j],1); printf("%d:%d.%d ",bp->hdrsi,j,block->numrequests);
if ( --issue < 0 ) flag++;
break; bp->issued[j] = now;
iguana_blockQ(coin,bp,j,bp->hashes[j],1);
if ( --issue < 0 )
break;
}
} }
} }
} }
if ( issue <= 0 )
break;
} }
if ( issue <= 0 )
break;
} }
} /*for (i=0; i<n&&i<3; i++)
/*for (i=0; i<n&&i<3; i++) printf("(%.5f %.0f).%d ",coin->rankedbps[i][0],coin->rankedbps[i][1],coin->bundles[(int32_t)coin->rankedbps[i][1]]->numrecv);*/
printf("(%.5f %.0f).%d ",coin->rankedbps[i][0],coin->rankedbps[i][1],coin->bundles[(int32_t)coin->rankedbps[i][1]]->numrecv);*/ //if ( flag != 0 )
//if ( flag != 0 )
printf("rem.%d issue.%d pend.%d | numranked.%d\n",n,origissue,pend,coin->peers.numranked); printf("rem.%d issue.%d pend.%d | numranked.%d\n",n,origissue,pend,coin->peers.numranked);
}
} }
coin->numremain = n; coin->numremain = n;
coin->blocksrecv = numrecv; coin->blocksrecv = numrecv;
@ -550,7 +553,7 @@ void iguana_bundlestats(struct iguana_info *coin,char *str)
difft.millis = ((double)tmp / 1000000.); difft.millis = ((double)tmp / 1000000.);
sprintf(str,"N[%d] h.%d r.%d c.%d:%d:%d s.%d E.%d:%d M.%d L.%d est.%d %s %d:%02d:%02d %03.3f peers.%d/%d",coin->bundlescount,numhashes,coin->blocksrecv,coin->numcached,numcached,coin->cachefreed,numsaved,numemit,coin->numreqsent,coin->blocks.hwmchain.height,coin->longestchain,coin->MAXBUNDLES,mbstr(str2,estsize),(int32_t)difft.x/3600,(int32_t)(difft.x/60)%60,(int32_t)difft.x%60,difft.millis,p,coin->MAXPEERS); sprintf(str,"N[%d] h.%d r.%d c.%d:%d:%d s.%d E.%d:%d M.%d L.%d est.%d %s %d:%02d:%02d %03.3f peers.%d/%d",coin->bundlescount,numhashes,coin->blocksrecv,coin->numcached,numcached,coin->cachefreed,numsaved,numemit,coin->numreqsent,coin->blocks.hwmchain.height,coin->longestchain,coin->MAXBUNDLES,mbstr(str2,estsize),(int32_t)difft.x/3600,(int32_t)(difft.x/60)%60,(int32_t)difft.x%60,difft.millis,p,coin->MAXPEERS);
//sprintf(str+strlen(str),"%s.%-2d %s time %.2f files.%d Q.%d %d\n",coin->symbol,flag,str,(double)(time(NULL)-coin->starttime)/60.,coin->peers.numfiles,queue_size(&coin->priorityQ),queue_size(&coin->blocksQ)); //sprintf(str+strlen(str),"%s.%-2d %s time %.2f files.%d Q.%d %d\n",coin->symbol,flag,str,(double)(time(NULL)-coin->starttime)/60.,coin->peers.numfiles,queue_size(&coin->priorityQ),queue_size(&coin->blocksQ));
if ( (rand() % 100) == 0 ) //if ( (rand() % 100) == 0 )
printf("%s\n",str); printf("%s\n",str);
strcpy(coin->statusstr,str); strcpy(coin->statusstr,str);
coin->estsize = estsize; coin->estsize = estsize;

Loading…
Cancel
Save