pub struct RemoteNode {
pub version: String,
pub node_id: String,
pub addresses: Vec<NodeAddress>,
pub is_outbound: bool,
pub connected_duration: Uint64,
pub last_ping_duration: Option<Uint64>,
pub sync_state: Option<PeerSyncState>,
pub protocols: Vec<RemoteNodeProtocol>,
}
Expand description
Information of a remote node.
A remote node connects to the local node via the P2P network. It is often called a peer.
§Examples
{
"addresses": [
{
"address": "/ip6/::ffff:18.185.102.19/tcp/8115/p2p/QmXwUgF48ULy6hkgfqrEwEfuHW7WyWyWauueRDAYQHNDfN",
"score": "0x64"
},
{
"address": "/ip4/18.185.102.19/tcp/8115/p2p/QmXwUgF48ULy6hkgfqrEwEfuHW7WyWyWauueRDAYQHNDfN",
"score": "0x64"
}
],
"connected_duration": "0x2f",
"is_outbound": true,
"last_ping_duration": "0x1a",
"node_id": "QmXwUgF48ULy6hkgfqrEwEfuHW7WyWyWauueRDAYQHNDfN",
"protocols": [
{
"id": "0x4",
"version": "0.0.1"
},
{
"id": "0x2",
"version": "0.0.1"
},
{
"id": "0x1",
"version": "0.0.1"
},
{
"id": "0x64",
"version": "1"
},
{
"id": "0x6e",
"version": "1"
},
{
"id": "0x66",
"version": "1"
},
{
"id": "0x65",
"version": "1"
},
{
"id": "0x0",
"version": "0.0.1"
}
],
"sync_state": {
"best_known_header_hash": null,
"best_known_header_number": null,
"can_fetch_count": "0x80",
"inflight_count": "0xa",
"last_common_header_hash": null,
"last_common_header_number": null,
"unknown_header_list_size": "0x20"
},
"version": "0.34.0 (f37f598 2020-07-17)"
}
Fields§
§version: String
The remote node version.
node_id: String
The remote node ID which is derived from its P2P private key.
addresses: Vec<NodeAddress>
The remote node addresses.
is_outbound: bool
Whether this is an outbound remote node.
If the connection is established by the local node, is_outbound
is true.
connected_duration: Uint64
Elapsed time in milliseconds since the remote node is connected.
last_ping_duration: Option<Uint64>
Elapsed time in milliseconds since receiving the ping response from this remote node.
Null means no ping responses have been received yet.
sync_state: Option<PeerSyncState>
Chain synchronization state.
Null means chain sync has not started with this remote node yet.
protocols: Vec<RemoteNodeProtocol>
Active protocols.
CKB uses Tentacle multiplexed network framework. Multiple protocols are running simultaneously in the connection.
Trait Implementations§
Source§impl Clone for RemoteNode
impl Clone for RemoteNode
Source§fn clone(&self) -> RemoteNode
fn clone(&self) -> RemoteNode
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for RemoteNode
impl Debug for RemoteNode
Source§impl Default for RemoteNode
impl Default for RemoteNode
Source§fn default() -> RemoteNode
fn default() -> RemoteNode
Source§impl<'de> Deserialize<'de> for RemoteNode
impl<'de> Deserialize<'de> for RemoteNode
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Hash for RemoteNode
impl Hash for RemoteNode
Source§impl JsonSchema for RemoteNode
impl JsonSchema for RemoteNode
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read moreSource§impl PartialEq for RemoteNode
impl PartialEq for RemoteNode
Source§impl Serialize for RemoteNode
impl Serialize for RemoteNode
impl Eq for RemoteNode
impl StructuralPartialEq for RemoteNode
Auto Trait Implementations§
impl Freeze for RemoteNode
impl RefUnwindSafe for RemoteNode
impl Send for RemoteNode
impl Sync for RemoteNode
impl Unpin for RemoteNode
impl UnwindSafe for RemoteNode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)