feat: Improve multiplexer ergonomics (#111)
This commit is contained in:
parent
59a3ac3b49
commit
f67e010c76
18 changed files with 242 additions and 261 deletions
|
|
@ -1,17 +1,13 @@
|
|||
use net2::TcpStreamExt;
|
||||
|
||||
use pallas::network::{
|
||||
miniprotocols::{
|
||||
handshake::{n2n::VersionTable, Initiator},
|
||||
run_agent, Point, MAINNET_MAGIC,
|
||||
},
|
||||
multiplexer::{spawn_demuxer, spawn_muxer, use_channel, StdPlexer},
|
||||
multiplexer::{bearers::Bearer, StdPlexer},
|
||||
};
|
||||
|
||||
use pallas::network::miniprotocols::blockfetch::{BatchClient, Observer};
|
||||
|
||||
use std::net::TcpStream;
|
||||
|
||||
#[derive(Debug)]
|
||||
struct BlockPrinter;
|
||||
|
||||
|
|
@ -26,16 +22,14 @@ impl Observer for BlockPrinter {
|
|||
fn main() {
|
||||
env_logger::init();
|
||||
|
||||
let bearer = TcpStream::connect("relays-new.cardano-mainnet.iohk.io:3001").unwrap();
|
||||
bearer.set_nodelay(true).unwrap();
|
||||
bearer.set_keepalive_ms(Some(30_000u32)).unwrap();
|
||||
let bearer = Bearer::connect_tcp("relays-new.cardano-mainnet.iohk.io:3001").unwrap();
|
||||
|
||||
let mut plexer = StdPlexer::new(bearer);
|
||||
let mut channel0 = use_channel(&mut plexer, 0);
|
||||
let mut channel3 = use_channel(&mut plexer, 3);
|
||||
let mut channel0 = plexer.use_channel(0);
|
||||
let mut channel3 = plexer.use_channel(3);
|
||||
|
||||
spawn_muxer(plexer.muxer);
|
||||
spawn_demuxer(plexer.demuxer);
|
||||
plexer.muxer.spawn();
|
||||
plexer.demuxer.spawn();
|
||||
|
||||
let versions = VersionTable::v4_and_above(MAINNET_MAGIC);
|
||||
let _last = run_agent(Initiator::initial(versions), &mut channel0).unwrap();
|
||||
|
|
|
|||
|
|
@ -1,10 +1,8 @@
|
|||
use pallas::network::{
|
||||
miniprotocols::{chainsync, handshake, localstate, run_agent, Point, MAINNET_MAGIC},
|
||||
multiplexer,
|
||||
multiplexer::{self, bearers::Bearer},
|
||||
};
|
||||
|
||||
use std::os::unix::net::UnixStream;
|
||||
|
||||
#[derive(Debug)]
|
||||
struct LoggingObserver;
|
||||
|
||||
|
|
@ -86,17 +84,17 @@ fn main() {
|
|||
|
||||
// we connect to the unix socket of the local node. Make sure you have the right
|
||||
// path for your environment
|
||||
let bearer = UnixStream::connect("/tmp/node.socket").unwrap();
|
||||
let bearer = Bearer::connect_unix("/tmp/node.socket").unwrap();
|
||||
|
||||
// setup the multiplexer by specifying the bearer and the IDs of the
|
||||
// miniprotocols to use
|
||||
let mut plexer = multiplexer::StdPlexer::new(bearer);
|
||||
let channel0 = multiplexer::use_channel(&mut plexer, 0);
|
||||
let channel7 = multiplexer::use_channel(&mut plexer, 7);
|
||||
let channel5 = multiplexer::use_channel(&mut plexer, 5);
|
||||
let channel0 = plexer.use_channel(0);
|
||||
let channel7 = plexer.use_channel(7);
|
||||
let channel5 = plexer.use_channel(5);
|
||||
|
||||
multiplexer::spawn_muxer(plexer.muxer);
|
||||
multiplexer::spawn_demuxer(plexer.demuxer);
|
||||
plexer.muxer.spawn();
|
||||
plexer.demuxer.spawn();
|
||||
|
||||
// execute the required handshake against the relay
|
||||
do_handshake(channel0);
|
||||
|
|
|
|||
|
|
@ -1,12 +1,8 @@
|
|||
use net2::TcpStreamExt;
|
||||
|
||||
use pallas::network::{
|
||||
miniprotocols::{blockfetch, chainsync, handshake, run_agent, Point, MAINNET_MAGIC},
|
||||
multiplexer::{spawn_demuxer, spawn_muxer, use_channel, StdChannel, StdPlexer},
|
||||
multiplexer::{bearers::Bearer, StdChannel, StdPlexer},
|
||||
};
|
||||
|
||||
use std::net::TcpStream;
|
||||
|
||||
#[derive(Debug)]
|
||||
struct LoggingObserver;
|
||||
|
||||
|
|
@ -105,19 +101,17 @@ fn main() {
|
|||
|
||||
// setup a TCP socket to act as data bearer between our agents and the remote
|
||||
// relay.
|
||||
let bearer = TcpStream::connect("relays-new.cardano-mainnet.iohk.io:3001").unwrap();
|
||||
bearer.set_nodelay(true).unwrap();
|
||||
bearer.set_keepalive_ms(Some(30_000u32)).unwrap();
|
||||
let bearer = Bearer::connect_tcp("relays-new.cardano-mainnet.iohk.io:3001").unwrap();
|
||||
|
||||
// setup the multiplexer by specifying the bearer and the IDs of the
|
||||
// miniprotocols to use
|
||||
let mut plexer = StdPlexer::new(bearer);
|
||||
let channel0 = use_channel(&mut plexer, 0);
|
||||
let channel3 = use_channel(&mut plexer, 3);
|
||||
let channel2 = use_channel(&mut plexer, 2);
|
||||
let channel0 = plexer.use_channel(0);
|
||||
let channel3 = plexer.use_channel(3);
|
||||
let channel2 = plexer.use_channel(2);
|
||||
|
||||
spawn_muxer(plexer.muxer);
|
||||
spawn_demuxer(plexer.demuxer);
|
||||
plexer.muxer.spawn();
|
||||
plexer.demuxer.spawn();
|
||||
|
||||
// execute the required handshake against the relay
|
||||
do_handshake(channel0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue