Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
a1403df088
  1. 4
      iguana/iguana777.h
  2. 12
      iguana/iguana_peers.c
  3. 2
      iguana/iguana_ramchain.c
  4. 4
      iguana/iguana_tx.c
  5. 15
      iguana/iguana_unspents.c

4
iguana/iguana777.h

@ -884,8 +884,8 @@ int32_t iguana_peeraddrrequest(struct iguana_info *coin,struct iguana_peer *addr
int32_t iguana_peerinvrequest(struct iguana_info *coin,struct iguana_peer *addr,uint8_t *space,int32_t max);
int32_t iguana_bundlefname(struct iguana_info *coin,struct iguana_bundle *bp,char *fname);
int32_t iguana_bundleremove(struct iguana_info *coin,int32_t hdrsi,int32_t tmpfiles);
int32_t iguana_voutsfname(struct iguana_info *coin,char *fname,int32_t slotid);
int32_t iguana_vinsfname(struct iguana_info *coin,char *fname,int32_t slotid);
int32_t iguana_voutsfname(struct iguana_info *coin,int32_t roflag,char *fname,int32_t slotid);
int32_t iguana_vinsfname(struct iguana_info *coin,int32_t roflag,char *fname,int32_t slotid);
bits256 iguana_merkle(struct iguana_info *coin,bits256 *tree,int32_t txn_count);
int32_t iguana_bundleready(struct iguana_info *coin,struct iguana_bundle *bp,int32_t requiredflag);
int32_t iguana_blast(struct iguana_info *coin,struct iguana_peer *addr);

12
iguana/iguana_peers.c

@ -983,15 +983,15 @@ int64_t iguana_peerallocated(struct iguana_info *coin,struct iguana_peer *addr)
}
#endif
int32_t iguana_voutsfname(struct iguana_info *coin,char *fname,int32_t slotid)
int32_t iguana_voutsfname(struct iguana_info *coin,int32_t roflag,char *fname,int32_t slotid)
{
sprintf(fname,"%s/%s/vouts/%04d.vouts",GLOBAL_DBDIR,coin->symbol,slotid);
sprintf(fname,"%s/%s%s/vouts/%04d.vouts",GLOBAL_DBDIR,roflag!=0?"ro/":"",coin->symbol,slotid);
return((int32_t)strlen(fname));
}
int32_t iguana_vinsfname(struct iguana_info *coin,char *fname,int32_t slotid)
int32_t iguana_vinsfname(struct iguana_info *coin,int32_t roflag,char *fname,int32_t slotid)
{
sprintf(fname,"%s/%s/%04d.vins",coin->VALIDATEDIR,coin->symbol,slotid);
sprintf(fname,"%s/%s%s/%04d.vins",coin->VALIDATEDIR,roflag!=0?"ro/":"",coin->symbol,slotid);
return((int32_t)strlen(fname));
}
@ -1000,7 +1000,7 @@ int32_t iguana_peerslotinit(struct iguana_info *coin,struct iguana_peer *addr,in
char fname[1024];
addr->ipbits = ipbits;
addr->addrind = slotid;
iguana_voutsfname(coin,fname,addr->addrind);
iguana_voutsfname(coin,0,fname,addr->addrind);
if ( (addr->voutsfp= fopen(fname,"rb+")) != 0 )
fseek(addr->voutsfp,0,SEEK_END);
else if ( (addr->voutsfp= fopen(fname,"wb+")) == 0 )
@ -1010,7 +1010,7 @@ int32_t iguana_peerslotinit(struct iguana_info *coin,struct iguana_peer *addr,in
}
if ( coin->VALIDATENODE != 0 || coin->RELAYNODE != 0 )
{
iguana_vinsfname(coin,fname,addr->addrind);
iguana_vinsfname(coin,0,fname,addr->addrind);
if ( (addr->vinsfp= fopen(fname,"rb+")) != 0 )
fseek(addr->vinsfp,0,SEEK_END);
else if ( (addr->vinsfp= fopen(fname,"wb+")) == 0 )

2
iguana/iguana_ramchain.c

@ -1339,11 +1339,11 @@ int32_t iguana_Xspendmap(struct iguana_info *coin,struct iguana_ramchain *ramcha
ramchain->Xspendinds = (void *)((long)ptr + sizeof(sha256));
if ( bp->Xvalid == 0 )
vcalc_sha256(0,sha256.bytes,(void *)ramchain->Xspendinds,(int32_t)(filesize - sizeof(sha256)));
ramchain->from_roX = (iter == 0);
if ( bp->Xvalid != 0 || memcmp(sha256.bytes,ptr,sizeof(sha256)) == 0 )
{
ramchain->Xspendptr = ptr;
ramchain->numXspends = (int32_t)((filesize - sizeof(sha256)) / sizeof(*ramchain->Xspendinds));
ramchain->from_roX = (iter == 0);
bp->startutxo = bp->utxofinish = (uint32_t)time(NULL);
if ( bp->Xvalid == 0 )
{

4
iguana/iguana_tx.c

@ -78,7 +78,7 @@ int32_t iguana_vinset(struct iguana_info *coin,uint8_t *scriptspace,int32_t heig
vin->prev_vout = s->prevout;
if ( s->scriptpos != 0 && s->scriptlen > 0 )
{
iguana_vinsfname(coin,fname,s->fileid);
iguana_vinsfname(coin,bp->ramchain.from_ro,fname,s->fileid);
if ( (scriptlen= iguana_scriptdata(coin,scriptspace,coin->peers.vinptrs[s->fileid],fname,s->scriptpos,s->scriptlen)) != s->scriptlen )
printf("err.%d getting %d bytes from fileid.%llu[%d] %s for s%d\n",err,s->scriptlen,(long long)s->scriptpos,s->fileid,fname,spendind);
}
@ -110,7 +110,7 @@ int32_t iguana_voutset(struct iguana_info *coin,uint8_t *scriptspace,char *asmst
vout->pk_script = scriptspace;
if ( u->scriptpos > 0 && u->scriptlen > 0 )
{
iguana_voutsfname(coin,fname,u->fileid);
iguana_voutsfname(coin,bp->ramchain.from_ro,fname,u->fileid);
if ( (scriptlen= iguana_scriptdata(coin,scriptspace,coin->peers.voutptrs[u->fileid],fname,u->scriptpos,u->scriptlen)) != u->scriptlen )
printf("error.%d %d bytes from fileid.%d[%d] %s for u%d type.%d\n",err,u->scriptlen,u->fileid,u->scriptpos,fname,unspentind,u->type);
}

15
iguana/iguana_unspents.c

@ -1384,8 +1384,12 @@ int32_t iguana_volatilesinit(struct iguana_info *coin)
printf("hdrsi.[%d] emitfinish.%u utxofinish.%u\n",i,bp->emitfinish,bp->utxofinish);
break;
}
if ( bp->ramchain.from_ro == 0 || bp->ramchain.from_roX == 0 || bp->ramchain.from_roA == 0 || bp->ramchain.from_roU == 0 )
iguana_volatilesmap(coin,&bp->ramchain);
if ( from_ro != 0 && (bp->ramchain.from_ro == 0 || (bp->hdrsi > 0 && bp->ramchain.from_roX == 0) || bp->ramchain.from_roA == 0 || bp->ramchain.from_roU == 0) )
{
printf("from_ro.[%d] %d %d %d %d\n",bp->hdrsi,bp->ramchain.from_ro,bp->ramchain.from_roX,bp->ramchain.from_roA,bp->ramchain.from_roU);
from_ro = 0;
}
}
if ( i < coin->balanceswritten )
{
@ -1415,7 +1419,7 @@ int32_t iguana_volatilesinit(struct iguana_info *coin)
}
if ( filecrc != 0 )
printf("have filecrc.%08x for %s milli.%.0f from_ro.%d\n",filecrc,bits256_str(str,balancehash),OS_milliseconds(),from_ro);
if ( from_ro == 0 )
if ( from_ro == 0 || filecrc == 0 )
{
if ( filecrc == 0 )
{
@ -1428,9 +1432,9 @@ int32_t iguana_volatilesinit(struct iguana_info *coin)
Aptr = 0, Uptr = 0;
if ( (bp= coin->bundles[i]) != 0 && bp->ramchain.H.data != 0 && (numpkinds= bp->ramchain.H.data->numpkinds) > 0 && (numunspents= bp->ramchain.H.data->numunspents) > 0 && (Aptr= bp->ramchain.A2) != 0 && (Uptr= bp->ramchain.Uextras) != 0 )
{
fprintf(stderr,".");
if ( filecrc == 0 )
{
fprintf(stderr,".");
vupdate_sha256(balancehash.bytes,&vstate,(void *)Aptr,sizeof(*Aptr) * numpkinds);
vupdate_sha256(balancehash.bytes,&vstate,(void *)Uptr,sizeof(*Uptr) * numunspents);
vupdate_sha256(allbundles.bytes,&bstate,(void *)bp->hashes,sizeof(bp->hashes[0]) * bp->n);
@ -2103,6 +2107,11 @@ int32_t iguana_bundlevalidate(struct iguana_info *coin,struct iguana_bundle *bp,
static int32_t totalerrs,totalvalidated;
FILE *fp; char fname[1024]; uint8_t *blockspace; uint32_t now = (uint32_t)time(NULL);
int32_t i,max,len,errs = 0; struct sha256_vstate vstate; bits256 validatehash; int64_t total = 0;
if ( bp->ramchain.from_ro != 0 )
{
bp->validated = (uint32_t)time(NULL);
return(bp->n);
}
if ( bp->validated <= 1 || forceflag != 0 )
{
//printf("validate.[%d]\n",bp->hdrsi);

Loading…
Cancel
Save