diff --git a/beacon_node/eth2-libp2p/Cargo.toml b/beacon_node/eth2-libp2p/Cargo.toml index 4dd2e9c7b..f3914b04e 100644 --- a/beacon_node/eth2-libp2p/Cargo.toml +++ b/beacon_node/eth2-libp2p/Cargo.toml @@ -6,7 +6,7 @@ edition = "2018" [dependencies] # SigP repository until PR is merged -libp2p = { git = "https://github.com/SigP/rust-libp2p", branch = "gossipsub" } +libp2p = { git = "https://github.com/SigP/rust-libp2p", rev = "b3c32d9a821ae6cc89079499cc6e8a6bab0bffc3" } types = { path = "../../eth2/types" } ssz = { path = "../../eth2/utils/ssz" } ssz_derive = { path = "../../eth2/utils/ssz_derive" } diff --git a/beacon_node/eth2-libp2p/src/config.rs b/beacon_node/eth2-libp2p/src/config.rs index 2b4972237..265100658 100644 --- a/beacon_node/eth2-libp2p/src/config.rs +++ b/beacon_node/eth2-libp2p/src/config.rs @@ -29,7 +29,9 @@ impl Default for Config { .parse() .expect("is a correct multi-address")], listen_port: 9000, - gs_config: GossipsubConfigBuilder::new().build(), + gs_config: GossipsubConfigBuilder::new() + .max_gossip_size(4_000_000) + .build(), identify_config: IdentifyConfig::default(), boot_nodes: Vec::new(), client_version: version::version(), diff --git a/beacon_node/eth2-libp2p/src/rpc/protocol.rs b/beacon_node/eth2-libp2p/src/rpc/protocol.rs index f4fe26fac..dc3f70a9b 100644 --- a/beacon_node/eth2-libp2p/src/rpc/protocol.rs +++ b/beacon_node/eth2-libp2p/src/rpc/protocol.rs @@ -60,10 +60,13 @@ where { type Output = RPCEvent; type Error = DecodeError; - type Future = - upgrade::ReadOneThen, ()) -> Result>; + type Future = upgrade::ReadOneThen< + upgrade::Negotiated, + (), + fn(Vec, ()) -> Result, + >; - fn upgrade_inbound(self, socket: TSocket, _: Self::Info) -> Self::Future { + fn upgrade_inbound(self, socket: upgrade::Negotiated, _: Self::Info) -> Self::Future { upgrade::read_one_then(socket, MAX_READ_SIZE, (), |packet, ()| Ok(decode(packet)?)) } } @@ -154,10 +157,10 @@ where { type Output = (); type Error = io::Error; - type Future = upgrade::WriteOne; + type Future = upgrade::WriteOne>; #[inline] - fn upgrade_outbound(self, socket: TSocket, _: Self::Info) -> Self::Future { + fn upgrade_outbound(self, socket: upgrade::Negotiated, _: Self::Info) -> Self::Future { let bytes = ssz_encode(&self); upgrade::write_one(socket, bytes) } diff --git a/beacon_node/eth2-libp2p/src/service.rs b/beacon_node/eth2-libp2p/src/service.rs index e68df2d38..b20874427 100644 --- a/beacon_node/eth2-libp2p/src/service.rs +++ b/beacon_node/eth2-libp2p/src/service.rs @@ -6,6 +6,7 @@ use crate::NetworkConfig; use futures::prelude::*; use futures::Stream; use libp2p::core::{ + identity, muxing::StreamMuxerBox, nodes::Substream, transport::boxed::Boxed, @@ -36,10 +37,10 @@ impl Service { // TODO: Currently using secp256k1 key pairs. Wire protocol specifies RSA. Waiting for this // PR to be merged to generate RSA keys: https://github.com/briansmith/ring/pull/733 // TODO: Save and recover node key from disk - let local_private_key = secio::SecioKeyPair::secp256k1_generated().unwrap(); + let local_private_key = identity::Keypair::generate_secp256k1(); - let local_public_key = local_private_key.to_public_key(); - let local_peer_id = local_private_key.to_peer_id(); + let local_public_key = local_private_key.public(); + let local_peer_id = PeerId::from(local_private_key.public()); info!(log, "Local peer id: {:?}", local_peer_id); let mut swarm = { @@ -132,9 +133,7 @@ impl Stream for Service { /// The implementation supports TCP/IP, WebSockets over TCP/IP, secio as the encryption layer, and /// mplex or yamux as the multiplexing layer. -fn build_transport( - local_private_key: secio::SecioKeyPair, -) -> Boxed<(PeerId, StreamMuxerBox), Error> { +fn build_transport(local_private_key: identity::Keypair) -> Boxed<(PeerId, StreamMuxerBox), Error> { // TODO: The Wire protocol currently doesn't specify encryption and this will need to be customised // in the future. let transport = libp2p::tcp::TcpConfig::new(); diff --git a/eth2/types/Cargo.toml b/eth2/types/Cargo.toml index e4ccfd63e..6fe5ce6e8 100644 --- a/eth2/types/Cargo.toml +++ b/eth2/types/Cargo.toml @@ -25,7 +25,7 @@ ssz = { path = "../utils/ssz" } ssz_derive = { path = "../utils/ssz_derive" } swap_or_not_shuffle = { path = "../utils/swap_or_not_shuffle" } test_random_derive = { path = "../utils/test_random_derive" } -libp2p = { git = "https://github.com/SigP/rust-libp2p", branch = "gossipsub" } +libp2p = { git = "https://github.com/SigP/rust-libp2p", rev = "b3c32d9a821ae6cc89079499cc6e8a6bab0bffc3" } [dev-dependencies] env_logger = "0.6.0"