Beispiel #1
0
                      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)
Beispiel #2
0
                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)
Beispiel #3
0
    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)