Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
4368df49f7
  1. 2
      iguana/iguana777.h
  2. 10
      iguana/iguana_ramchain.c
  3. 16
      iguana/iguana_unspents.c

2
iguana/iguana777.h

@ -843,7 +843,7 @@ void iguana_walletlock(struct supernet_info *myinfo);
int32_t _SuperNET_encryptjson(char *destfname,char *passphrase,int32_t passsize,char *fname2fa,int32_t fnamesize,cJSON *argjson);
int32_t bitcoin_pubkeylen(const uint8_t *pubkey);
struct iguana_block *iguana_bundleblock(struct iguana_info *coin,bits256 *hash2p,struct iguana_bundle *bp,int32_t i);
int32_t iguana_ramchainfile(struct iguana_info *coin,struct iguana_ramchain *dest,struct iguana_ramchain *R,struct iguana_bundle *bp,int32_t bundlei,struct iguana_block *block);
void *iguana_ramchainfile(struct iguana_info *coin,struct iguana_ramchain *dest,struct iguana_ramchain *R,struct iguana_bundle *bp,int32_t bundlei,struct iguana_block *block);
extern int32_t HDRnet,netBLOCKS;

10
iguana/iguana_ramchain.c

@ -1966,18 +1966,20 @@ int32_t iguana_oldbundlefiles(struct iguana_info *coin,uint32_t *ipbits,void **p
void *iguana_bundlefile(struct iguana_info *coin,char *fname,long *filesizep,struct iguana_bundle *bp,int32_t bundlei)
{
int32_t checki,hdrsi; void *ptr = 0; static bits256 zero;
int32_t checki,hdrsi; void *ptr = 0; struct iguana_ramchain blockR; static bits256 zero;
*filesizep = 0;
if ( (checki= iguana_peerfname(coin,&hdrsi,GLOBALTMPDIR,fname,0,bp->hashes[bundlei],zero,1,1)) != bundlei || bundlei < 0 || bundlei >= coin->chain->bundlesize )
{
printf("B iguana_ramchain_map.(%s) illegal hdrsi.%d bundlei.%d checki.%d\n",fname,hdrsi,bundlei,checki);
return(0);
}
if ( (ptr= OS_mapfile(fname,filesizep,0)) == 0 )
if ( (ptr= iguana_ramchainfile(coin,0,&blockR,bp,bundlei,bp->blocks[bundlei])) == 0 )
return(0);
iguana_ramchain_free(coin,&blockR,1);
/*if ( (ptr= OS_mapfile(fname,filesizep,0)) == 0 )
{
//printf("error mapping.(%s) bundlei.%d\n",fname,bundlei);
return(0);
}
}*/
return(ptr);
}

16
iguana/iguana_unspents.c

@ -1281,7 +1281,7 @@ void iguana_RTramchainalloc(struct iguana_info *coin,struct iguana_bundle *bp)
}
}
int32_t iguana_ramchainfile(struct iguana_info *coin,struct iguana_ramchain *dest,struct iguana_ramchain *R,struct iguana_bundle *bp,int32_t bundlei,struct iguana_block *block)
void *iguana_ramchainfile(struct iguana_info *coin,struct iguana_ramchain *dest,struct iguana_ramchain *R,struct iguana_bundle *bp,int32_t bundlei,struct iguana_block *block)
{
char fname[1024]; long filesize; int32_t err; void *ptr;
if ( block == bp->blocks[bundlei] && (ptr= iguana_bundlefile(coin,fname,&filesize,bp,bundlei)) != 0 )
@ -1296,12 +1296,12 @@ int32_t iguana_ramchainfile(struct iguana_info *coin,struct iguana_ramchain *des
char str[65];
printf("ERROR [%d:%d] %s vs ",bp->hdrsi,bundlei,bits256_str(str,block->RO.hash2));
printf("mapped.%s\n",bits256_str(str,R->H.data->firsthash2));
iguana_blockunmark(coin,block,bp,bundlei,1);
iguana_RTramchainfree(coin);
} else return(0);
} else return(ptr);
iguana_ramchain_free(coin,R,1);
iguana_blockunmark(coin,block,bp,bundlei,1);
}
}
return(-1);
return(0);
}
int32_t iguana_realtime_update(struct iguana_info *coin)
@ -1324,9 +1324,11 @@ int32_t iguana_realtime_update(struct iguana_info *coin)
iguana_blocksetcounters(coin,block,dest);
B[bundlei] = block->RO;
double startmillis0 = OS_milliseconds(); static double totalmillis0; static int32_t num0;
if ( iguana_ramchainfile(coin,dest,&blockR,bp,bundlei,block) < 0 )
if ( iguana_ramchainfile(coin,dest,&blockR,bp,bundlei,block) == 0 )
{
iguana_RTramchainfree(coin);
return(-1);
iguana_ramchain_free(coin,&blockR,1);
} else iguana_ramchain_free(coin,&blockR,1);
totalmillis0 += (OS_milliseconds() - startmillis0);
num0++;
printf("ramchainiterate.[%d] ave %.2f micros, total %.2f seconds\n",num0,(totalmillis0*1000.)/num0,totalmillis0/1000.);

Loading…
Cancel
Save