feat: Improve multiplexer ergonomics (#111)

This commit is contained in:
Santiago Carmuega 2022-06-04 17:39:29 -03:00 committed by GitHub
parent 4ea3e134c0
commit 159d38020c
18 changed files with 242 additions and 261 deletions

View file

@ -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();