config.port, config.port, config.bootstrap_nodes, config.preferred_nodes, event_bus, socket, enr_db, (eth_cap_provider, ), ) with db: await async_service.run_trio_service(discovery_service) async def generate_eth_cap_enr_field( vm_config: Tuple[Tuple[BlockNumber, Type[VirtualMachineAPI]], ...], headerdb: BaseAsyncHeaderDB, ) -> Tuple[Literal[b'eth'], Tuple[bytes, bytes]]: head = await headerdb.coro_get_canonical_head() genesis_hash = await headerdb.coro_get_canonical_block_hash( GENESIS_BLOCK_NUMBER) fork_blocks = forkid.extract_fork_blocks(vm_config) our_forkid = forkid.make_forkid(genesis_hash, head.block_number, fork_blocks) return (b'eth', sedes.List([forkid.ForkID]).serialize([our_forkid])) if __name__ == "__main__": from trinity.extensibility.component import run_trio_eth1_component run_trio_eth1_component(PeerDiscoveryComponent)
outgoing_message_send_channel=outgoing_message_channels[0], endpoint_vote_send_channel=endpoint_vote_channels[0], ) logger.info(f"Starting discovery, listening on port {port}") logger.info(f"Local Node ID: {encode_hex(local_enr.node_id)}") logger.info(f"Local ENR: {local_enr}") services = ( datagram_sender, datagram_receiver, packet_encoder, packet_decoder, packer, message_dispatcher, endpoint_tracker, routing_table_manager, ) await socket.bind(("0.0.0.0", port)) with socket: async with trio.open_nursery() as nursery: for service in services: nursery.start_soon(async_service.TrioManager.run_service, service) if __name__ == "__main__": from trinity.extensibility.component import run_trio_eth1_component run_trio_eth1_component(DiscV5Component)
Continously try to map external to internal ip address/port using the 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", ) async def do_run(self, event_bus: EndpointAPI) -> None: port = self._boot_info.trinity_config.port upnp_service = UPnPService(port, event_bus) async with background_trio_service(upnp_service) as manager: await manager.wait_finished() if __name__ == "__main__": from trinity.extensibility.component import run_trio_eth1_component run_trio_eth1_component(UpnpComponent)