pub fn new_worker_and_service<Client, Block, DhtEventStream>(
    client: Arc<Client>,
    network: Arc<dyn NetworkProvider>,
    dht_event_rx: DhtEventStream,
    role: Role,
    prometheus_registry: Option<Registry>,
    spawner: impl SpawnNamed + 'static,
) -> (Worker<Client, Block, DhtEventStream>, Service)where
    Block: BlockT + Unpin + 'static,
    Client: AuthorityDiscovery<Block> + Send + Sync + 'static + HeaderBackend<Block>,
    DhtEventStream: Stream<Item = DhtEvent> + Unpin,