From 8ca11b166bd6c48679eda0b73d6b360c29e6bc08 Mon Sep 17 00:00:00 2001 From: xgreenx Date: Sat, 6 Jan 2024 03:22:00 +0100 Subject: [PATCH] Remove `Arc` --- crates/services/p2p/src/p2p_service.rs | 23 ++++++++----------- .../p2p/src/request_response/messages.rs | 12 ++++------ crates/services/p2p/src/service.rs | 6 ++--- 3 files changed, 15 insertions(+), 26 deletions(-) diff --git a/crates/services/p2p/src/p2p_service.rs b/crates/services/p2p/src/p2p_service.rs index 65bcc3f4c2..de80500632 100644 --- a/crates/services/p2p/src/p2p_service.rs +++ b/crates/services/p2p/src/p2p_service.rs @@ -3,6 +3,10 @@ use crate::{ FuelBehaviour, FuelBehaviourEvent, }, + codecs::{ + postcard::PostcardCodec, + GossipsubCodec, + }, config::{ build_transport_function, Config, @@ -14,6 +18,7 @@ use crate::{ }, topics::GossipsubTopics, }, + heartbeat::HeartbeatEvent, peer_manager::{ PeerManager, Punisher, @@ -57,19 +62,9 @@ use libp2p::{ SwarmBuilder, }; use libp2p_gossipsub::PublishError; - -use crate::{ - codecs::{ - postcard::PostcardCodec, - GossipsubCodec, - RequestResponseConverter, - }, - heartbeat::HeartbeatEvent, -}; use rand::seq::IteratorRandom; use std::{ collections::HashMap, - sync::Arc, time::Duration, }; use tracing::{ @@ -573,11 +568,11 @@ impl FuelP2PService { ( ResponseChannelItem::Block(channel), ResponseMessage::Block(block), - ) => channel.send(block.map(|b| Arc::into_inner(b).expect("There are not other references, we just received this from the network"))).is_ok(), + ) => channel.send(block).is_ok(), ( ResponseChannelItem::Transactions(channel), ResponseMessage::Transactions(transactions), - ) => channel.send(transactions.map(|b| Arc::into_inner(b).expect("There are not other references, we just received this from the network"))).is_ok(), + ) => channel.send(transactions).is_ok(), ( ResponseChannelItem::SealedHeaders(channel), ResponseMessage::SealedHeaders(headers), @@ -1579,7 +1574,7 @@ mod tests { consensus: Consensus::PoA(PoAConsensus::new(Default::default())), }; - let _ = node_b.send_response_msg(*request_id, ResponseMessage::Block(Some(Arc::new(sealed_block)))); + let _ = node_b.send_response_msg(*request_id, ResponseMessage::Block(Some(sealed_block))); } RequestMessage::SealedHeaders(range) => { let sealed_headers: Vec<_> = arbitrary_headers_for_range(range.clone()); @@ -1589,7 +1584,7 @@ mod tests { RequestMessage::Transactions(_) => { let txs = (0..5).map(|_| Transaction::default_test_tx()).collect(); let transactions = vec![Transactions(txs)]; - let _ = node_b.send_response_msg(*request_id, ResponseMessage::Transactions(Some(Arc::new(transactions)))); + let _ = node_b.send_response_msg(*request_id, ResponseMessage::Transactions(Some(transactions))); } } } diff --git a/crates/services/p2p/src/request_response/messages.rs b/crates/services/p2p/src/request_response/messages.rs index 8c7be510ce..2d82ac42dd 100644 --- a/crates/services/p2p/src/request_response/messages.rs +++ b/crates/services/p2p/src/request_response/messages.rs @@ -1,8 +1,3 @@ -use std::{ - ops::Range, - sync::Arc, -}; - use fuel_core_types::{ blockchain::{ SealedBlock, @@ -16,6 +11,7 @@ use serde::{ Deserialize, Serialize, }; +use std::ops::Range; use thiserror::Error; use tokio::sync::oneshot; @@ -40,11 +36,11 @@ pub enum ResponseChannelItem { Transactions(oneshot::Sender>>), } -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize)] pub enum ResponseMessage { - Block(Option>), + Block(Option), SealedHeaders(Option>), - Transactions(Option>>), + Transactions(Option>), } #[derive(Debug, Error)] diff --git a/crates/services/p2p/src/service.rs b/crates/services/p2p/src/service.rs index 147d6248b6..7b2eac2ab4 100644 --- a/crates/services/p2p/src/service.rs +++ b/crates/services/p2p/src/service.rs @@ -566,8 +566,7 @@ where match request_message { RequestMessage::Block(block_height) => { match self.db.get_sealed_block(&block_height) { - Ok(maybe_block) => { - let response = maybe_block.map(Arc::new); + Ok(response) => { let _ = self.p2p_service.send_response_msg(request_id, ResponseMessage::Block(response)); }, Err(e) => { @@ -580,8 +579,7 @@ where } RequestMessage::Transactions(range) => { match self.db.get_transactions(range.clone()) { - Ok(maybe_transactions) => { - let response = maybe_transactions.map(Arc::new); + Ok(response) => { let _ = self.p2p_service.send_response_msg(request_id, ResponseMessage::Transactions(response)); }, Err(e) => {