diff --git a/iguana/iguana777.c b/iguana/iguana777.c index bfef0ded0..814039f41 100755 --- a/iguana/iguana777.c +++ b/iguana/iguana777.c @@ -446,7 +446,7 @@ int32_t iguana_utxogen(struct iguana_info *coin,int32_t helperid,int32_t convert if ( iguana_bundlevalidate(coin,bp,0) != bp->n ) { printf("validate.[%d] error. just refresh page or restart iguana\n",bp->hdrsi); - exit(-1); + //exit(-1); } } while ( coin->spendvectorsaved == 1 ) @@ -724,7 +724,7 @@ struct iguana_info *iguana_setcoin(char *symbol,void *launched,int32_t maxpeers, else if ( coin->endPEND < 2 ) coin->endPEND = 2; #ifdef __PNACL__ - coin->startPEND = coin->endPEND = 1; + //coin->startPEND = coin->endPEND = 1; #endif coin->enableCACHE = (strcmp("BTC",coin->symbol) != 0); if ( jobj(json,"cache") != 0 ) diff --git a/iguana/iguana_ramchain.c b/iguana/iguana_ramchain.c index 865f0efd6..e63797a7e 100755 --- a/iguana/iguana_ramchain.c +++ b/iguana/iguana_ramchain.c @@ -644,21 +644,23 @@ void *iguana_ramchain_offset(char *fname,void *dest,uint8_t *lhash,FILE *fp,uint { startfpos = ftell(fp); #ifdef __PNACL__ - int32_t i,j,numretries = 5; + int32_t i,numretries = 5; for (i=0; i 2 ) - printf("write.%d of %d worked!\n",i+1,numretries+1); + fflush(fp); + //if ( i > 2 ) + //printf("write.%d of %d worked!\n",i+1,numretries+1); break; } } @@ -1055,7 +1057,7 @@ long iguana_ramchain_save(struct iguana_info *coin,RAMCHAIN_FUNC,uint32_t ipbits static portable_mutex_t mutex; portable_mutex_lock(&mutex); #endif - if ( (fp= fopen(fname,"wb+")) == 0 ) + if ( (fp= fopen(fname,"wb")) == 0 ) printf("iguana_ramchain_save: couldnt create.(%s) errno.%d\n",fname,errno); else coin->peers.numfiles++; if ( fp != 0 ) @@ -1798,12 +1800,16 @@ int32_t iguana_ramchain_iterate(struct iguana_info *coin,struct iguana_ramchain long iguana_ramchain_data(struct iguana_info *coin,struct iguana_peer *addr,struct iguana_txblock *origtxdata,struct iguana_msgtx *txarray,int32_t txn_count,uint8_t *data,int32_t recvlen) { - int32_t verifyflag = 0; static uint64_t totalrecv; + static uint64_t totalrecv; + int32_t verifyflag = 0; RAMCHAIN_DECLARE; uint32_t addr_ipbits; struct iguana_ramchain R,*mapchain,*ramchain = &addr->ramchain; - struct iguana_msgtx *tx; char fname[1024]; uint8_t rmd160[20]; long fsize; void *ptr; + struct iguana_msgtx *tx; char fname[1024]; uint8_t rmd160[20]; // long fsize; void *ptr; int32_t i,j,fpos,pubkeysize,msize,sigsize,firsti=1,err,flag,bundlei = -2; bits256 merkle_root; struct iguana_bundle *bp = 0; struct iguana_block *block; uint32_t scriptspace,stackspace; totalrecv += recvlen; +#ifdef __PNACL__ + //verifyflag = 1; +#endif if ( (addr_ipbits= (uint32_t)addr->ipbits) == 0 ) addr_ipbits = 1; if ( bits256_nonz(origtxdata->block.RO.merkle_root) == 0 ) @@ -1944,10 +1950,13 @@ long iguana_ramchain_data(struct iguana_info *coin,struct iguana_peer *addr,stru if ( addr->dirty[1] != 0 && addr->vinsfp != 0 ) fflush(addr->vinsfp); memset(&R,0,sizeof(R)); - if ( verifyflag != 0 && (mapchain= iguana_ramchain_map(coin,fname,0,1,&R,0,addr_ipbits,block->RO.hash2,block->RO.prev_block,bundlei,fpos,1,0)) != 0 ) + if ( verifyflag != 0 && (mapchain= iguana_ramchain_map(coin,fname,0,1,&R,0,addr_ipbits,block->RO.hash2,block->RO.prev_block,bundlei,fpos,1,0)) == 0 ) { + printf("delete unverified [%d:%d]\n",bp->hdrsi,bundlei); + iguana_ramchain_free(coin,&R,1); + fpos = -1; //printf("mapped Soffset.%ld\n",(long)mapchain->data->Soffset); - iguana_ramchain_link(&R,block->RO.hash2,bp->hdrsi,bp->bundleheight+bundlei,bundlei,1,firsti,1); + /*iguana_ramchain_link(&R,block->RO.hash2,bp->hdrsi,bp->bundleheight+bundlei,bundlei,1,firsti,1); if ( 1 ) // unix issues? { if ( (err= iguana_ramchain_cmp(ramchain,mapchain,0)) != 0 ) @@ -1981,6 +1990,8 @@ long iguana_ramchain_data(struct iguana_info *coin,struct iguana_peer *addr,stru //bp->rawscriptspace += ramchain->H.data->scriptspace; } iguana_ramchain_free(coin,&R,1); + if ( err != 0 ) + iguana_blockunmark(coin,block,bp,bundlei,1);*/ } else { @@ -2401,7 +2412,7 @@ int32_t iguana_mapchaininit(char *fname,struct iguana_info *coin,struct iguana_r if ( block->fpos+mapchain->H.data->allocsize > filesize || iguana_ramchain_size(fname,MAPCHAIN_ARG,1,mapchain->H.data->scriptspace) != mapchain->H.data->allocsize ) { printf("iguana_mapchaininit.%d ipbits.%x size mismatch %ld vs %ld vs filesize.%ld fpos.%ld bundlei.%d expanded.%d soff.%d\n",bp->bundleheight,block->fpipbits,(long)iguana_ramchain_size(fname,MAPCHAIN_ARG,1,mapchain->H.data->scriptspace),(long)mapchain->H.data->allocsize,(long)filesize,(long)block->fpos,bundlei,mapchain->expanded,mapchain->H.data->scriptspace); - getchar(); + //getchar(); return(-1); } else if ( memcmp(bp->hashes[bundlei].bytes,mapchain->H.data->firsthash2.bytes,sizeof(bits256)) != 0 ) diff --git a/iguana/iguana_recv.c b/iguana/iguana_recv.c index 0a4d0b5cd..ace68cbdc 100755 --- a/iguana/iguana_recv.c +++ b/iguana/iguana_recv.c @@ -189,7 +189,7 @@ struct iguana_txblock *iguana_peertxdata(struct iguana_info *coin,int32_t *bundl if ( txdata->datalen != datalen || txdata->block.bundlei != bundlei ) { printf("%s peertxdata txdata->datalen.%d != %d bundlei.%d vs %d\n",bits256_str(str,txdata->block.RO.hash2),txdata->datalen,datalen,txdata->block.bundlei,bundlei); - getchar(); + //getchar(); txdata = 0; iguana_memreset(mem); } //else printf("SUCCESS txdata.%s bundlei.%d fpos.%d T.%d U.%d S.%d P.%d\n",bits256_str(str,txdata->block.hash2),bundlei,fpos,txdata->numtxids,txdata->numunspents,txdata->numspends,txdata->numpkinds); @@ -1286,7 +1286,7 @@ int32_t iguana_processrecvQ(struct iguana_info *coin,int32_t *newhwmp) // single if ( (req= iguana_recvtxids(coin,req,req->hashes,req->n)) != 0 ) myfree(req->hashes,(req->n+1) * sizeof(*req->hashes)), req->hashes = 0; } - else printf("iguana_updatebundles unknown type.%c\n",req->type), getchar(); + else printf("iguana_updatebundles unknown type.%c\n",req->type);//, getchar(); //fprintf(stderr,"finished coin->recvQ\n"); if ( req != 0 ) myfree(req,req->allocsize), req = 0; diff --git a/iguana/main.c b/iguana/main.c index 30f26ad67..840f4bb2e 100755 --- a/iguana/main.c +++ b/iguana/main.c @@ -1139,7 +1139,7 @@ void iguana_appletests(struct supernet_info *myinfo) exit(-1); } sleep(1);*/ - if ( 1 && (str= SuperNET_JSON(myinfo,cJSON_Parse("{\"prefetchlag\":13,\"agent\":\"iguana\",\"method\":\"addcoin\",\"startpend\":500,\"endpend\":500,\"services\":128,\"maxpeers\":64,\"newcoin\":\"BTCD\",\"active\":1,\"numhelpers\":4,\"poll\":1}"),0,myinfo->rpcport)) != 0 ) + if ( 1 && (str= SuperNET_JSON(myinfo,cJSON_Parse("{\"prefetchlag\":13,\"agent\":\"iguana\",\"method\":\"addcoin\",\"startpend\":500,\"endpend\":500,\"services\":129,\"maxpeers\":64,\"newcoin\":\"BTCD\",\"active\":1,\"numhelpers\":4,\"poll\":1}"),0,myinfo->rpcport)) != 0 ) { free(str); if ( 0 && (str= SuperNET_JSON(myinfo,cJSON_Parse("{\"userhome\":\"/Users/jimbolaptop/Library/Application Support\",\"agent\":\"iguana\",\"method\":\"addcoin\",\"services\":1024,\"maxpeers\":256,\"newcoin\":\"BTCD\",\"active\":1}"),0,myinfo->rpcport)) != 0 ) @@ -1327,7 +1327,7 @@ void iguana_main(void *arg) iguana_helpinit(myinfo); iguana_commandline(myinfo,arg); #ifdef __APPLE__ - iguana_appletests(myinfo); + //iguana_appletests(myinfo); #endif iguana_launchdaemons(myinfo); }