diff --git a/iguana/iguana_ramchain.c b/iguana/iguana_ramchain.c index 05b57dca5..df1896315 100755 --- a/iguana/iguana_ramchain.c +++ b/iguana/iguana_ramchain.c @@ -2228,7 +2228,14 @@ int64_t iguana_ramchainopen(struct iguana_info *coin,struct iguana_ramchain *ram numunspents *= 2.5, numspends *= 2.5, numpkinds *= 2.5; if ( mem->ptr == 0 ) { - allocsize = _iguana_rdata_action(0,0,0,0,1,numtxids,numunspents,numspends,numpkinds,numexternaltxids,scriptspace,0,0,0,0,0,RAMCHAIN_ARG,numblocks); + while ( (allocsize= _iguana_rdata_action(0,0,0,0,1,numtxids,numunspents,numspends,numpkinds,numexternaltxids,scriptspace,0,0,0,0,0,RAMCHAIN_ARG,numblocks)) > 1024L*1024L*1024L ) + { + numtxids *= .9; + numunspents *= .9; + numspends *= .9; + numpkinds *= .9; + numexternaltxids *= .9; + } iguana_meminit(mem,coin->symbol,0,allocsize + 65536*3,0); } if ( hashmem->ptr == 0 )