def setup_eth1_modules( self, trinity_config: TrinityConfig) -> Tuple[Eth1ChainRPCModule, ...]: db_manager = create_db_manager(trinity_config.database_ipc_path) db_manager.connect() eth1_app_config = trinity_config.get_app_config(Eth1AppConfig) chain_config = trinity_config.get_chain_config() chain: BaseAsyncChain if eth1_app_config.is_light_mode: header_db = db_manager.get_headerdb() # type: ignore event_bus_light_peer_chain = EventBusLightPeerChain( self.context.event_bus) chain = chain_config.light_chain_class( header_db, peer_chain=event_bus_light_peer_chain) elif eth1_app_config.is_full_mode: db = db_manager.get_db() # type: ignore chain = chain_config.full_chain_class(db) else: raise NotImplementedError( f"Unsupported mode: {trinity_config.sync_mode}") return initialize_eth1_modules(chain, self.event_bus)
def do_start(self) -> None: db_manager = create_db_manager( self.context.trinity_config.database_ipc_path) db_manager.connect() trinity_config = self.context.trinity_config eth1_app_config = self.context.trinity_config.get_app_config( Eth1AppConfig) chain_config = trinity_config.get_chain_config() chain: BaseAsyncChain if eth1_app_config.is_light_mode: header_db = db_manager.get_headerdb() # type: ignore event_bus_light_peer_chain = EventBusLightPeerChain( self.context.event_bus) chain = chain_config.light_chain_class( header_db, peer_chain=event_bus_light_peer_chain) elif eth1_app_config.is_full_mode: db = db_manager.get_db() # type: ignore chain = chain_config.full_chain_class(db) else: raise NotImplementedError( f"Unsupported mode: {trinity_config.sync_mode}") rpc = RPCServer(chain, self.context.event_bus) ipc_server = IPCServer(rpc, self.context.trinity_config.jsonrpc_ipc_path) loop = asyncio.get_event_loop() asyncio.ensure_future( exit_with_service_and_endpoint(ipc_server, self.context.event_bus)) asyncio.ensure_future(ipc_server.run()) loop.run_forever() loop.close()
def _start(self) -> None: db_manager = create_db_manager( self.context.trinity_config.database_ipc_path) db_manager.connect() chain_class = self.context.trinity_config.node_class.chain_class if self.context.trinity_config.sync_mode == SYNC_LIGHT: header_db = db_manager.get_headerdb() # type: ignore event_bus_light_peer_chain = EventBusLightPeerChain( self.context.event_bus) chain = chain_class(header_db, peer_chain=event_bus_light_peer_chain) else: db = db_manager.get_db() # type: ignore chain = chain_class(db) rpc = RPCServer(chain, self.context.event_bus) ipc_server = IPCServer(rpc, self.context.trinity_config.jsonrpc_ipc_path) loop = asyncio.get_event_loop() asyncio.ensure_future( exit_with_service_and_endpoint(ipc_server, self.context.event_bus)) asyncio.ensure_future(ipc_server.run()) loop.run_forever() loop.close()
def get_discv5_topic(trinity_config: TrinityConfig, protocol: Type[Protocol]) -> bytes: db_manager = create_db_manager(trinity_config.database_ipc_path) db_manager.connect() header_db = db_manager.get_headerdb() # type: ignore genesis_hash = header_db.get_canonical_block_hash(BlockNumber(GENESIS_BLOCK_NUMBER)) return get_v5_topic(protocol, genesis_hash)
def __init__(self, event_bus: Endpoint, trinity_config: TrinityConfig) -> None: super().__init__() self._db_manager = create_db_manager(trinity_config.database_ipc_path) self._db_manager.connect() self._headerdb = self._db_manager.get_headerdb() # type: ignore self._jsonrpc_ipc_path: Path = trinity_config.jsonrpc_ipc_path self._network_id = trinity_config.network_id self.event_bus = event_bus
def get_chain(self) -> BaseChain: db_manager = create_db_manager( self.context.trinity_config.database_ipc_path) db_manager.connect() chain_class = self.context.trinity_config.node_class.chain_class if self.context.trinity_config.sync_mode == SYNC_LIGHT: header_db = db_manager.get_headerdb() # type: ignore chain = chain_class(header_db, peer_chain=EventBusLightPeerChain( self.context.event_bus)) else: db = db_manager.get_db() # type: ignore chain = chain_class(db) return chain