From 083d061e4628435a26763f628b128b60dac494d9 Mon Sep 17 00:00:00 2001 From: Giacomo Pasini Date: Wed, 2 Aug 2023 17:00:52 +0200 Subject: [PATCH] Add dummy libp2p adapter for mempool (#286) --- nomos-services/mempool/Cargo.toml | 1 + .../mempool/src/network/adapters/libp2p.rs | 38 +++++++++++++++++++ .../mempool/src/network/adapters/mod.rs | 3 ++ 3 files changed, 42 insertions(+) create mode 100644 nomos-services/mempool/src/network/adapters/libp2p.rs diff --git a/nomos-services/mempool/Cargo.toml b/nomos-services/mempool/Cargo.toml index 1786cb22..3ea455c1 100644 --- a/nomos-services/mempool/Cargo.toml +++ b/nomos-services/mempool/Cargo.toml @@ -32,3 +32,4 @@ blake2 = "0.10" default = [] waku = ["nomos-network/waku", "nomos-core/waku", "waku-bindings"] mock = ["linked-hash-map", "nomos-network/mock", "rand", "nomos-core/mock"] +libp2p = ["nomos-network/libp2p"] diff --git a/nomos-services/mempool/src/network/adapters/libp2p.rs b/nomos-services/mempool/src/network/adapters/libp2p.rs new file mode 100644 index 00000000..ecbce390 --- /dev/null +++ b/nomos-services/mempool/src/network/adapters/libp2p.rs @@ -0,0 +1,38 @@ +// std +use std::marker::PhantomData; +// crates +use futures::Stream; +use serde::{de::DeserializeOwned, Serialize}; +// internal +use crate::network::NetworkAdapter; +use nomos_network::backends::libp2p::Libp2p; +use nomos_network::NetworkService; +use overwatch_rs::services::relay::OutboundRelay; +use overwatch_rs::services::ServiceData; + +pub struct Libp2pAdapter { + _network_relay: OutboundRelay< as ServiceData>::Message>, + _tx: PhantomData, +} + +#[async_trait::async_trait] +impl NetworkAdapter for Libp2pAdapter +where + Tx: DeserializeOwned + Serialize + Send + Sync + 'static, +{ + type Backend = Libp2p; + type Tx = Tx; + + async fn new( + _network_relay: OutboundRelay< as ServiceData>::Message>, + ) -> Self { + Self { + _network_relay, + _tx: PhantomData, + } + } + async fn transactions_stream(&self) -> Box + Unpin + Send> { + // TODO + Box::new(futures::stream::empty()) + } +} diff --git a/nomos-services/mempool/src/network/adapters/mod.rs b/nomos-services/mempool/src/network/adapters/mod.rs index 535b8e52..30adeb0a 100644 --- a/nomos-services/mempool/src/network/adapters/mod.rs +++ b/nomos-services/mempool/src/network/adapters/mod.rs @@ -1,5 +1,8 @@ #[cfg(feature = "waku")] pub mod waku; +#[cfg(feature = "libp2p")] +pub mod libp2p; + #[cfg(feature = "mock")] pub mod mock;