Esempio n. 1
0
 async def _run(self) -> None:
     self.logger.info("Running server...")
     mapped_external_ip = await self.upnp_service.add_nat_portmap()
     if mapped_external_ip is None:
         external_ip = '0.0.0.0'
     else:
         external_ip = mapped_external_ip
     await self._start_tcp_listener()
     self.logger.info(
         "enode://%s@%s:%s",
         self.privkey.public_key.to_hex()[2:],
         external_ip,
         self.port,
     )
     self.logger.info('network: %s', self.network_id)
     self.logger.info('peers: max_peers=%s', self.max_peers)
     addr = Address(external_ip, self.port, self.port)
     discovery_proto = PreferredNodeDiscoveryProtocol(
         self.privkey, addr, self.bootstrap_nodes, self.preferred_nodes)
     await self._start_udp_listener(discovery_proto)
     self.discovery = DiscoveryService(discovery_proto, self.peer_pool)
     asyncio.ensure_future(self.peer_pool.run())
     asyncio.ensure_future(self.discovery.run())
     asyncio.ensure_future(self.upnp_service.run())
     self.syncer = self._make_syncer(self.peer_pool)
     await self.syncer.run()
Esempio n. 2
0
    async def _run(self) -> None:
        external_ip = "0.0.0.0"
        address = Address(external_ip, self.trinity_config.port, self.trinity_config.port)

        if self.trinity_config.use_discv5:
            protocol = get_protocol(self.trinity_config)
            topic = get_discv5_topic(self.trinity_config, protocol)

            discovery_protocol: DiscoveryProtocol = DiscoveryByTopicProtocol(
                topic,
                self.trinity_config.nodekey,
                address,
                self.trinity_config.bootstrap_nodes,
                self.cancel_token,
            )
        else:
            discovery_protocol = PreferredNodeDiscoveryProtocol(
                self.trinity_config.nodekey,
                address,
                self.trinity_config.bootstrap_nodes,
                self.trinity_config.preferred_nodes,
                self.cancel_token,
            )

        discovery_service = DiscoveryService(
            discovery_protocol,
            self.trinity_config.port,
            self.event_bus,
            self.cancel_token,
        )

        await discovery_service.run()
Esempio n. 3
0
 async def _run(self) -> None:
     self.logger.info("Running server...")
     mapped_external_ip = await self.upnp_service.add_nat_portmap()
     if mapped_external_ip is None:
         external_ip = '0.0.0.0'
     else:
         external_ip = mapped_external_ip
     await self._start_tcp_listener()
     self.logger.info(
         "enode://%s@%s:%s",
         self.privkey.public_key.to_hex()[2:],
         external_ip,
         self.port,
     )
     self.logger.info('network: %s', self.network_id)
     self.logger.info('peers: max_peers=%s', self.max_peers)
     addr = Address(external_ip, self.port, self.port)
     discovery_proto = PreferredNodeDiscoveryProtocol(
         self.privkey, addr, self.bootstrap_nodes, self.preferred_nodes,
         self.cancel_token)
     self.discovery = DiscoveryService(discovery_proto, self.peer_pool,
                                       self.port, self.cancel_token)
     self.run_daemon(self.peer_pool)
     self.run_daemon(self.discovery)
     # UPNP service is still experimental and not essential, so we don't use run_daemon() for
     # it as that means if it crashes we'd be terminated as well.
     self.run_child_service(self.upnp_service)
     self.syncer = self._make_syncer(self.peer_pool)
     await self.syncer.run()
Esempio n. 4
0
    async def _run(self) -> None:
        external_ip = "0.0.0.0"
        address = Address(external_ip, self.trinity_config.port,
                          self.trinity_config.port)

        discovery_protocol = PreferredNodeDiscoveryProtocol(
            self.trinity_config.nodekey,
            address,
            self.trinity_config.bootstrap_nodes,
            self.trinity_config.preferred_nodes,
            self.cancel_token,
        )

        if self.is_discovery_disabled:
            discovery_service: BaseService = StaticDiscoveryService(
                self.event_bus,
                self.trinity_config.preferred_nodes,
                self.cancel_token,
            )
        else:
            discovery_service = DiscoveryService(
                discovery_protocol,
                self.trinity_config.port,
                self.event_bus,
                self.cancel_token,
            )

        try:
            await discovery_service.run()
        except Exception:
            await self.event_bus.broadcast(
                ShutdownRequest("Discovery ended unexpectedly"))
Esempio n. 5
0
    def __init__(self, chain_config: ChainConfig) -> None:
        super().__init__(chain_config)

        self.network_id = chain_config.network_id
        self.nodekey = chain_config.nodekey

        self._port = chain_config.port
        self._discovery_proto = PreferredNodeDiscoveryProtocol(
            chain_config.nodekey,
            Address('0.0.0.0', chain_config.port, chain_config.port),
            bootstrap_nodes=chain_config.bootstrap_nodes,
            preferred_nodes=chain_config.preferred_nodes,
        )
        self._peer_pool = self._create_peer_pool(chain_config)
        self._discovery = DiscoveryService(self._discovery_proto,
                                           self._peer_pool)
        self.add_service(self._peer_pool)
        self.create_and_add_tx_pool()
Esempio n. 6
0
    def __init__(self, plugin_manager: PluginManager, chain_config: ChainConfig) -> None:
        super().__init__(plugin_manager, chain_config)

        self.network_id = chain_config.network_id
        self.nodekey = chain_config.nodekey

        self._port = chain_config.port
        self._discovery_proto = PreferredNodeDiscoveryProtocol(
            chain_config.nodekey,
            Address('0.0.0.0', chain_config.port, chain_config.port),
            bootstrap_nodes=chain_config.bootstrap_nodes,
            preferred_nodes=chain_config.preferred_nodes,
        )
        self._peer_pool = self._create_peer_pool(chain_config)
        self._discovery = DiscoveryService(
            self._discovery_proto, self._peer_pool, self.cancel_token)
        self._peer_chain = LightPeerChain(self.headerdb, self._peer_pool, self.cancel_token)
        self.notify_resource_available()
Esempio n. 7
0
    async def _run(self) -> None:
        external_ip = "0.0.0.0"
        address = Address(external_ip, self.trinity_config.port,
                          self.trinity_config.port)

        if self.trinity_config.use_discv5:
            protocol = get_protocol(self.trinity_config)
            topic = get_discv5_topic(self.trinity_config, protocol)

            discovery_protocol: DiscoveryProtocol = DiscoveryByTopicProtocol(
                topic,
                self.trinity_config.nodekey,
                address,
                self.trinity_config.bootstrap_nodes,
                self.cancel_token,
            )
        else:
            discovery_protocol = PreferredNodeDiscoveryProtocol(
                self.trinity_config.nodekey,
                address,
                self.trinity_config.bootstrap_nodes,
                self.trinity_config.preferred_nodes,
                self.cancel_token,
            )

        if self.is_discovery_disabled:
            discovery_service: BaseService = StaticDiscoveryService(
                self.event_bus,
                self.trinity_config.preferred_nodes,
                self.cancel_token,
            )
        else:
            discovery_service = DiscoveryService(
                discovery_protocol,
                self.trinity_config.port,
                self.event_bus,
                self.cancel_token,
            )

        try:
            await discovery_service.run()
        except Exception:
            self.event_bus.request_shutdown("Discovery ended unexpectedly")