From 3ec35cbd56573a1700cb0cb43e5d96159f1202bd Mon Sep 17 00:00:00 2001 From: maciejhirsz Date: Thu, 9 Aug 2018 16:56:58 +0200 Subject: [PATCH 1/4] Expose node public key to telemetry --- substrate/service/src/lib.rs | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/substrate/service/src/lib.rs b/substrate/service/src/lib.rs index 53fba5bcc09ae..abc63bccd0c22 100644 --- a/substrate/service/src/lib.rs +++ b/substrate/service/src/lib.rs @@ -57,6 +57,7 @@ pub mod chain_ops; use std::io; use std::net::SocketAddr; use std::sync::Arc; +use std::fmt::Write; use futures::prelude::*; use keystore::Store as Keystore; use client::BlockchainEvents; @@ -125,10 +126,17 @@ impl Service keystore.generate_from_seed(seed)?; } - if keystore.contents()?.is_empty() { - let key = keystore.generate("")?; - info!("Generated a new keypair: {:?}", key.public()); - } + // Keep the public key for telemetry + let public_key = match keystore.contents()?.get(0) { + Some(public_key) => public_key.clone(), + None => { + let key = keystore.generate("")?; + let public_key = key.public(); + info!("Generated a new keypair: {:?}", public_key); + + public_key + } + }; let (client, on_demand) = Components::build_client(&config, executor)?; let best_header = client.best_block_header()?; @@ -218,6 +226,13 @@ impl Service // Telemetry let telemetry = match config.telemetry_url { Some(url) => { + println!("{:?}", keystore.contents().unwrap()[0]); + let mut pubkey = String::new(); + + for ch in public_key.as_slice() { + write!(pubkey, "{:x}", ch).unwrap(); + } + let name = config.name.clone(); let impl_name = config.impl_name.to_owned(); let version = version.clone(); @@ -231,6 +246,7 @@ impl Service "version" => version.clone(), "config" => "", "chain" => chain_name.clone(), + "pubkey" => &pubkey, ); }), })) From 7c3e6e28bba91c7d0ea905eb586e1c5b73d263c3 Mon Sep 17 00:00:00 2001 From: maciejhirsz Date: Thu, 9 Aug 2018 17:09:46 +0200 Subject: [PATCH 2/4] unwrap to expect --- substrate/service/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/service/src/lib.rs b/substrate/service/src/lib.rs index abc63bccd0c22..b2748d58954c3 100644 --- a/substrate/service/src/lib.rs +++ b/substrate/service/src/lib.rs @@ -230,7 +230,7 @@ impl Service let mut pubkey = String::new(); for ch in public_key.as_slice() { - write!(pubkey, "{:x}", ch).unwrap(); + write!(pubkey, "{:x}", ch).expect("Cannot fail on u8 slices; qed"); } let name = config.name.clone(); From 102266b2f939898938bb8352e55b8f10da8be76f Mon Sep 17 00:00:00 2001 From: maciejhirsz Date: Thu, 9 Aug 2018 17:37:09 +0200 Subject: [PATCH 3/4] Make sure all the zeros are there --- substrate/service/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/service/src/lib.rs b/substrate/service/src/lib.rs index b2748d58954c3..05412760f1433 100644 --- a/substrate/service/src/lib.rs +++ b/substrate/service/src/lib.rs @@ -230,7 +230,7 @@ impl Service let mut pubkey = String::new(); for ch in public_key.as_slice() { - write!(pubkey, "{:x}", ch).expect("Cannot fail on u8 slices; qed"); + write!(pubkey, "{:02x}", ch).expect("Cannot fail on u8 slices; qed"); } let name = config.name.clone(); From 8d0b8a2f15e2a4b692bd914c712a7cd3bc68853d Mon Sep 17 00:00:00 2001 From: maciejhirsz Date: Thu, 9 Aug 2018 17:37:57 +0200 Subject: [PATCH 4/4] Cleanup --- substrate/service/src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/substrate/service/src/lib.rs b/substrate/service/src/lib.rs index 05412760f1433..9fcd157f733c8 100644 --- a/substrate/service/src/lib.rs +++ b/substrate/service/src/lib.rs @@ -226,7 +226,6 @@ impl Service // Telemetry let telemetry = match config.telemetry_url { Some(url) => { - println!("{:?}", keystore.contents().unwrap()[0]); let mut pubkey = String::new(); for ch in public_key.as_slice() {