Crates.io | tetsy-libp2p-relay |
lib.rs | tetsy-libp2p-relay |
version | 0.1.0 |
source | src |
created_at | 2021-03-11 16:08:52.399222 |
updated_at | 2021-03-12 07:00:36.792513 |
description | Communications relaying for tetsy-libp2p |
homepage | https://core.tetcoin.org |
repository | https://github.com/tetcoin/tetsy-libp2p |
max_upload_size | |
id | 367337 |
size | 242,891 |
Implementation of the libp2p circuit relay specification.
# use tetsy_libp2p_core::transport::memory::MemoryTransport;
# use tetsy_libp2p_relay::{RelayConfig, new_transport_and_behaviour};
# use tetsy_libp2p_swarm::Swarm;
# use tetsy_libp2p_core::{identity, Multiaddr, multiaddr::Protocol, PeerId, upgrade, Transport};
# use libp2p_remux::RemuxConfig;
# use plaintext::PlainText2Config;
# use std::convert::TryInto;
# use std::str::FromStr;
#
# let local_key = identity::Keypair::generate_ed25519();
# let local_public_key = local_key.public();
# let local_peer_id = local_public_key.clone().into_peer_id();
# let plain = PlainText2Config {
# local_public_key: local_public_key.clone(),
# };
#
let (relay_transport, relay_behaviour) = new_transport_and_behaviour(
RelayConfig::default(),
MemoryTransport::default(),
);
let transport = relay_transport
.upgrade(upgrade::Version::V1)
.authenticate(plain)
.multiplex(RemuxConfig::default())
.boxed();
let mut swarm = Swarm::new(transport, relay_behaviour, local_peer_id);
let relay_addr = Multiaddr::from_str("/memory/1234").unwrap()
.with(Protocol::P2p(PeerId::random().into()))
.with(Protocol::P2pCircuit);
let dst_addr = relay_addr.clone().with(Protocol::Memory(5678));
// Listen for incoming connections via relay node (1234).
Swarm::listen_on(&mut swarm, relay_addr).unwrap();
// Dial node (5678) via relay node (1234).
Swarm::dial_addr(&mut swarm, dst_addr).unwrap();
Source: The node initiating a connection via a relay to a destination.
Relay: The node being asked by a source to relay to a destination.
Destination: The node contacted by the source via the relay.
Outgoing relay request: The request sent by a source to a relay.
Incoming relay request: The request received by a relay from a source.
Outgoing destination request: The request sent by a relay to a destination.
Incoming destination request: The request received by a destination from a relay.