Add a warning when the user passes a legacy PeerId (#6158)

* Add a warning when the user passes a legacy PeerId

* Update client/network/src/config.rs

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:
Pierre Krieger
2020-05-27 19:55:13 +02:00
committed by GitHub
parent 7522a7a257
commit e2e44f005c
+15 -2
View File
@@ -272,8 +272,21 @@ pub fn parse_str_addr(addr_str: &str) -> Result<(PeerId, Multiaddr), ParseErr> {
/// Splits a Multiaddress into a Multiaddress and PeerId.
pub fn parse_addr(mut addr: Multiaddr)-> Result<(PeerId, Multiaddr), ParseErr> {
let who = match addr.pop() {
Some(multiaddr::Protocol::P2p(key)) => PeerId::from_multihash(key)
.map_err(|_| ParseErr::InvalidPeerId)?,
Some(multiaddr::Protocol::P2p(key)) => {
if !matches!(key.algorithm(), multiaddr::multihash::Code::Identity) {
// (note: this is the "person bowing" emoji)
log::warn!(
"🙇 You are using the peer ID {}. This peer ID uses a legacy, deprecated \
representation that will no longer be supported in the future. \
Please refresh it by performing a RPC query to the appropriate node, \
by looking at its logs, or by using `subkey inspect-node-key` on its \
private key.",
bs58::encode(key.as_bytes()).into_string()
);
}
PeerId::from_multihash(key).map_err(|_| ParseErr::InvalidPeerId)?
},
_ => return Err(ParseErr::PeerIdMissing),
};