Better reporting in libp2p (#337)

This commit is contained in:
Pierre Krieger
2018-07-16 19:11:19 +02:00
committed by Arkadiy Paronyan
parent f775b38828
commit bb8987df28
@@ -97,16 +97,20 @@ struct Shared {
impl NetworkService {
/// Starts IO event loop
pub fn new(config: NetworkConfiguration, filter: Option<Arc<ConnectionFilter>>)
-> Result<NetworkService, Error> {
pub fn new(
config: NetworkConfiguration,
filter: Option<Arc<ConnectionFilter>>
) -> Result<NetworkService, Error> {
// TODO: for now `filter` is always `None` ; remove it from the code or implement it
assert!(filter.is_none());
let network_state = NetworkState::new(&config)?;
let local_peer_id = network_state.local_public_key().clone().into_peer_id();
// TODO: debug! instead?
info!(target: "sub-libp2p", "Local node id = {:?}", local_peer_id);
let local_peer_id = network_state.local_public_key().clone()
.into_peer_id();
let mut listen_addr = config_to_listen_addr(&config);
listen_addr.append(AddrComponent::P2P(local_peer_id.clone().into_bytes()));
info!(target: "sub-libp2p", "Local node address is: {}", listen_addr);
let kad_system = KadSystem::without_init(KadSystemConfig {
parallelism: 3,
@@ -951,11 +955,12 @@ fn dial_peer_custom_proto<T, To, St, C>(
Ok(socket)
} else {
debug!(target: "sub-libp2p", "Public key mismatch for \
node {:?} with proto {:?}", expected_peer_id, proto_id);
node {:?} with proto {:?}", expected_peer_id, proto_id);
trace!(target: "sub-libp2p", "Removing addr {} for {:?}",
original_addr, expected_peer_id);
shared.network_state.set_invalid_kad_address(&expected_peer_id, &original_addr);
Err(IoErrorKind::InvalidData.into()) // TODO: correct err
Err(IoError::new(IoErrorKind::InvalidData, "public \
key mismatch when identifyed peer"))
}
)
.and_then(move |socket|
@@ -1029,13 +1034,17 @@ fn process_identify_info(
original_addr.clone())?; // TODO: wrong local addr
if let Some(ref original_listened_addr) = *shared.original_listened_addr.read() {
if let Some(ext_addr) = transport.nat_traversal(original_listened_addr, &info.observed_addr) {
if let Some(mut ext_addr) = transport.nat_traversal(original_listened_addr, &info.observed_addr) {
let mut listened_addrs = shared.listened_addrs.write();
if !listened_addrs.iter().any(|a| a == &ext_addr) {
trace!(target: "sub-libp2p", "NAT traversal: remote observes us as \
{} ; registering {} as one of our own addresses",
info.observed_addr, ext_addr);
listened_addrs.push(ext_addr);
listened_addrs.push(ext_addr.clone());
ext_addr.append(AddrComponent::P2P(shared.kad_system
.local_peer_id().clone().into_bytes()));
info!(target: "sub-libp2p", "New external node address: {}",
ext_addr);
}
}
}