#W ('b=%r\n' % (b,)) lx.feed_block(b, height, verify=True) if height % 1000 == 0: WB('[%d]' % (height, )) if __name__ == '__main__': import argparse class GlobalState: pass G = GlobalState() p = argparse.ArgumentParser() p.add_argument('-b', '--base', help='data directory', default='/usr/local/caesure', metavar='PATH') p.add_argument('--stop', type=int, help='stopping block height', default=10000) G.args = p.parse_args() db = G.block_db = BlockDB(read_only=True) #import coro.backdoor #coro.spawn (coro.backdoor.serve, unix_path='/tmp/verify.bd') #coro.spawn (main, db, G) #coro.event_loop() main(db, G)
def log (subject, *data): W ('log: %s %r\n' % (subject, data)) G = GlobalState() p = argparse.ArgumentParser (description='Pull a copy of the blockchain from another node.') p.add_argument ('connect', help="connect to this address", metavar='IP:PORT') p.add_argument ('-i', '--inflight', help='number of blocks in flight.', type=int, default=20) p.add_argument ('-b', '--base', help='data directory', default='/usr/local/caesure', metavar='PATH') p.add_argument ('-g', '--getblocks', action='store_true', help='use getblocks rather than getheaders') G.args = p.parse_args() G.args.packet = False G.log = log G.verbose = False G.block_db = BlockDB() block_fifo = coro.fifo() # tried to use inverted_semaphore here, couldn't get it to work. in_flight = 0 in_flight_cv = coro.condition_variable() import coro.backdoor coro.spawn (coro.backdoor.serve, unix_path='/tmp/chainpuller.bd') coro.spawn (go, G) coro.spawn (rate_thread) coro.spawn (write_thread) coro.event_loop()