Make NetworkService::add_reserved_peer() accept MultiaddrWithPeerId (#12102)

* Make `add_reserved_peer()` accept `MultiaddrWithPeerId`

* minor: cargo fmt

* minor: error to string conversion

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
This commit is contained in:
Dmitry Markin
2022-08-29 14:54:57 +03:00
committed by GitHub
parent 674e73caf0
commit 224562729d
9 changed files with 49 additions and 34 deletions
+10 -3
View File
@@ -42,7 +42,7 @@ use jsonrpsee::{core::Error as JsonRpseeError, RpcModule};
use log::{debug, error, warn};
use sc_client_api::{blockchain::HeaderBackend, BlockBackend, BlockchainEvents, ProofProvider};
use sc_network::PeerId;
use sc_network_common::service::NetworkBlock;
use sc_network_common::{config::MultiaddrWithPeerId, service::NetworkBlock};
use sc_rpc_server::WsConfig;
use sc_utils::mpsc::TracingUnboundedReceiver;
use sp_blockchain::HeaderMetadata;
@@ -230,8 +230,15 @@ async fn build_network_future<
}
}
sc_rpc::system::Request::NetworkAddReservedPeer(peer_addr, sender) => {
let x = network.add_reserved_peer(peer_addr)
.map_err(sc_rpc::system::error::Error::MalformattedPeerArg);
let result = match MultiaddrWithPeerId::try_from(peer_addr) {
Ok(peer) => {
network.add_reserved_peer(peer)
},
Err(err) => {
Err(err.to_string())
},
};
let x = result.map_err(sc_rpc::system::error::Error::MalformattedPeerArg);
let _ = sender.send(x);
}
sc_rpc::system::Request::NetworkRemoveReservedPeer(peer_id, sender) => {
+15 -12
View File
@@ -24,9 +24,12 @@ use parking_lot::Mutex;
use sc_client_api::{Backend, CallExecutor};
use sc_network::{
config::{NetworkConfiguration, TransportConfig},
multiaddr, Multiaddr,
multiaddr,
};
use sc_network_common::{
config::MultiaddrWithPeerId,
service::{NetworkBlock, NetworkPeers, NetworkStateInfo},
};
use sc_network_common::service::{NetworkBlock, NetworkPeers, NetworkStateInfo};
use sc_service::{
client::Client,
config::{BasePath, DatabaseSource, KeystoreConfig},
@@ -49,8 +52,8 @@ const MAX_WAIT_TIME: Duration = Duration::from_secs(60 * 3);
struct TestNet<G, E, F, U> {
runtime: Runtime,
authority_nodes: Vec<(usize, F, U, Multiaddr)>,
full_nodes: Vec<(usize, F, U, Multiaddr)>,
authority_nodes: Vec<(usize, F, U, MultiaddrWithPeerId)>,
full_nodes: Vec<(usize, F, U, MultiaddrWithPeerId)>,
chain_spec: GenericChainSpec<G, E>,
base_port: u16,
nodes: usize,
@@ -320,7 +323,7 @@ where
handle.spawn(service.clone().map_err(|_| ()));
let addr =
addr.with(multiaddr::Protocol::P2p((service.network().local_peer_id()).into()));
MultiaddrWithPeerId { multiaddr: addr, peer_id: service.network().local_peer_id() };
self.authority_nodes.push((self.nodes, service, user_data, addr));
self.nodes += 1;
}
@@ -340,7 +343,7 @@ where
handle.spawn(service.clone().map_err(|_| ()));
let addr =
addr.with(multiaddr::Protocol::P2p((service.network().local_peer_id()).into()));
MultiaddrWithPeerId { multiaddr: addr, peer_id: service.network().local_peer_id() };
self.full_nodes.push((self.nodes, service, user_data, addr));
self.nodes += 1;
}
@@ -382,7 +385,7 @@ where
for (_, service, _, _) in network.full_nodes.iter().skip(1) {
service
.network()
.add_reserved_peer(first_address.to_string())
.add_reserved_peer(first_address.clone())
.expect("Error adding reserved peer");
}
@@ -414,7 +417,7 @@ where
if let Some((_, service, _, node_id)) = network.full_nodes.get(i) {
service
.network()
.add_reserved_peer(address.to_string())
.add_reserved_peer(address)
.expect("Error adding reserved peer");
address = node_id.clone();
}
@@ -479,7 +482,7 @@ pub fn sync<G, E, Fb, F, B, ExF, U>(
for (_, service, _, _) in network.full_nodes.iter().skip(1) {
service
.network()
.add_reserved_peer(first_address.to_string())
.add_reserved_peer(first_address.clone())
.expect("Error adding reserved peer");
}
@@ -532,13 +535,13 @@ pub fn consensus<G, E, Fb, F>(
for (_, service, _, _) in network.full_nodes.iter() {
service
.network()
.add_reserved_peer(first_address.to_string())
.add_reserved_peer(first_address.clone())
.expect("Error adding reserved peer");
}
for (_, service, _, _) in network.authority_nodes.iter().skip(1) {
service
.network()
.add_reserved_peer(first_address.to_string())
.add_reserved_peer(first_address.clone())
.expect("Error adding reserved peer");
}
network.run_until_all_full(|_index, service| {
@@ -556,7 +559,7 @@ pub fn consensus<G, E, Fb, F>(
for (_, service, _, _) in network.full_nodes.iter() {
service
.network()
.add_reserved_peer(first_address.to_string())
.add_reserved_peer(first_address.clone())
.expect("Error adding reserved peer");
}