event_bus: EndpointAPI) -> Iterable[Service]: if boot_info.args.disable_blacklistdb: # Allow this component to be disabled for extreme cases such as the # user swapping in an equivalent experimental version. cls.logger.warning("Blacklist Database disabled via CLI flag") return else: yield cls._get_blacklist_service(boot_info, event_bus) if boot_info.args.disable_eth1_peer_db: # Allow this component to be disabled for extreme cases such as the # user swapping in an equivalent experimental version. cls.logger.warning("ETH1 Peer Database disabled via CLI flag") else: yield cls._get_eth1_peer_server(boot_info, event_bus) async def do_run(self, event_bus: EndpointAPI) -> None: boot_info = self._boot_info try: tracker_services = self._get_services(boot_info, event_bus) except BadDatabaseError as err: self.logger.exception( f"Unrecoverable error in Network Component: {err}") await run_background_asyncio_services(tracker_services) if __name__ == "__main__": from trinity.extensibility.component import run_asyncio_eth1_component run_asyncio_eth1_component(NetworkDBComponent)
f'{NodeClass.__name__} wait_finished() task') tasks = [sync_task, node_manager_task] try: await wait_first(tasks, max_wait_after_cancellation=2) except asyncio.TimeoutError: self.logger.warning( "Timed out waiting for tasks to terminate after cancellation: %s", tasks) async def launch_sync(self, node: Node[BasePeer], strategy: BaseSyncStrategy, boot_info: BootInfo, event_bus: EndpointAPI) -> None: await node.get_manager().wait_started() await strategy.sync( boot_info.args, self.logger, node.get_chain(), node.base_db, node.get_peer_pool(), event_bus, ) if __name__ == "__main__": # SyncerComponent depends on a separate component to get peer candidates, so when running it # you must pass the path to the discovery component's IPC file, like: # $ python .../syncer/component.py --trinity-root-dir /tmp/syncer \ # --connect-to-endpoints /tmp/syncer/mainnet/ipcs-eth1/discovery.ipc from trinity.extensibility.component import run_asyncio_eth1_component run_asyncio_eth1_component(SyncerComponent)
Universal Plug 'n' Play (upnp) standard. """ name = "Upnp" endpoint_name = UPNP_EVENTBUS_ENDPOINT @property def is_enabled(self) -> bool: return not bool(self._boot_info.args.disable_upnp) @classmethod def configure_parser(cls, arg_parser: ArgumentParser, subparser: _SubParsersAction) -> None: arg_parser.add_argument( "--disable-upnp", action="store_true", help="Disable upnp mapping", ) @classmethod async def do_run(cls, boot_info: BootInfo, event_bus: EndpointAPI) -> None: port = boot_info.trinity_config.port upnp_service = UPnPService(port, event_bus) async with background_asyncio_service(upnp_service) as manager: await manager.wait_finished() if __name__ == "__main__": from trinity.extensibility.component import run_asyncio_eth1_component run_asyncio_eth1_component(UpnpComponent)