diff --git a/iguana/iguana777.c b/iguana/iguana777.c index 8b8e77781..13868d693 100755 --- a/iguana/iguana777.c +++ b/iguana/iguana777.c @@ -583,7 +583,7 @@ int32_t iguana_utxogen(struct supernet_info *myinfo,struct iguana_info *coin,int return(num); } -int32_t iguana_coin_mainiter(struct supernet_info *myinfo,struct iguana_info *coin,int32_t *numpeersp) +int32_t iguana_coin_mainiter(struct supernet_info *myinfo,struct iguana_info *coin,int32_t *numpeersp,struct OS_memspace *mem,struct OS_memspace *memB) { int32_t n,j,isRT = 0; struct iguana_bundle *bp; if ( coin->RTheight == 0 && coin->firstRTheight == 0 && coin->current != 0 && coin->active != 0 && coin->started != 0 ) @@ -620,12 +620,17 @@ int32_t iguana_coin_mainiter(struct supernet_info *myinfo,struct iguana_info *co else { for (j=0; jbundlescount; j++) - if ( (bp= coin->bundles[j]) != 0 && bp->queued == 0 && bp->startutxo == 0 && bp->emitfinish == 0 ) + if ( (bp= coin->bundles[j]) != 0 && bp->ramchain.H.data == 0 ) { + if ( iguana_bundleready(myinfo,coin,bp,0) == bp->n ) + { + printf("finalize.[%d]\n",bp->hdrsi); + if ( iguana_bundlefinalize(myinfo,coin,bp,mem,memB) > 0 ) + continue; + } printf("bundleQ.[%d]\n",j); - iguana_bundleQ(myinfo,coin,bp,0); + iguana_bundleQ(myinfo,coin,bp,1000); } - printf("queued\n"); } } if ( (bp= coin->current) != 0 && coin->stucktime != 0 && coin->isRT == 0 && coin->RTheight == 0 && (time(NULL) - coin->stucktime) > coin->MAXSTUCKTIME ) @@ -698,7 +703,7 @@ void iguana_helper(void *arg) } } if ( helperid == 0 ) - iguana_coin_mainiter(myinfo,coin,&numpeers); + iguana_coin_mainiter(myinfo,coin,&numpeers,&MEM,MEMB); } //portable_mutex_unlock(&myinfo->allcoins_mutex); n = queue_size(&bundlesQ); diff --git a/iguana/iguana_bundles.c b/iguana/iguana_bundles.c index d599d7530..93c0ffa94 100755 --- a/iguana/iguana_bundles.c +++ b/iguana/iguana_bundles.c @@ -1112,7 +1112,7 @@ int32_t iguana_bundleiters(struct supernet_info *myinfo,struct iguana_info *coin iguana_bundlecalcs(myinfo,coin,bp,lag); if ( coin->blockdepth == 0 && coin->blockdepth == 0 && bp->hdrsi == coin->bundlescount-1 ) iguana_autoextend(myinfo,coin,bp); - //if ( 0 && bp->hdrsi == 0 ) + if ( 0 && bp->hdrsi == 0 ) printf("ITER utxo.%u now.%u spec.%-4d bundle.%-4d h.%-4d r.%-4d s.%-4d F.%d T.%d issued.%d mb.%d/%d\n",bp->utxofinish,(uint32_t)time(NULL),bp->numspec,bp->bundleheight/coin->chain->bundlesize,bp->numhashes,bp->numrecv,bp->numsaved,bp->emitfinish,timelimit,counter,coin->MAXBUNDLES,coin->bundlescount); bp->nexttime = (uint32_t)time(NULL) + ((bp->hdrsi > starti) ? 0 : -2); if ( bp->hdrsi == coin->bundlescount-1 || (bp->numhashes < bp->n && bp->bundleheight < coin->longestchain-coin->chain->bundlesize) )