def initial(cls): assert DbState.is_initial_sync(), "already synced" print("[INIT] *** Initial fast sync ***") cls.from_checkpoints() cls.from_steemd(is_initial_sync=True) print("[INIT] *** Initial cache build ***") # TODO: disable indexes during this process CachedPost.recover_missing_posts() FeedCache.rebuild()
def initial(self): """Initial sync routine.""" assert DbState.is_initial_sync(), "already synced" log.info("[INIT] *** Initial fast sync ***") self.from_checkpoints() self.from_steemd(is_initial_sync=True) log.info("[INIT] *** Initial cache build ***") CachedPost.recover_missing_posts(self._steem) FeedCache.rebuild() Follow.force_recount()
def run(): print("[HIVE] Welcome to hivemind") # make sure db schema is up to date, perform checks DbState.initialize() # prefetch id->name memory map Accounts.load_ids() if DbState.is_initial_sync(): print("[INIT] *** Initial fast sync ***") sync_from_checkpoints() sync_from_steemd() print("[INIT] *** Initial cache build ***") # todo: disable indexes during this process cache_missing_posts() FeedCache.rebuild() DbState.finish_initial_sync() else: # recover from fork Blocks.verify_head() # perform cleanup in case process did not exit cleanly cache_missing_posts() while True: # sync up to irreversible block sync_from_steemd() # take care of payout backlog CachedPost.dirty_paidouts(Blocks.head_date()) CachedPost.flush(trx=True) # start listening listen_steemd()