Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
076426ed84
  1. 2
      basilisk/basilisk.c
  2. 1
      gecko/gecko_blocks.c
  3. 63
      iguana/iguana777.c
  4. 4
      iguana/iguana_realtime.c
  5. 2
      iguana/iguana_tx.c
  6. 1
      includes/iguana_funcs.h

2
basilisk/basilisk.c

@ -187,7 +187,7 @@ int32_t basilisk_sendcmd(struct supernet_info *myinfo,char *destipaddr,char *typ
break;
if ( s == myinfo->numrelays )
{
printf("skip non-relay.(%s)\n",addr->ipaddr);
//printf("skip non-relay.(%s)\n",addr->ipaddr);
continue;
}
printf("send to other relay.(%s)\n",addr->ipaddr);

1
gecko/gecko_blocks.c

@ -147,6 +147,7 @@ int32_t gecko_hwmset(struct supernet_info *myinfo,struct iguana_info *virt,struc
virt->current = bp;
virt->RTramchain = bp->ramchain;
iguana_RTramchainalloc("RTbundle",virt,bp);
iguana_update_balances(virt);
iguana_realtime_update(myinfo,virt);
if ( (block->height % virt->chain->bundlesize) == 13 && hdrsi > 0 && (prevbp= virt->bundles[hdrsi - 1]) != 0 && prevbp->emitfinish == 0 && prevbp->numsaved >= prevbp->n )
{

63
iguana/iguana777.c

@ -440,6 +440,41 @@ int32_t iguana_helperB(struct iguana_info *coin,int32_t helperid,struct iguana_b
return(0);
}
void iguana_update_balances(struct iguana_info *coin)
{
int32_t i,hdrsi,max; struct iguana_bundle *bp;
max = coin->bundlescount;
if ( coin->bundles[max-1] != 0 && coin->bundles[max-1]->emitfinish <= 1 )
max--;
if ( iguana_balancefinished(coin) < max && iguana_spendvectorsaves(coin) == 0 )
{
if ( 1 || coin->origbalanceswritten <= 1 )
hdrsi = 0;
else hdrsi = coin->origbalanceswritten;
for (i=0; i<max; i++)
if ( (bp= coin->bundles[i]) != 0 && bp != coin->current )
{
iguana_volatilespurge(coin,&bp->ramchain);
iguana_volatilesalloc(coin,&bp->ramchain,i < hdrsi);
}
for (; hdrsi<max; hdrsi++)
{
if ( (bp= coin->bundles[hdrsi]) != 0 )
{
//iguana_ramchain_prefetch(coin,&bp->ramchain,3);
if ( iguana_balancegen(coin,0,bp,0,coin->chain->bundlesize-1,0) == 0 )
bp->balancefinish = (uint32_t)time(NULL);
}
}
if ( max != coin->origbalanceswritten )
{
coin->balanceflush = max+1;
while ( coin->balanceflush != 0 )
sleep(3);
} else printf("skip flush when max.%d and orig.%d\n",max,coin->origbalanceswritten);
}
}
int32_t iguana_utxogen(struct iguana_info *coin,int32_t helperid,int32_t convertflag)
{
int32_t hdrsi,n,i,max,incr,num = 0; struct iguana_bundle *bp;
@ -477,33 +512,7 @@ int32_t iguana_utxogen(struct iguana_info *coin,int32_t helperid,int32_t convert
}
if ( helperid == 0 )
{
if ( iguana_balancefinished(coin) < max && iguana_spendvectorsaves(coin) == 0 )
{
if ( 1 || coin->origbalanceswritten <= 1 )
hdrsi = 0;
else hdrsi = coin->origbalanceswritten;
for (i=0; i<max; i++)
if ( (bp= coin->bundles[i]) != 0 && bp != coin->current )
{
iguana_volatilespurge(coin,&bp->ramchain);
iguana_volatilesalloc(coin,&bp->ramchain,i < hdrsi);
}
for (; hdrsi<max; hdrsi++)
{
if ( (bp= coin->bundles[hdrsi]) != 0 )
{
//iguana_ramchain_prefetch(coin,&bp->ramchain,3);
if ( iguana_balancegen(coin,0,bp,0,coin->chain->bundlesize-1,0) == 0 )
bp->balancefinish = (uint32_t)time(NULL);
}
}
if ( max != coin->origbalanceswritten )
{
coin->balanceflush = max+1;
while ( coin->balanceflush != 0 )
sleep(3);
} else printf("skip flush when max.%d and orig.%d\n",max,coin->origbalanceswritten);
}
iguana_update_balances(coin);
if ( 1 )
{
for (i=0; i<max; i++)

4
iguana/iguana_realtime.c

@ -209,6 +209,10 @@ int32_t iguana_realtime_update(struct supernet_info *myinfo,struct iguana_info *
struct iguana_block *block=0; struct iguana_blockRO *B; struct iguana_ramchain *dest=0,blockR;
if ( coin->peers == 0 && coin->virtualchain == 0 )
return(0);
if ( coin->virtualchain != 0 )
{
;
}
offset = (strcmp("BTC",coin->symbol) != 0);
if ( coin->current != 0 && (coin->blocks.hwmchain.height % coin->chain->bundlesize) == coin->chain->bundlesize-1 && coin->blocks.hwmchain.height/coin->chain->bundlesize == coin->longestchain/coin->chain->bundlesize )
{

2
iguana/iguana_tx.c

@ -314,7 +314,7 @@ int32_t iguana_peerblockrequest(struct iguana_info *coin,uint8_t *blockspace,int
}
} else printf("iguana_peerblockrequest: error merkle cmp tx.[%d] for ht.%d\n",i,bp->bundleheight+bundlei);
} else printf("iguana_peerblockrequest: error merkle verify tx.[%d] for ht.%d\n",i,bp->bundleheight+bundlei);
} //else printf("iguana_peerblockrequest: error getting tx.[%d] for ht.%d block.%p main.%d ht.%d\n",i,bp->bundleheight+bundlei,block,block!=0?block->mainchain:-1,block!=0?block->height:-1);
} else printf("iguana_peerblockrequest: error getting tx.[%d] for ht.%d block.%p main.%d ht.%d\n",i,bp->bundleheight+bundlei,block,block!=0?block->mainchain:-1,block!=0?block->height:-1);
}
else
{

1
includes/iguana_funcs.h

@ -527,6 +527,7 @@ int32_t iguana_scriptdata(struct iguana_info *coin,uint8_t *scriptspace,long fil
struct iguana_peer *basilisk_ensurerelay(struct supernet_info *myinfo,struct iguana_info *btcd,uint32_t ipbits);
int32_t iguana_datachain_scan(struct supernet_info *myinfo,struct iguana_info *coin,uint8_t rmd160[20]);
void iguana_RTramchainalloc(char *fname,struct iguana_info *coin,struct iguana_bundle *bp);
void iguana_update_balances(struct iguana_info *coin);
#include "../includes/iguana_api.h"

Loading…
Cancel
Save