def load_state(self, path=None): from coro.asn1.data_file import DataFileReader from __main__ import G if path is None: path = os.path.join(G.args.base, self.save_path) LOG('cache', 'start') t0 = timer() try: f = open(path, 'rb') df = DataFileReader(f) info = df.read_object() if info[0] < self.cache_version: LOG('old cache version, ignoring') return assert (info[0] == self.cache_version) # version [ _, self.height, self.block_name, self.total, self.lost, self.fees, size ] = info LOG('cache', self.height, size) self.block_name = Name(self.block_name) n = [0] df.next = df.read_object self.outpoints.build(df, size) f.close() LOG('cache', 'stop', len(self.outpoints), n[0]) LOG('cache', self.height, repr(self.block_name)) except IOError: pass LOG('cache', 'stop', t0.end())
def load_metadata(self, fileob): from coro.asn1.data_file import DataFileReader LOG('loading metadata', 'start') t0 = timer() max_block = 0 max_pos = 0 df = DataFileReader(fileob) try: info = df.read_object() version = info[0] assert (version == 1) version, nblocks = info for i in xrange(nblocks): name, pos, num, prev = df.read_object() name = Name(name) prev = Name(prev) self.blocks[name] = pos max_pos = max(pos, max_pos) self.prev[name] = prev self.num_block.setdefault(num, set()).add(name) self.block_num[name] = num max_block = max(max_block, num) self.last_block = max_block except coro.asn1.ber.DecodeError: LOG('error decoding metadata') LOG('loading metadata', 'stop', t0.end(), self.last_block) return max_pos
def load_state (self, path=None): from coro.asn1.data_file import DataFileReader from __main__ import G if path is None: path = os.path.join (G.args.base, self.save_path) W ('loading outpoints cache...') t0 = timer() try: f = open (path, 'rb') df = DataFileReader (f) info = df.read_object() assert (info[0] == self.cache_version) # version [_, self.height, self.block_name, self.total, self.lost, self.fees, size] = info W (' height = %d ...' % (self.height,)) self.block_name = Name (self.block_name) n = [0] def gen(): while 1: try: x = df.read_object() n[0] += 1 yield x except EOFError: break self.outpoints.build (gen(), size) f.close() W ('[loaded outpoints %d/%d entries]' % (len(self.outpoints),n[0])) W ('\nlast block: %d %064x\n' % (self.height, self.block_name)) except IOError: pass W ('...done (%.2fs)\n' % (t0.end(),))
def load_state(self, path=None): from coro.asn1.data_file import DataFileReader from __main__ import G if path is None: path = os.path.join(G.args.base, self.save_path) W('loading outpoints cache...') t0 = timer() try: f = open(path, 'rb') df = DataFileReader(f) info = df.read_object() if info[0] < self.cache_version: W('old cache version, ignoring...\n') return assert (info[0] == self.cache_version) # version [ _, self.height, self.block_name, self.total, self.lost, self.fees, size ] = info W(' height = %d size = %d ...' % (self.height, size)) self.block_name = Name(self.block_name) n = [0] df.next = df.read_object self.outpoints.build(df, size) f.close() W('[loaded outpoints %d/%d entries]' % (len(self.outpoints), n[0])) W('\nlast block: %d %064x\n' % (self.height, self.block_name)) except IOError: pass W('...done (%.2fs)\n' % (t0.end(), ))
def load_state (self, path=None): from coro.asn1.data_file import DataFileReader from __main__ import G if path is None: path = os.path.join (G.args.base, self.save_path) LOG ('cache', 'start') t0 = timer() try: f = open (path, 'rb') df = DataFileReader (f) info = df.read_object() if info[0] < self.cache_version: LOG ('old cache version, ignoring') return assert (info[0] == self.cache_version) # version [_, self.height, self.block_name, self.total, self.lost, self.fees, size] = info LOG ('cache', self.height, size) self.block_name = Name (self.block_name) n = [0] df.next = df.read_object self.outpoints.build (df, size) f.close() LOG ('cache', 'stop', len(self.outpoints), n[0]) LOG ('cache', self.height, repr(self.block_name)) except IOError: pass LOG ('cache', 'stop', t0.end())
def load_metadata (self, fileob): from coro.asn1.data_file import DataFileReader LOG ('loading metadata', 'start') t0 = timer() max_block = 0 max_pos = 0 df = DataFileReader (fileob) try: info = df.read_object() version = info[0] assert (version == 1) version, nblocks = info for i in xrange (nblocks): name, pos, num, prev = df.read_object() name = Name (name) prev = Name (prev) self.blocks[name] = pos max_pos = max (pos, max_pos) self.prev[name] = prev self.num_block.setdefault (num, set()).add (name) self.block_num[name] = num max_block = max (max_block, num) self.last_block = max_block except coro.asn1.ber.DecodeError: LOG ('error decoding metadata') LOG ('loading metadata', 'stop', t0.end(), self.last_block) return max_pos
def gen_utxo (path='/usr/local/caesure/utxo.bin'): f = open (path, 'rb') df = DataFileReader (f) info = df.read_object() # note: first object is some metadata [version, height, block_name, total, lost, fees, size] = info try: while 1: # this is followed by ((txname,index), [(index, amt, script), ...]) yield df.read_object() except EOFError: f.close()
def gen_utxo(path='/usr/local/caesure/utxo.bin'): f = open(path, 'rb') df = DataFileReader(f) info = df.read_object() # note: first object is some metadata [version, height, block_name, total, lost, fees, size] = info try: while 1: # this is followed by (txname[:16], index, amt, script), ... yield df.read_object() except EOFError: f.close()