def launch_node(args: Namespace, trinity_config: TrinityConfig, endpoint: Endpoint) -> None: with trinity_config.process_id_file('networking'): endpoint.connect() NodeClass = trinity_config.node_class # Temporary hack: We setup a second instance of the PluginManager. # The first instance was only to configure the ArgumentParser whereas # for now, the second instance that lives inside the networking process # performs the bulk of the work. In the future, the PluginManager # should probably live in its own process and manage whether plugins # run in the shared plugin process or spawn their own. plugin_manager = setup_plugins(SharedProcessScope(endpoint)) plugin_manager.prepare(args, trinity_config) plugin_manager.broadcast(TrinityStartupEvent( args, trinity_config )) node = NodeClass(plugin_manager, trinity_config) loop = node.get_event_loop() asyncio.ensure_future(handle_networking_exit(node, plugin_manager, endpoint), loop=loop) asyncio.ensure_future(node.run(), loop=loop) loop.run_forever() loop.close()
def launch_node(args: Namespace, chain_config: ChainConfig, endpoint: Endpoint) -> None: with chain_config.process_id_file('networking'): endpoint.connect() NodeClass = chain_config.node_class # Temporary hack: We setup a second instance of the PluginManager. # The first instance was only to configure the ArgumentParser whereas # for now, the second instance that lives inside the networking process # performs the bulk of the work. In the future, the PluginManager # should probably live in its own process and manage whether plugins # run in the shared plugin process or spawn their own. plugin_manager = setup_plugins(SharedProcessScope(endpoint)) plugin_manager.prepare(args, chain_config) plugin_manager.broadcast(TrinityStartupEvent(args, chain_config)) node = NodeClass(plugin_manager, chain_config) run_service_until_quit(node)