Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
1113e4bf2f
  1. 1
      iguana/iguana_init.c
  2. 17
      iguana/iguana_ramchain.c
  3. 15
      iguana/iguana_recv.c

1
iguana/iguana_init.c

@ -111,6 +111,7 @@ bits256 iguana_genesis(struct iguana_info *coin,struct iguana_chain *chain)
int32_t bundlei = -2;
static bits256 zero;
iguana_bundlecreate(coin,&bundlei,0,hash2,zero,1);
_iguana_chainlink(coin,iguana_blockfind(coin,hash2));
return(hash2);
}

17
iguana/iguana_ramchain.c

@ -1706,12 +1706,13 @@ struct iguana_ramchain *iguana_bundleload(struct iguana_info *coin,struct iguana
block->hdrsi = bp->hdrsi;
block->bundlei = i;
block->fpipbits = (uint32_t)calc_ipbits("127.0.0.1");
block->RO = B[i];
if ( bp->blocks[i] == 0 )
bp->blocks[i] = block;
if ( bits256_nonz(bp->hashes[i]) == 0 )
bp->hashes[i] = B[i].hash2;
//_iguana_chainlink(coin,block);
if ( bp->bundleheight+i == coin->blocks.hwmchain.height+1 )
_iguana_chainlink(coin,block);
}
}
bp->emitfinish = (uint32_t)time(NULL) + 1;
@ -1816,11 +1817,17 @@ int32_t iguana_bundlesaveHT(struct iguana_info *coin,struct OS_memspace *mem,str
{
iguana_blocksetcounters(coin,block,dest);
coin->blocks.RO[bp->bundleheight+bundlei] = block->RO;
B[bundlei] = block->RO;
//printf("(%d %d) ",R[bundlei].H.data->numtxids,dest->H.txidind);
if ( (err= iguana_ramchain_iterate(coin,dest,&R[bundlei])) != 0 )
{
printf("error ramchain_iterate hdrs.%d bundlei.%d\n",bp->hdrsi,bundlei);
break;
}
}
//printf("(%d %d) ",R[bundlei].H.data->numtxids,dest->H.txidind);
if ( (err= iguana_ramchain_iterate(coin,dest,&R[bundlei])) != 0 )
else
{
printf("error ramchain_iterate hdrs.%d bundlei.%d\n",bp->hdrsi,bundlei);
printf("error ramchain_iterate hdrs.%d bundlei.%d cant find block\n",bp->hdrsi,bundlei);
break;
}
}

15
iguana/iguana_recv.c

@ -767,20 +767,27 @@ int32_t iguana_pollQsPT(struct iguana_info *coin,struct iguana_peer *addr)
int32_t iguana_processrecv(struct iguana_info *coin) // single threaded
{
int32_t newhwm = 0,h,lflag,bundlei,flag = 0; bits256 hash2; struct iguana_block *next,*block; struct iguana_bundle *bp;
int32_t newhwm = 0,hdrsi,h,lflag,bundlei,flag = 0; bits256 hash2; struct iguana_block *next,*block; struct iguana_bundle *bp;
//printf("process bundlesQ\n");
flag += iguana_processbundlesQ(coin,&newhwm);
flag += iguana_reqhdrs(coin);
lflag = 1;
h = (coin->blocks.hwmchain.height+1) / coin->chain->bundlesize;
while ( lflag != 0 )
{
lflag = 0;
h = coin->blocks.hwmchain.height / coin->chain->bundlesize;
hdrsi = (coin->blocks.hwmchain.height+1) / coin->chain->bundlesize;
bundlei = (coin->blocks.hwmchain.height+1) % coin->chain->bundlesize;
if ( (next= iguana_blockfind(coin,iguana_blockhash(coin,coin->blocks.hwmchain.height+1))) == 0 )
{
if ( (block= iguana_blockfind(coin,coin->blocks.hwmchain.RO.hash2)) != 0 )
next = block->hh.next, block->mainchain = 1;
}
if ( next == 0 && hdrsi < coin->bundlescount && (bp= coin->bundles[hdrsi]) != 0 && (next= bp->blocks[bundlei]) != 0 )
{
if ( bits256_nonz(next->RO.prev_block) == 0 )
next = 0;
}
if ( next != 0 )
{
//printf("have next\n");
@ -825,8 +832,8 @@ int32_t iguana_processrecv(struct iguana_info *coin) // single threaded
printf("next prev cmp error nonz.%d\n",bits256_nonz(next->RO.prev_block));
}
}
if ( h != coin->blocks.hwmchain.height / coin->chain->bundlesize )
iguana_savehdrs(coin);
}
if ( hdrsi != (coin->blocks.hwmchain.height+1) / coin->chain->bundlesize )
iguana_savehdrs(coin);
return(flag);
}

Loading…
Cancel
Save