diff --git a/beacon_node/eth2-libp2p/Cargo.toml b/beacon_node/eth2-libp2p/Cargo.toml index 808f5ab17..69842e234 100644 --- a/beacon_node/eth2-libp2p/Cargo.toml +++ b/beacon_node/eth2-libp2p/Cargo.toml @@ -7,7 +7,7 @@ edition = "2018" [dependencies] beacon_chain = { path = "../beacon_chain" } # 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 = "987fec350b5c2eb55e5f0139615adab49ce493ff" } 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 2c8945cb8..314be1037 100644 --- a/beacon_node/eth2-libp2p/src/rpc/protocol.rs +++ b/beacon_node/eth2-libp2p/src/rpc/protocol.rs @@ -110,10 +110,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)?)) } } @@ -204,10 +207,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 73facee72..0dc30cf42 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 = { @@ -140,9 +141,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..d0e23b7dd 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 = "987fec350b5c2eb55e5f0139615adab49ce493ff" } [dev-dependencies] env_logger = "0.6.0"