def run(filename): b = Blockchain() # automatically resume from where we left off # previous + last + 1 start_block = get_previous_block_num(get_last_line(filename)) + 2 upstream_blk = b.get_current_block() checkin_count = 0 print("Our local block: {}".format(start_block)) print("The Upstream block: {}".format(b.get_current_block_num())) print("Progress: {}%\n".format( progress(start_block, b.get_current_block_num()))) with open(filename, 'a+') as file: checkin_ts = time.time() for block in b.stream_from(start_block=start_block, full_blocks=True): if checkin_ts + 10 < time.time(): pdone = progress(int(block['block_id'][:8], base=16), b.get_current_block_num()) dl_rate = checkin_count / 10 print("Rate: {}blk/sec, Progress: {}%".format(dl_rate, pdone)) checkin_ts = time.time() checkin_count = 0 file.write(json.dumps(block, sort_keys=True) + '\n') checkin_count += 1
def run(): blockchain = Blockchain() id = blockchain.get_current_block_num() global current_id if id != current_id: block = blockchain.get_current_block() thread = threading.Thread(target=parse_next_block, args=(block, )) print("Start new thread", thread.name) thread.start() current_id = id threading.Timer(1, run).start()
from steem.blockchain import Blockchain # parse the whole chain for event in Blockchain().replay(): print("Event: %s" % event['op_type']) print("Time: %s" % event['timestamp']) print("Body: %s\n" % event['op']) # parse only payments from specific datetime until now b = Blockchain() history = b.replay(start_block=b.get_block_from_time("2016-09-01T00:00:00"), end_block=b.get_current_block(), filter_by=['transfer']) for payment in history: print("@%s sent %s to @%s" % (payment['from'], payment['amount'], payment['to'])) # Output: # @victoriart sent 1.000 SBD to @null # @dude sent 5.095 STEEM to @bittrex # @devil sent 5.107 STEEM to @poloniex # @pinoytravel sent 0.010 SBD to @null # @aladdin sent 5.013 STEEM to @poloniex # @mrwang sent 31.211 STEEM to @blocktrades # @kodi sent 0.030 SBD to @steembingo
from steem.blockchain import Blockchain # parse the whole chain for event in Blockchain().replay(): print("Event: %s" % event['op_type']) print("Time: %s" % event['timestamp']) print("Body: %s\n" % event['op']) # parse only payments from specific datetime until now b = Blockchain() history = b.replay( start_block=b.get_block_from_time("2016-09-01T00:00:00"), end_block=b.get_current_block(), filter_by=['transfer'] ) for payment in history: print("@%s sent %s to @%s" % (payment['from'], payment['amount'], payment['to'])) # Output: # @victoriart sent 1.000 SBD to @null # @dude sent 5.095 STEEM to @bittrex # @devil sent 5.107 STEEM to @poloniex # @pinoytravel sent 0.010 SBD to @null # @aladdin sent 5.013 STEEM to @poloniex # @mrwang sent 31.211 STEEM to @blocktrades # @kodi sent 0.030 SBD to @steembingo