mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-07-04 04:01:33 +00:00
fix trust-graph
This commit is contained in:
@ -97,7 +97,7 @@ libp2p-websocket = { package = "fluence-fork-libp2p-websocket", version = "0.27.
|
|||||||
async-std = "1.6.2"
|
async-std = "1.6.2"
|
||||||
env_logger = "0.8.1"
|
env_logger = "0.8.1"
|
||||||
tokio = { version = "0.3", features = ["io-util", "io-std", "stream", "macros", "rt", "rt-multi-thread"] }
|
tokio = { version = "0.3", features = ["io-util", "io-std", "stream", "macros", "rt", "rt-multi-thread"] }
|
||||||
trust-graph = "0.1.0"
|
trust-graph = "0.2.0"
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
members = [
|
members = [
|
||||||
|
@ -33,7 +33,7 @@ void = "1.0"
|
|||||||
bs58 = "0.3.0"
|
bs58 = "0.3.0"
|
||||||
derivative = "2.0.2"
|
derivative = "2.0.2"
|
||||||
|
|
||||||
trust-graph = "0.1.0"
|
trust-graph = "0.2.0"
|
||||||
prometheus = "0.9.0"
|
prometheus = "0.9.0"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
@ -48,7 +48,7 @@ use libp2p_swarm::{
|
|||||||
NotifyHandler,
|
NotifyHandler,
|
||||||
PollParameters,
|
PollParameters,
|
||||||
};
|
};
|
||||||
use log::{info, debug, warn};
|
use log::{info, debug, warn, LevelFilter};
|
||||||
use smallvec::SmallVec;
|
use smallvec::SmallVec;
|
||||||
use std::{borrow::Cow, error, iter, time::Duration};
|
use std::{borrow::Cow, error, iter, time::Duration};
|
||||||
use std::collections::{HashSet, VecDeque};
|
use std::collections::{HashSet, VecDeque};
|
||||||
@ -878,9 +878,16 @@ where
|
|||||||
let kbuckets = &mut self.kbuckets;
|
let kbuckets = &mut self.kbuckets;
|
||||||
let connected = &mut self.connected_peers;
|
let connected = &mut self.connected_peers;
|
||||||
let local_addrs = &self.local_addrs;
|
let local_addrs = &self.local_addrs;
|
||||||
|
let trust = &self.trust;
|
||||||
self.store.providers(key)
|
self.store.providers(key)
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.filter_map(move |p| {
|
.filter_map(move |p| {
|
||||||
|
let provider_id = if log::max_level() >= LevelFilter::Debug {
|
||||||
|
p.provider.to_string()
|
||||||
|
} else {
|
||||||
|
String::new()
|
||||||
|
};
|
||||||
|
|
||||||
let kad_peer = if &p.provider != source {
|
let kad_peer = if &p.provider != source {
|
||||||
let node_id = p.provider;
|
let node_id = p.provider;
|
||||||
let connection_ty = if connected.contains(&node_id) {
|
let connection_ty = if connected.contains(&node_id) {
|
||||||
@ -892,8 +899,8 @@ where
|
|||||||
if &node_id == kbuckets.local_key().preimage() {
|
if &node_id == kbuckets.local_key().preimage() {
|
||||||
// The provider is either the local node and we fill in
|
// The provider is either the local node and we fill in
|
||||||
// the local addresses on demand,
|
// the local addresses on demand,
|
||||||
let self_key = self.kbuckets.local_public_key();
|
let self_key = kbuckets.local_public_key();
|
||||||
let certificates = self.trust.get_all_certs(&self_key, &[]);
|
let certificates = trust.get_all_certs(&self_key, &[]);
|
||||||
let multiaddrs = local_addrs.iter().cloned().collect::<Vec<_>>();
|
let multiaddrs = local_addrs.iter().cloned().collect::<Vec<_>>();
|
||||||
Some(KadPeer {
|
Some(KadPeer {
|
||||||
public_key: self_key,
|
public_key: self_key,
|
||||||
@ -913,8 +920,15 @@ where
|
|||||||
} else {
|
} else {
|
||||||
p.addresses
|
p.addresses
|
||||||
};
|
};
|
||||||
let certificates = node_id.as_public_key().map(|provider_pk|
|
let certificates = node_id.as_public_key().and_then(|provider_pk|
|
||||||
self.trust.get_all_certs(provider_pk, &[])
|
match provider_pk {
|
||||||
|
libp2p_core::identity::PublicKey::Ed25519(pk) =>
|
||||||
|
Some(trust.get_all_certs(pk, &[])),
|
||||||
|
key => {
|
||||||
|
log::warn!("Provider {} has a non-Ed25519 public key: {:?}", node_id, key);
|
||||||
|
None
|
||||||
|
}
|
||||||
|
}
|
||||||
).unwrap_or_default();
|
).unwrap_or_default();
|
||||||
|
|
||||||
KadPeer {
|
KadPeer {
|
||||||
@ -935,7 +949,7 @@ where
|
|||||||
debug!(
|
debug!(
|
||||||
"Local provider for {}: {}; source: {}; found? {}",
|
"Local provider for {}: {}; source: {}; found? {}",
|
||||||
bs58::encode(key).into_string(),
|
bs58::encode(key).into_string(),
|
||||||
p.provider,
|
provider_id,
|
||||||
source,
|
source,
|
||||||
kad_peer.is_some()
|
kad_peer.is_some()
|
||||||
);
|
);
|
||||||
|
@ -162,9 +162,11 @@ impl Metrics {
|
|||||||
KademliaHandlerEvent::GetProvidersRes { .. } => ("get_providers_res", Response),
|
KademliaHandlerEvent::GetProvidersRes { .. } => ("get_providers_res", Response),
|
||||||
KademliaHandlerEvent::GetRecordRes { .. } => ("get_record_res", Response),
|
KademliaHandlerEvent::GetRecordRes { .. } => ("get_record_res", Response),
|
||||||
KademliaHandlerEvent::PutRecordRes { .. } => ("put_record_res", Response),
|
KademliaHandlerEvent::PutRecordRes { .. } => ("put_record_res", Response),
|
||||||
|
KademliaHandlerEvent::ProtocolConfirmed { .. } => ("protocol_confirmed", Response),
|
||||||
|
|
||||||
// error
|
// error
|
||||||
KademliaHandlerEvent::QueryError { .. } => ("query_error_from_handler", Error),
|
KademliaHandlerEvent::QueryError { .. } => ("query_error_from_handler", Error),
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
self.with_metrics(|m| {
|
self.with_metrics(|m| {
|
||||||
|
Reference in New Issue
Block a user