diff --git a/substrate/core/network/src/service.rs b/substrate/core/network/src/service.rs index 81e79dbad9..ac6789f718 100644 --- a/substrate/core/network/src/service.rs +++ b/substrate/core/network/src/service.rs @@ -20,7 +20,7 @@ use std::{io, thread}; use log::{warn, debug, error, trace}; use futures::{Async, Future, Stream, stream, sync::oneshot}; use parking_lot::Mutex; -use network_libp2p::{ProtocolId, PeerId, NetworkConfiguration, NodeIndex, ErrorKind, Severity}; +use network_libp2p::{ProtocolId, NetworkConfiguration, NodeIndex, ErrorKind, Severity}; use network_libp2p::{start_service, parse_str_addr, Service as NetworkService, ServiceEvent as NetworkServiceEvent}; use network_libp2p::{Protocol as Libp2pProtocol, RegisteredProtocol}; use consensus::import_queue::{ImportQueue, Link}; @@ -36,6 +36,8 @@ use crate::specialization::NetworkSpecialization; use tokio::prelude::task::AtomicTask; use tokio::runtime::Runtime; +pub use network_libp2p::PeerId; + /// Type that represents fetch completion future. pub type FetchFuture = oneshot::Receiver>; @@ -180,6 +182,11 @@ impl> Service { self.network.lock().average_upload_per_sec() } + /// Returns the network identity of the node. + pub fn local_peer_id(&self) -> PeerId { + self.network.lock().peer_id().clone() + } + /// Called when a new block is imported by the client. pub fn on_block_imported(&self, hash: B::Hash, header: B::Header) { let _ = self diff --git a/substrate/core/service/src/lib.rs b/substrate/core/service/src/lib.rs index 6f7e5a5e9c..efd86a4c79 100644 --- a/substrate/core/service/src/lib.rs +++ b/substrate/core/service/src/lib.rs @@ -271,6 +271,7 @@ impl Service { // Telemetry let telemetry = config.telemetry_url.clone().map(|url| { let is_authority = config.roles == Roles::AUTHORITY; + let network_id = network.local_peer_id().to_base58(); let pubkey = format!("{}", public_key); let name = config.name.clone(); let impl_name = config.impl_name.to_owned(); @@ -286,7 +287,8 @@ impl Service { "config" => "", "chain" => chain_name.clone(), "pubkey" => &pubkey, - "authority" => is_authority + "authority" => is_authority, + "network_id" => network_id.clone() ); }), }))