From acbc27baddeecf0c5f5713b3c82810e0f12b246d Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Thu, 20 Sep 2018 19:12:08 +0200 Subject: [PATCH 01/15] Upgrade to latest ping code --- Cargo.lock | 202 +++++++++---------- substrate/network-libp2p/Cargo.toml | 2 +- substrate/network-libp2p/src/node_handler.rs | 74 ++++--- 3 files changed, 143 insertions(+), 135 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6e796b7cefb67..89e4235bbe03c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -444,7 +444,7 @@ dependencies = [ [[package]] name = "datastore" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "base64 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "chashmap 2.2.1 (git+https://github.com/redox-os/tfs)", @@ -1120,27 +1120,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libp2p" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-current-thread 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1150,20 +1150,20 @@ dependencies = [ [[package]] name = "libp2p-core" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "smallvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1173,12 +1173,12 @@ dependencies = [ [[package]] name = "libp2p-dns" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "tokio-dns-unofficial 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1186,16 +1186,16 @@ dependencies = [ [[package]] name = "libp2p-floodsub" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1207,15 +1207,15 @@ dependencies = [ [[package]] name = "libp2p-identify" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1226,20 +1226,20 @@ dependencies = [ [[package]] name = "libp2p-kad" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", "bigint 4.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1253,12 +1253,12 @@ dependencies = [ [[package]] name = "libp2p-mplex" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1269,13 +1269,13 @@ dependencies = [ [[package]] name = "libp2p-peerstore" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1284,14 +1284,14 @@ dependencies = [ [[package]] name = "libp2p-ping" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1301,11 +1301,11 @@ dependencies = [ [[package]] name = "libp2p-ratelimit" version = "0.1.1" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "aio-limited 0.1.0 (git+https://github.com/paritytech/aio-limited.git)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1314,14 +1314,14 @@ dependencies = [ [[package]] name = "libp2p-relay" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1332,7 +1332,7 @@ dependencies = [ [[package]] name = "libp2p-secio" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "aes-ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "asn1_der 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1340,12 +1340,12 @@ dependencies = [ "ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "twofish 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1354,12 +1354,12 @@ dependencies = [ [[package]] name = "libp2p-tcp-transport" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "tk-listen 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1368,10 +1368,10 @@ dependencies = [ [[package]] name = "libp2p-transport-timeout" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1379,25 +1379,25 @@ dependencies = [ [[package]] name = "libp2p-uds" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "tokio-uds 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-websocket" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", - "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "websocket 0.20.3 (git+https://github.com/tomaka/rust-websocket?branch=send)", @@ -1406,11 +1406,11 @@ dependencies = [ [[package]] name = "libp2p-yamux" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1552,11 +1552,11 @@ dependencies = [ [[package]] name = "multiaddr" version = "0.3.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1564,7 +1564,7 @@ dependencies = [ [[package]] name = "multihash" version = "0.8.1-pre" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "sha1 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1574,7 +1574,7 @@ dependencies = [ [[package]] name = "multistream-select" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2359,7 +2359,7 @@ dependencies = [ [[package]] name = "rw-stream-sink" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef#f2a5eee5e8363b5cf567206ab2c01c564943d2ef" +source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2822,7 +2822,7 @@ dependencies = [ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)", + "libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4027,7 +4027,7 @@ dependencies = [ "checksum crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda" "checksum ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50ac3add446ec1f8fe3dc007cd838f5b22bbf33186394feac505451ecc43c018" "checksum ctrlc 1.1.1 (git+https://github.com/paritytech/rust-ctrlc.git)" = "" -"checksum datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" +"checksum datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" "checksum difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3304d19798a8e067e48d8e69b2c37f0b5e9b4e462504ad9e27e9f3fce02bba8" "checksum digest 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3cae2388d706b52f2f2f9afe280f9d768be36544bd71d1b8120cb34ea6450b55" "checksum dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab" @@ -4091,23 +4091,23 @@ dependencies = [ "checksum lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e6412c5e2ad9584b0b8e979393122026cdd6d2a80b933f890dcd694ddbe73739" "checksum lazycell 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a6f08839bc70ef4a3fe1d566d5350f519c5912ea86be0df1740a7d247c7fc0ef" "checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d" -"checksum libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" +"checksum libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" "checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" "checksum local-encoding 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e1ceb20f39ff7ae42f3ff9795f3986b1daad821caaa1e1732a0944103a5a1a66" "checksum lock_api 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "949826a5ccf18c1b3a7c3d57692778d21768b79e46eb9dd07bfc4c2160036c54" @@ -4123,9 +4123,9 @@ dependencies = [ "checksum mio 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)" = "6d771e3ef92d58a8da8df7d6976bfca9371ed1de6619d9d5a5ce5b1f29b85bfe" "checksum mio-uds 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "84c7b5caa3a118a6e34dbac36504503b1e8dc5835e833306b9d6af0e05929f79" "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" -"checksum multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" -"checksum multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" +"checksum multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" "checksum names 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da" "checksum nan-preserving-float 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "34d4f00fcc2f4c9efa8cc971db0da9e28290e28e97af47585e48691ef10ff31f" "checksum native-tls 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f74dbadc8b43df7864539cedb7bc91345e532fdd913cfdc23ad94f4d2d40fbc0" @@ -4188,7 +4188,7 @@ dependencies = [ "checksum rustc-hex 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d2b03280c2813907a030785570c577fb27d3deec8da4c18566751ade94de0ace" "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" "checksum rustc_version 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a54aa04a10c68c1c4eacb4337fd883b435997ede17a9385784b990777686b09a" -"checksum rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=f2a5eee5e8363b5cf567206ab2c01c564943d2ef)" = "" +"checksum rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" "checksum safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e27a8b19b835f7aea908818e871f5cc3a5a186550c30773be987e155e8163d8f" "checksum schannel 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "85fd9df495640643ad2d00443b3d78aae69802ad488debab4f1dd52fc1806ade" "checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28" diff --git a/substrate/network-libp2p/Cargo.toml b/substrate/network-libp2p/Cargo.toml index d4109c3eb0284..5576fa6caa578 100644 --- a/substrate/network-libp2p/Cargo.toml +++ b/substrate/network-libp2p/Cargo.toml @@ -11,7 +11,7 @@ bytes = "0.4" error-chain = { version = "0.12", default-features = false } fnv = "1.0" futures = "0.1" -libp2p = { git = "https://github.com/libp2p/rust-libp2p", rev = "f2a5eee5e8363b5cf567206ab2c01c564943d2ef", default-features = false, features = ["libp2p-secio", "libp2p-secio-secp256k1"] } +libp2p = { git = "https://github.com/libp2p/rust-libp2p", rev = "1969bde4fe2f35507074b19583c4ba565e7a5d79", default-features = false, features = ["libp2p-secio", "libp2p-secio-secp256k1"] } ethereum-types = "0.3" parking_lot = "0.5" libc = "0.2" diff --git a/substrate/network-libp2p/src/node_handler.rs b/substrate/network-libp2p/src/node_handler.rs index 6890c184fbd8a..1615f2398a730 100644 --- a/substrate/network-libp2p/src/node_handler.rs +++ b/substrate/network-libp2p/src/node_handler.rs @@ -22,12 +22,11 @@ use libp2p::core::nodes::handled_node::{NodeHandler, NodeHandlerEndpoint, NodeHa use libp2p::kad::{KadConnecConfig, KadFindNodeRespond, KadIncomingRequest, KadConnecController}; use libp2p::{identify, ping}; use parking_lot::Mutex; -use std::error::Error; use std::io::{Error as IoError, ErrorKind as IoErrorKind}; use std::sync::Arc; use std::time::{Duration, Instant}; use tokio_io::{AsyncRead, AsyncWrite}; -use tokio_timer::{Delay, Interval, Timeout, timeout::Error as TimeoutError}; +use tokio_timer::{Delay, Interval}; use {Multiaddr, PacketId, ProtocolId}; /// Duration after which we consider that a ping failed. @@ -60,11 +59,11 @@ pub struct SubstrateNodeHandler { need_report_kad_open: bool, /// Substream open for sending pings, if any. - ping_out_substream: Option<(ping::Pinger, Box + Send>)>, - /// Active pinging attempt. Includes the moment when we started the ping. - active_ping_out: Option<(Instant, Box>> + Send>)>, + ping_out_substream: Option>, + /// Active pinging attempt with the moment it expires. + active_ping_out: Option, /// Substreams open for receiving pings. - ping_in_substreams: Vec + Send>>, + ping_in_substreams: Vec>, /// Future that fires when we need to ping the node again. /// /// Every time we receive a pong, we reset the timer to the next time. @@ -255,7 +254,7 @@ macro_rules! listener_upgrade { upgrade::or(upgrade::or(upgrade::or( upgrade::map((*$self.registered_custom).clone(), move |c| FinalUpgrade::Custom(c)), upgrade::map(KadConnecConfig::new(), move |(c, s)| FinalUpgrade::Kad(c, s))), - upgrade::map(ping::Ping, move |p| FinalUpgrade::from(p))), + upgrade::map(ping::Ping::default(), move |p| FinalUpgrade::from(p))), upgrade::map(identify::IdentifyProtocolConfig, move |i| FinalUpgrade::from(i))) // TODO: meh for cloning a Vec here ) @@ -363,7 +362,7 @@ where TSubstream: AsyncRead + AsyncWrite + Send + 'static, self.upgrades_in_progress_dial.push((purpose, Box::new(upgrade) as Box<_>)); } UpgradePurpose::Ping => { - let wanted = upgrade::map(ping::Ping, move |p| FinalUpgrade::from(p)); + let wanted = upgrade::map(ping::Ping::default(), move |p| FinalUpgrade::from(p)); // TODO: shouldn't be future::empty() ; requires a change in libp2p let upgrade = upgrade::apply(substream, wanted, Endpoint::Dialer, future::empty::()) .map(|(out, _): (FinalUpgrade, _)| out); @@ -547,10 +546,10 @@ where TSubstream: AsyncRead + AsyncWrite + Send + 'static, self.cancel_dial_upgrade(&UpgradePurpose::Identify); Some(SubstrateOutEvent::Identified { info, observed_addr }) }, - FinalUpgrade::PingDialer(pinger, ping_process) => { + FinalUpgrade::PingDialer(ping_dialer) => { self.cancel_dial_upgrade(&UpgradePurpose::Ping); // We always open the ping substream for a reason, which is to immediately ping. - self.ping_out_substream = Some((pinger, ping_process)); + self.ping_out_substream = Some(ping_dialer); if self.ping_remote() { Some(SubstrateOutEvent::PingStart) } else { @@ -611,9 +610,11 @@ where TSubstream: AsyncRead + AsyncWrite + Send + 'static, } // If we have a ping open, ping it! - if let Some((ref mut pinger, _)) = self.ping_out_substream { - let future = Timeout::new(pinger.ping(), PING_TIMEOUT); - self.active_ping_out = Some((Instant::now(), Box::new(future) as Box<_>)); + if let Some(ref mut pinger) = self.ping_out_substream { + let now = Instant::now(); + pinger.ping(now); + let future = Delay::new(now + PING_TIMEOUT); + self.active_ping_out = Some(future); return true; } @@ -758,24 +759,33 @@ where TSubstream: AsyncRead + AsyncWrite + Send + 'static, } // Poll the ping substream. - // TODO: the pinging API would benefit from some improvements on the side of libp2p. - if let Some((pinger, mut future)) = self.ping_out_substream.take() { - match future.poll() { - Ok(Async::Ready(())) => {}, - Ok(Async::NotReady) => self.ping_out_substream = Some((pinger, future)), + if let Some(mut ping_dialer) = self.ping_out_substream.take() { + match ping_dialer.poll() { + Ok(Async::Ready(Some(started))) => { + self.active_ping_out = None; + self.next_ping.reset(Instant::now() + DELAY_TO_NEXT_PING); + return Ok(Async::Ready(Some(SubstrateOutEvent::PingSuccess(started.elapsed())))); + }, + Ok(Async::Ready(None)) => { + // Try re-open ping if it got closed. + self.queued_dial_upgrades.push(UpgradePurpose::Ping); + self.num_out_user_must_open += 1; + }, + Ok(Async::NotReady) => self.ping_out_substream = Some(ping_dialer), Err(_) => {}, } } // Poll the active ping attempt. - if let Some((started, mut ping_attempt)) = self.active_ping_out.take() { - match ping_attempt.poll() { - Ok(Async::Ready(())) => { - self.next_ping.reset(Instant::now() + DELAY_TO_NEXT_PING); - return Ok(Async::Ready(Some(SubstrateOutEvent::PingSuccess(started.elapsed())))); + if let Some(mut deadline) = self.active_ping_out.take() { + match deadline.poll() { + Ok(Async::Ready(())) => + return Ok(Async::Ready(Some(SubstrateOutEvent::Unresponsive))), + Ok(Async::NotReady) => self.active_ping_out = Some(deadline), + Err(err) => { + warn!(target: "sub-libp2p", "Active ping deadline errored: {:?}", err); + return Err(IoError::new(IoErrorKind::Other, err)); }, - Ok(Async::NotReady) => self.active_ping_out = Some((started, ping_attempt)), - Err(_) => return Ok(Async::Ready(Some(SubstrateOutEvent::Unresponsive))), } } @@ -837,18 +847,16 @@ enum FinalUpgrade { Kad(KadConnecController, Box + Send>), IdentifyListener(identify::IdentifySender), IdentifyDialer(identify::IdentifyInfo, Multiaddr), - PingDialer(ping::Pinger, Box + Send>), - PingListener(Box + Send>), + PingDialer(ping::PingDialer), + PingListener(ping::PingListener), Custom(RegisteredProtocolOutput), } -impl From for FinalUpgrade { - fn from(out: ping::PingOutput) -> Self { +impl From> for FinalUpgrade { + fn from(out: ping::PingOutput) -> Self { match out { - ping::PingOutput::Ponger(processing) => - FinalUpgrade::PingListener(processing), - ping::PingOutput::Pinger { pinger, processing } => - FinalUpgrade::PingDialer(pinger, processing), + ping::PingOutput::Ponger(ponger) => FinalUpgrade::PingListener(ponger), + ping::PingOutput::Pinger(pinger) => FinalUpgrade::PingDialer(pinger), } } } From 9fd23dabf988ab0451b58325c4e88386a60894c4 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Thu, 20 Sep 2018 19:51:12 +0200 Subject: [PATCH 02/15] Use separate method in topology for listened addrs --- substrate/network-libp2p/src/service_task.rs | 5 ++-- substrate/network-libp2p/src/topology.rs | 28 +++++++++++++++++--- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/substrate/network-libp2p/src/service_task.rs b/substrate/network-libp2p/src/service_task.rs index 4172a45625f5d..8a6d90689dcf4 100644 --- a/substrate/network-libp2p/src/service_task.rs +++ b/substrate/network-libp2p/src/service_task.rs @@ -751,10 +751,9 @@ impl Service { SwarmEvent::NodeInfos { node_index, client_version, listen_addrs } => { let peer_id = self.swarm.peer_id_of_node(node_index) .expect("the swarm always produces events containing valid node indices"); - // TODO: wrong function name - self.topology.add_kademlia_discovered_addrs( + self.topology.add_self_reported_listen_addrs( peer_id, - listen_addrs.into_iter().map(|a| (a, false)) + listen_addrs.into_iter() ); Some(ServiceEvent::NodeInfos { node_index, diff --git a/substrate/network-libp2p/src/topology.rs b/substrate/network-libp2p/src/topology.rs index b77d045d873d2..59ce9bfd42b5e 100644 --- a/substrate/network-libp2p/src/topology.rs +++ b/substrate/network-libp2p/src/topology.rs @@ -31,9 +31,9 @@ const MAX_SCORE: u32 = 100; const CONNECTED_MINIMUM_SCORE: u32 = 20; /// Initial score that a node discovered through Kademlia receives, where we have a hint that the /// node is reachable. -const KADEMLIA_DISCOVERY_INITIAL_SCORE_CONNECTABLE: u32 = 15; +const DISCOVERY_INITIAL_SCORE_CONNECTABLE: u32 = 15; /// Initial score that a node discovered through Kademlia receives, without any hint. -const KADEMLIA_DISCOVERY_INITIAL_SCORE: u32 = 10; +const DISCOVERY_INITIAL_SCORE: u32 = 10; /// Score adjustement when we fail to connect to an address. const SCORE_DIFF_ON_FAILED_TO_CONNECT: i32 = -1; /// Default time-to-live for addresses discovered through Kademlia. @@ -237,6 +237,17 @@ impl NetTopology { } } + /// Adds addresses that a node says it is listening on. + /// + /// The addresses are most likely to be valid. + pub fn add_self_reported_listen_addrs( + &mut self, + peer_id: &PeerId, + addrs: I, + ) where I: Iterator { + self.add_discovered_addrs(peer_id, addrs.map(|a| (a, true))) + } + /// Adds addresses discovered through the Kademlia DHT. /// /// The addresses are not necessarily valid and should expire after a TTL. @@ -247,6 +258,15 @@ impl NetTopology { &mut self, peer_id: &PeerId, addrs: I, + ) where I: Iterator { + self.add_discovered_addrs(peer_id, addrs) + } + + /// Inner implementaiton of the `add_*_discovered_addrs`. + fn add_discovered_addrs( + &mut self, + peer_id: &PeerId, + addrs: I, ) where I: Iterator { let mut addrs: Vec<_> = addrs.collect(); let now_systime = SystemTime::now(); @@ -275,9 +295,9 @@ impl NetTopology { for (addr, connectable) in addrs { let initial_score = if connectable { - KADEMLIA_DISCOVERY_INITIAL_SCORE_CONNECTABLE + DISCOVERY_INITIAL_SCORE_CONNECTABLE } else { - KADEMLIA_DISCOVERY_INITIAL_SCORE + DISCOVERY_INITIAL_SCORE }; peer.addrs.push(Addr { From 24815db71ab36fa746b59a5fac8c80b5a580aa22 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Thu, 20 Sep 2018 19:52:06 +0200 Subject: [PATCH 03/15] Use separate method in topology for listened addrs --- substrate/network-libp2p/src/topology.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/substrate/network-libp2p/src/topology.rs b/substrate/network-libp2p/src/topology.rs index 59ce9bfd42b5e..071b44aa5cd76 100644 --- a/substrate/network-libp2p/src/topology.rs +++ b/substrate/network-libp2p/src/topology.rs @@ -240,6 +240,7 @@ impl NetTopology { /// Adds addresses that a node says it is listening on. /// /// The addresses are most likely to be valid. + #[inline] pub fn add_self_reported_listen_addrs( &mut self, peer_id: &PeerId, @@ -254,6 +255,7 @@ impl NetTopology { /// /// For each address, incorporates a boolean. If true, that means we have some sort of hint /// that this address can be reached. + #[inline] pub fn add_kademlia_discovered_addrs( &mut self, peer_id: &PeerId, From 6a7534f82c8b836ec585c92a07d7032a2deeca66 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Thu, 20 Sep 2018 19:59:06 +0200 Subject: [PATCH 04/15] Upgrade to latest libp2p --- Cargo.lock | 202 +++++++++---------- substrate/cli/src/lib.rs | 6 +- substrate/network-libp2p/Cargo.toml | 2 +- substrate/network-libp2p/src/lib.rs | 4 +- substrate/network-libp2p/src/service_task.rs | 4 +- substrate/network-libp2p/src/swarm.rs | 6 +- substrate/network-libp2p/src/traits.rs | 10 +- 7 files changed, 117 insertions(+), 117 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 89e4235bbe03c..750c6ea22a19b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -444,7 +444,7 @@ dependencies = [ [[package]] name = "datastore" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "base64 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "chashmap 2.2.1 (git+https://github.com/redox-os/tfs)", @@ -1120,27 +1120,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libp2p" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-current-thread 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1150,20 +1150,20 @@ dependencies = [ [[package]] name = "libp2p-core" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "smallvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1173,12 +1173,12 @@ dependencies = [ [[package]] name = "libp2p-dns" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "tokio-dns-unofficial 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1186,16 +1186,16 @@ dependencies = [ [[package]] name = "libp2p-floodsub" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1207,15 +1207,15 @@ dependencies = [ [[package]] name = "libp2p-identify" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1226,20 +1226,20 @@ dependencies = [ [[package]] name = "libp2p-kad" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", "bigint 4.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1253,12 +1253,12 @@ dependencies = [ [[package]] name = "libp2p-mplex" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1269,13 +1269,13 @@ dependencies = [ [[package]] name = "libp2p-peerstore" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1284,14 +1284,14 @@ dependencies = [ [[package]] name = "libp2p-ping" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1301,11 +1301,11 @@ dependencies = [ [[package]] name = "libp2p-ratelimit" version = "0.1.1" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "aio-limited 0.1.0 (git+https://github.com/paritytech/aio-limited.git)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1314,14 +1314,14 @@ dependencies = [ [[package]] name = "libp2p-relay" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1332,7 +1332,7 @@ dependencies = [ [[package]] name = "libp2p-secio" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "aes-ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "asn1_der 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1340,12 +1340,12 @@ dependencies = [ "ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "twofish 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1354,12 +1354,12 @@ dependencies = [ [[package]] name = "libp2p-tcp-transport" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "tk-listen 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1368,10 +1368,10 @@ dependencies = [ [[package]] name = "libp2p-transport-timeout" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1379,25 +1379,25 @@ dependencies = [ [[package]] name = "libp2p-uds" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "tokio-uds 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-websocket" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", - "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "websocket 0.20.3 (git+https://github.com/tomaka/rust-websocket?branch=send)", @@ -1406,11 +1406,11 @@ dependencies = [ [[package]] name = "libp2p-yamux" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1552,11 +1552,11 @@ dependencies = [ [[package]] name = "multiaddr" version = "0.3.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1564,7 +1564,7 @@ dependencies = [ [[package]] name = "multihash" version = "0.8.1-pre" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "sha1 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1574,7 +1574,7 @@ dependencies = [ [[package]] name = "multistream-select" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2359,7 +2359,7 @@ dependencies = [ [[package]] name = "rw-stream-sink" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79#1969bde4fe2f35507074b19583c4ba565e7a5d79" +source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2822,7 +2822,7 @@ dependencies = [ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)", + "libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4027,7 +4027,7 @@ dependencies = [ "checksum crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda" "checksum ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50ac3add446ec1f8fe3dc007cd838f5b22bbf33186394feac505451ecc43c018" "checksum ctrlc 1.1.1 (git+https://github.com/paritytech/rust-ctrlc.git)" = "" -"checksum datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" "checksum difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3304d19798a8e067e48d8e69b2c37f0b5e9b4e462504ad9e27e9f3fce02bba8" "checksum digest 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3cae2388d706b52f2f2f9afe280f9d768be36544bd71d1b8120cb34ea6450b55" "checksum dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab" @@ -4091,23 +4091,23 @@ dependencies = [ "checksum lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e6412c5e2ad9584b0b8e979393122026cdd6d2a80b933f890dcd694ddbe73739" "checksum lazycell 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a6f08839bc70ef4a3fe1d566d5350f519c5912ea86be0df1740a7d247c7fc0ef" "checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d" -"checksum libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" "checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" "checksum local-encoding 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e1ceb20f39ff7ae42f3ff9795f3986b1daad821caaa1e1732a0944103a5a1a66" "checksum lock_api 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "949826a5ccf18c1b3a7c3d57692778d21768b79e46eb9dd07bfc4c2160036c54" @@ -4123,9 +4123,9 @@ dependencies = [ "checksum mio 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)" = "6d771e3ef92d58a8da8df7d6976bfca9371ed1de6619d9d5a5ce5b1f29b85bfe" "checksum mio-uds 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "84c7b5caa3a118a6e34dbac36504503b1e8dc5835e833306b9d6af0e05929f79" "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" -"checksum multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" -"checksum multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" "checksum names 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da" "checksum nan-preserving-float 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "34d4f00fcc2f4c9efa8cc971db0da9e28290e28e97af47585e48691ef10ff31f" "checksum native-tls 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f74dbadc8b43df7864539cedb7bc91345e532fdd913cfdc23ad94f4d2d40fbc0" @@ -4188,7 +4188,7 @@ dependencies = [ "checksum rustc-hex 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d2b03280c2813907a030785570c577fb27d3deec8da4c18566751ade94de0ace" "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" "checksum rustc_version 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a54aa04a10c68c1c4eacb4337fd883b435997ede17a9385784b990777686b09a" -"checksum rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=1969bde4fe2f35507074b19583c4ba565e7a5d79)" = "" +"checksum rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" "checksum safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e27a8b19b835f7aea908818e871f5cc3a5a186550c30773be987e155e8163d8f" "checksum schannel 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "85fd9df495640643ad2d00443b3d78aae69802ad488debab4f1dd52fc1806ade" "checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28" diff --git a/substrate/cli/src/lib.rs b/substrate/cli/src/lib.rs index bb86d26331b60..48cf388243316 100644 --- a/substrate/cli/src/lib.rs +++ b/substrate/cli/src/lib.rs @@ -56,7 +56,7 @@ pub mod error; pub mod informant; mod panic_hook; -use network_libp2p::AddrComponent; +use network_libp2p::Protocol; use runtime_primitives::traits::As; use service::{ ServiceFactory, FactoryFullConfiguration, RuntimeGenesis, @@ -298,8 +298,8 @@ where }; config.network.listen_addresses = vec![ - iter::once(AddrComponent::IP4(Ipv4Addr::new(0, 0, 0, 0))) - .chain(iter::once(AddrComponent::TCP(port))) + iter::once(Protocol::Ip4(Ipv4Addr::new(0, 0, 0, 0))) + .chain(iter::once(Protocol::Tcp(port))) .collect() ]; config.network.public_addresses = Vec::new(); diff --git a/substrate/network-libp2p/Cargo.toml b/substrate/network-libp2p/Cargo.toml index 5576fa6caa578..b8b826a0cfb86 100644 --- a/substrate/network-libp2p/Cargo.toml +++ b/substrate/network-libp2p/Cargo.toml @@ -11,7 +11,7 @@ bytes = "0.4" error-chain = { version = "0.12", default-features = false } fnv = "1.0" futures = "0.1" -libp2p = { git = "https://github.com/libp2p/rust-libp2p", rev = "1969bde4fe2f35507074b19583c4ba565e7a5d79", default-features = false, features = ["libp2p-secio", "libp2p-secio-secp256k1"] } +libp2p = { git = "https://github.com/libp2p/rust-libp2p", rev = "4d8da24c64689c92dad64cc648ff474d4d9cef6b", default-features = false, features = ["libp2p-secio", "libp2p-secio-secp256k1"] } ethereum-types = "0.3" parking_lot = "0.5" libc = "0.2" diff --git a/substrate/network-libp2p/src/lib.rs b/substrate/network-libp2p/src/lib.rs index a5e95e8792f44..32d19f76422dc 100644 --- a/substrate/network-libp2p/src/lib.rs +++ b/substrate/network-libp2p/src/lib.rs @@ -53,7 +53,7 @@ use libp2p::PeerId; pub use connection_filter::{ConnectionFilter, ConnectionDirection}; pub use error::{Error, ErrorKind, DisconnectReason}; -pub use libp2p::{Multiaddr, multiaddr::AddrComponent}; +pub use libp2p::{Multiaddr, multiaddr::Protocol}; pub use traits::*; pub type TimerToken = usize; @@ -87,7 +87,7 @@ pub fn validate_node_url(url: &str) -> Result<(), Error> { pub(crate) fn parse_str_addr(addr_str: &str) -> Result<(PeerId, Multiaddr), Error> { let mut addr: Multiaddr = addr_str.parse().map_err(|_| ErrorKind::AddressParse)?; let who = match addr.pop() { - Some(AddrComponent::P2P(key)) => + Some(Protocol::P2p(key)) => PeerId::from_multihash(key).map_err(|_| ErrorKind::AddressParse)?, _ => return Err(ErrorKind::AddressParse.into()), }; diff --git a/substrate/network-libp2p/src/service_task.rs b/substrate/network-libp2p/src/service_task.rs index 8a6d90689dcf4..ecafecae06225 100644 --- a/substrate/network-libp2p/src/service_task.rs +++ b/substrate/network-libp2p/src/service_task.rs @@ -108,8 +108,8 @@ pub fn start_service( // If the format of the bootstrap node is not a multiaddr, try to parse it as // a `SocketAddr`. This corresponds to the format `IP:PORT`. let addr = match bootnode.parse::() { - Ok(SocketAddr::V4(socket)) => multiaddr![IP4(*socket.ip()), TCP(socket.port())], - Ok(SocketAddr::V6(socket)) => multiaddr![IP6(*socket.ip()), TCP(socket.port())], + Ok(SocketAddr::V4(socket)) => multiaddr![Ip4(*socket.ip()), Tcp(socket.port())], + Ok(SocketAddr::V6(socket)) => multiaddr![Ip6(*socket.ip()), Tcp(socket.port())], _ => { warn!(target: "sub-libp2p", "Not a valid bootnode address: {}", bootnode); continue; diff --git a/substrate/network-libp2p/src/swarm.rs b/substrate/network-libp2p/src/swarm.rs index 3a359202ce6d4..6f22fdd0beb2f 100644 --- a/substrate/network-libp2p/src/swarm.rs +++ b/substrate/network-libp2p/src/swarm.rs @@ -18,7 +18,7 @@ use bytes::Bytes; use custom_proto::RegisteredProtocols; use fnv::FnvHashMap; use futures::{prelude::*, Stream}; -use libp2p::{Multiaddr, multiaddr::AddrComponent, PeerId}; +use libp2p::{Multiaddr, multiaddr::Protocol, PeerId}; use libp2p::core::{muxing, Endpoint, PublicKey}; use libp2p::core::nodes::node::Substream; use libp2p::core::nodes::swarm::{ConnectedPoint, Swarm as Libp2pSwarm, HandlerFactory}; @@ -267,7 +267,7 @@ impl Swarm pub fn listen_on(&mut self, addr: Multiaddr) -> Result { match self.swarm.listen_on(addr) { Ok(mut addr) => { - addr.append(AddrComponent::P2P(self.local_peer_id.clone().into())); + addr.append(Protocol::P2p(self.local_peer_id.clone().into())); info!(target: "sub-libp2p", "Local node address is: {}", addr); Ok(addr) }, @@ -457,7 +457,7 @@ impl Swarm ); self.listening_addrs.push(addr.clone()); - addr.append(AddrComponent::P2P(self.local_peer_id.clone().into())); + addr.append(Protocol::P2p(self.local_peer_id.clone().into())); info!(target: "sub-libp2p", "New external node address: {}", addr); } } diff --git a/substrate/network-libp2p/src/traits.rs b/substrate/network-libp2p/src/traits.rs index 18820b4ed67d4..7cefbdb506256 100644 --- a/substrate/network-libp2p/src/traits.rs +++ b/substrate/network-libp2p/src/traits.rs @@ -21,7 +21,7 @@ use std::net::Ipv4Addr; use std::str; use std::time::Duration; use TimerToken; -use libp2p::{multiaddr::AddrComponent, Multiaddr}; +use libp2p::{multiaddr::Protocol, Multiaddr}; use error::Error; use ethereum_types::H512; @@ -139,8 +139,8 @@ impl NetworkConfiguration { config_path: None, net_config_path: None, listen_addresses: vec![ - iter::once(AddrComponent::IP4(Ipv4Addr::new(0, 0, 0, 0))) - .chain(iter::once(AddrComponent::TCP(30333))) + iter::once(Protocol::Ip4(Ipv4Addr::new(0, 0, 0, 0))) + .chain(iter::once(Protocol::Tcp(30333))) .collect() ], public_addresses: Vec::new(), @@ -158,8 +158,8 @@ impl NetworkConfiguration { pub fn new_local() -> NetworkConfiguration { let mut config = NetworkConfiguration::new(); config.listen_addresses = vec![ - iter::once(AddrComponent::IP4(Ipv4Addr::new(127, 0, 0, 1))) - .chain(iter::once(AddrComponent::TCP(0))) + iter::once(Protocol::Ip4(Ipv4Addr::new(127, 0, 0, 1))) + .chain(iter::once(Protocol::Tcp(0))) .collect() ]; config From db755252dc7f8155454178ddef42d92abf438109 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Thu, 20 Sep 2018 20:37:28 +0200 Subject: [PATCH 05/15] Don't add remote ports to topology --- substrate/network-libp2p/src/service_task.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/substrate/network-libp2p/src/service_task.rs b/substrate/network-libp2p/src/service_task.rs index ecafecae06225..026aeabde738d 100644 --- a/substrate/network-libp2p/src/service_task.rs +++ b/substrate/network-libp2p/src/service_task.rs @@ -265,6 +265,8 @@ pub struct Service { max_outgoing_connections: usize, /// For each node we're connected to, its address if known. + /// + /// This is used purely to report disconnections to the topology. nodes_addresses: FnvHashMap, /// If true, only reserved peers can connect. @@ -707,10 +709,6 @@ impl Service { None }, SwarmEvent::NodeAddress { node_index, address } => { - let peer_id = self.swarm.peer_id_of_node(node_index) - .expect("the swarm always produces events containing valid node indices"); - self.topology.report_connected(&address, &peer_id); - self.nodes_addresses.insert(node_index, address.clone()); Some(ServiceEvent::NodeAddress { node_index, address, From a04e946f841fc95fc076fa1caadbd0c152d22d8c Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Thu, 20 Sep 2018 20:41:44 +0200 Subject: [PATCH 06/15] Don't report the protocol isn't open error --- substrate/network-libp2p/src/node_handler.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/substrate/network-libp2p/src/node_handler.rs b/substrate/network-libp2p/src/node_handler.rs index 1615f2398a730..09f0867471d33 100644 --- a/substrate/network-libp2p/src/node_handler.rs +++ b/substrate/network-libp2p/src/node_handler.rs @@ -475,7 +475,8 @@ where TSubstream: AsyncRead + AsyncWrite + Send + 'static, let proto = match self.custom_protocols_substreams.iter().find(|p| p.protocol_id == protocol) { Some(proto) => proto, None => { - error!(target: "sub-libp2p", "Protocol {:?} isn't open", protocol); + // We are processing a message event before we could report to the outside that + // we disconnected from the protocol. This is not an error. return }, }; From 25337a22eab673fe6b998e715b55285bc60c66f4 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Thu, 20 Sep 2018 21:48:14 +0200 Subject: [PATCH 07/15] Better notify the task in the handler --- substrate/network-libp2p/src/node_handler.rs | 21 ++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/substrate/network-libp2p/src/node_handler.rs b/substrate/network-libp2p/src/node_handler.rs index 09f0867471d33..68a5df695276a 100644 --- a/substrate/network-libp2p/src/node_handler.rs +++ b/substrate/network-libp2p/src/node_handler.rs @@ -422,12 +422,6 @@ where TSubstream: AsyncRead + AsyncWrite + Send + 'static, return Ok(Async::Ready(Some(NodeHandlerEvent::Custom(event)))); } - // Request new outbound substreams from the user if necessary. - if self.num_out_user_must_open >= 1 { - self.num_out_user_must_open -= 1; - return Ok(Async::Ready(Some(NodeHandlerEvent::OutboundSubstreamRequest(())))); - } - match self.poll_upgrades_in_progress()? { Async::Ready(value) => return Ok(Async::Ready(value.map(NodeHandlerEvent::Custom))), Async::NotReady => (), @@ -453,6 +447,12 @@ where TSubstream: AsyncRead + AsyncWrite + Send + 'static, Async::NotReady => (), }; + // Request new outbound substreams from the user if necessary. + if self.num_out_user_must_open >= 1 { + self.num_out_user_must_open -= 1; + return Ok(Async::Ready(Some(NodeHandlerEvent::OutboundSubstreamRequest(())))); + } + // Nothing happened. Register our task to be notified and return. self.to_notify = Some(task::current()); Ok(Async::NotReady) @@ -504,6 +504,9 @@ where TSubstream: AsyncRead + AsyncWrite + Send + 'static, // Opening a new substream for Kademlia. self.queued_dial_upgrades.push(UpgradePurpose::Kad); self.num_out_user_must_open += 1; + if let Some(to_notify) = self.to_notify.take() { + to_notify.notify(); + } } } @@ -595,6 +598,9 @@ where TSubstream: AsyncRead + AsyncWrite + Send + 'static, if !self.has_upgrade_purpose(&UpgradePurpose::Identify) { self.queued_dial_upgrades.push(UpgradePurpose::Identify); self.num_out_user_must_open += 1; + if let Some(to_notify) = self.to_notify.take() { + to_notify.notify(); + } } } @@ -623,6 +629,9 @@ where TSubstream: AsyncRead + AsyncWrite + Send + 'static, if !self.has_upgrade_purpose(&UpgradePurpose::Ping) { self.queued_dial_upgrades.push(UpgradePurpose::Ping); self.num_out_user_must_open += 1; + if let Some(to_notify) = self.to_notify.take() { + to_notify.notify(); + } } false From 54326e4dc80ab1e4a4b83ab3f56574b9d1331927 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Thu, 20 Sep 2018 21:48:32 +0200 Subject: [PATCH 08/15] Better score adjustements in topology --- substrate/network-libp2p/src/service_task.rs | 29 ++++++++++---------- substrate/network-libp2p/src/topology.rs | 19 ++++++++++--- 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/substrate/network-libp2p/src/service_task.rs b/substrate/network-libp2p/src/service_task.rs index 026aeabde738d..d5f86dc96fe6f 100644 --- a/substrate/network-libp2p/src/service_task.rs +++ b/substrate/network-libp2p/src/service_task.rs @@ -331,7 +331,7 @@ impl Service { self.reserved_peers.remove(&peer_id); if self.reserved_only { if let Some(node_index) = self.swarm.latest_node_by_peer_id(&peer_id) { - self.drop_node(node_index); + self.drop_node_inner(node_index, DisconnectReason::NoSlot, None); } } } @@ -350,7 +350,7 @@ impl Service { }) .collect(); for node_index in to_disconnect { - self.drop_node(node_index); + self.drop_node_inner(node_index, DisconnectReason::NoSlot, None); } } else { self.connect_to_nodes(); @@ -374,7 +374,7 @@ impl Service { /// Same as `drop_node`, except that the same peer will not be able to reconnect later. #[inline] pub fn ban_node(&mut self, node_index: NodeIndex) { - self.drop_node_inner(node_index, Some(PEER_DISABLE_DURATION)); + self.drop_node_inner(node_index, DisconnectReason::Banned, Some(PEER_DISABLE_DURATION)); } /// Disconnects a peer. @@ -383,11 +383,16 @@ impl Service { /// Corresponding closing events will be generated once the closing actually happens. #[inline] pub fn drop_node(&mut self, node_index: NodeIndex) { - self.drop_node_inner(node_index, None); + self.drop_node_inner(node_index, DisconnectReason::Useless, None); } /// Common implementation of `drop_node` and `ban_node`. - fn drop_node_inner(&mut self, node_index: NodeIndex, disable_duration: Option) { + fn drop_node_inner( + &mut self, + node_index: NodeIndex, + reason: DisconnectReason, + disable_duration: Option + ) { let peer_id = match self.swarm.peer_id_of_node(node_index) { Some(pid) => pid.clone(), None => return, // TODO: report? @@ -406,12 +411,6 @@ impl Service { } if let Some(addr) = self.nodes_addresses.remove(&node_index) { - let reason = if disable_duration.is_some() { - DisconnectReason::Banned - } else { - DisconnectReason::ClosedGracefully - }; - self.topology.report_disconnected(&addr, reason); } @@ -678,7 +677,7 @@ impl Service { }, SwarmEvent::Reconnected { node_index, endpoint, closed_custom_protocols } => { if let Some(addr) = self.nodes_addresses.remove(&node_index) { - self.topology.report_disconnected(&addr, DisconnectReason::ClosedGracefully); + self.topology.report_disconnected(&addr, DisconnectReason::FoundBetterAddr); } if let ConnectedPoint::Dialer { address } = endpoint { let peer_id = self.swarm.peer_id_of_node(node_index) @@ -694,7 +693,7 @@ impl Service { SwarmEvent::NodeClosed { node_index, peer_id, closed_custom_protocols } => { debug!(target: "sub-libp2p", "Connection to {:?} closed gracefully", peer_id); if let Some(addr) = self.nodes_addresses.get(&node_index) { - self.topology.report_disconnected(addr, DisconnectReason::ClosedGracefully); + self.topology.report_disconnected(addr, DisconnectReason::RemoteClosed); } self.connect_to_nodes(); Some(ServiceEvent::NodeClosed { @@ -718,7 +717,7 @@ impl Service { let closed_custom_protocols = self.swarm.drop_node(node_index) .expect("the swarm always produces events containing valid node indices"); if let Some(addr) = self.nodes_addresses.remove(&node_index) { - self.topology.report_disconnected(&addr, DisconnectReason::ClosedGracefully); + self.topology.report_disconnected(&addr, DisconnectReason::Useless); } Some(ServiceEvent::NodeClosed { node_index, @@ -733,7 +732,7 @@ impl Service { .expect("the swarm always produces events containing valid node indices"); self.topology.report_useless(&peer_id); if let Some(addr) = self.nodes_addresses.remove(&node_index) { - self.topology.report_disconnected(&addr, DisconnectReason::ClosedGracefully); + self.topology.report_disconnected(&addr, DisconnectReason::Useless); } Some(ServiceEvent::NodeClosed { node_index, diff --git a/substrate/network-libp2p/src/topology.rs b/substrate/network-libp2p/src/topology.rs index 071b44aa5cd76..9ce8e2c576ab2 100644 --- a/substrate/network-libp2p/src/topology.rs +++ b/substrate/network-libp2p/src/topology.rs @@ -366,8 +366,11 @@ impl NetTopology { /// If we were indeed connected to this addr, then we can find out which peer ID it is. pub fn report_disconnected(&mut self, addr: &Multiaddr, reason: DisconnectReason) { let score_diff = match reason { - DisconnectReason::ClosedGracefully => -1, - DisconnectReason::Banned => -1, + DisconnectReason::NoSlot => -1, + DisconnectReason::FoundBetterAddr => -5, + DisconnectReason::RemoteClosed => -5, + DisconnectReason::Useless => -5, + DisconnectReason::Banned => -5, }; for info in self.store.values_mut() { @@ -419,9 +422,17 @@ impl NetTopology { } /// Reason why we disconnected from a peer. +#[derive(Debug)] pub enum DisconnectReason { - /// The disconnection was graceful. - ClosedGracefully, + /// No slot available locally anymore for this peer. + NoSlot, + /// A better way to connect to this peer has been found, therefore we disconnect from + /// the old one. + FoundBetterAddr, + /// The remote closed the connection. + RemoteClosed, + /// This node is considered useless for our needs. This includes time outs. + Useless, /// The peer has been banned. Banned, } From 212ff01ef22a5e596eca07cf7bed59684b2f5c67 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Fri, 21 Sep 2018 10:30:15 +0200 Subject: [PATCH 09/15] Fix panic when node is replaced --- substrate/network-libp2p/src/swarm.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/substrate/network-libp2p/src/swarm.rs b/substrate/network-libp2p/src/swarm.rs index 6f22fdd0beb2f..6a93831114f82 100644 --- a/substrate/network-libp2p/src/swarm.rs +++ b/substrate/network-libp2p/src/swarm.rs @@ -523,9 +523,8 @@ impl Swarm }); } Libp2pSwarmEvent::Replaced { peer_id, endpoint, .. } => { - let node_index = self.next_node_index.clone(); - self.next_node_index += 1; - debug_assert_eq!(self.node_by_peer.get(&peer_id), Some(&node_index)); + let node_index = *self.node_by_peer.get(&peer_id) + .expect("node_by_peer is always kept in sync with the inner swarm"); let infos = self.nodes_info.get_mut(&node_index) .expect("nodes_info is always kept in sync with the swarm"); debug_assert_eq!(infos.peer_id, peer_id); From 616b4ecebb92f33e9a8cd6eb7ec0ba740ee81805 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Fri, 21 Sep 2018 16:37:40 +0200 Subject: [PATCH 10/15] Don't include backed-off nodes in addrs_of_peer --- substrate/network-libp2p/src/topology.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/substrate/network-libp2p/src/topology.rs b/substrate/network-libp2p/src/topology.rs index 9ce8e2c576ab2..f80e75b2752e9 100644 --- a/substrate/network-libp2p/src/topology.rs +++ b/substrate/network-libp2p/src/topology.rs @@ -131,10 +131,10 @@ impl NetTopology { }); } - /// Returns the known potential addresses of a peer, ordered by score. + /// Returns the known potential addresses of a peer, ordered by score. Excludes backed-off + /// addresses. /// /// The boolean associated to each address indicates whether we're connected to it. - // TODO: filter out backed off ones? pub fn addrs_of_peer(&self, peer: &PeerId) -> impl Iterator { let peer = if let Some(peer) = self.store.get(peer) { peer @@ -143,10 +143,12 @@ impl NetTopology { return Vec::new().into_iter(); }; - let now = SystemTime::now(); + let now_st = SystemTime::now(); + let now_is = Instant::now(); + let mut list = peer.addrs.iter().filter_map(move |addr| { let (score, connected) = addr.score_and_is_connected(); - if (addr.expires >= now && score > 0) || connected { + if (addr.expires >= now_st && score > 0 && addr.back_off_until < now_is) || connected { Some((score, connected, &addr.addr)) } else { None From 94c9a89541ebf77467e87a7970775ffca5c3f4f4 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Fri, 21 Sep 2018 17:14:38 +0200 Subject: [PATCH 11/15] Only add to kbuckets when we open substrate --- substrate/network-libp2p/src/service_task.rs | 24 ++++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/substrate/network-libp2p/src/service_task.rs b/substrate/network-libp2p/src/service_task.rs index d5f86dc96fe6f..c0c69e1b1626b 100644 --- a/substrate/network-libp2p/src/service_task.rs +++ b/substrate/network-libp2p/src/service_task.rs @@ -650,8 +650,6 @@ impl Service { } drop(kad_pending_ctrls); - self.kad_system.update_kbuckets(peer_id.clone()); - Some(ServiceEvent::NewNode { node_index, peer_id, @@ -739,12 +737,8 @@ impl Service { closed_custom_protocols, }) }, - SwarmEvent::PingDuration(node_index, ping) => { - let peer_id = self.swarm.peer_id_of_node(node_index) - .expect("the swarm always produces events containing valid node indices"); - self.kad_system.update_kbuckets(peer_id.clone()); - Some(ServiceEvent::PingDuration(node_index, ping)) - }, + SwarmEvent::PingDuration(node_index, ping) => + Some(ServiceEvent::PingDuration(node_index, ping)), SwarmEvent::NodeInfos { node_index, client_version, listen_addrs } => { let peer_id = self.swarm.peer_id_of_node(node_index) .expect("the swarm always produces events containing valid node indices"); @@ -757,11 +751,8 @@ impl Service { client_version, }) }, - SwarmEvent::KadFindNode { node_index, searched, responder } => { - let peer_id = self.swarm.peer_id_of_node(node_index) - .expect("the swarm always produces events containing valid node indices"); + SwarmEvent::KadFindNode { searched, responder, .. } => { let response = self.build_kademlia_response(&searched); - self.kad_system.update_kbuckets(peer_id.clone()); responder.respond(response); None }, @@ -769,7 +760,6 @@ impl Service { let peer_id = self.swarm.peer_id_of_node(node_index) .expect("the swarm always produces events containing valid node indices"); trace!(target: "sub-libp2p", "Opened Kademlia substream with {:?}", peer_id); - self.kad_system.update_kbuckets(peer_id.clone()); if let Some(list) = self.kad_pending_ctrls.lock().remove(&peer_id) { for tx in list { let _ = tx.send(controller.clone()); @@ -780,12 +770,16 @@ impl Service { SwarmEvent::KadClosed { .. } => { None }, - SwarmEvent::OpenedCustomProtocol { node_index, protocol, version } => + SwarmEvent::OpenedCustomProtocol { node_index, protocol, version } => { + let peer_id = self.swarm.peer_id_of_node(node_index) + .expect("the swarm always produces events containing valid node indices"); + self.kad_system.update_kbuckets(peer_id.clone()); Some(ServiceEvent::OpenedCustomProtocol { node_index, protocol, version, - }), + }) + }, SwarmEvent::ClosedCustomProtocol { node_index, protocol } => Some(ServiceEvent::ClosedCustomProtocol { node_index, From 1f3173589230f6b028c3329c8e4c3c6e0fdf09f9 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Fri, 21 Sep 2018 17:19:12 +0200 Subject: [PATCH 12/15] Minor comment fix --- substrate/network-libp2p/src/service_task.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/network-libp2p/src/service_task.rs b/substrate/network-libp2p/src/service_task.rs index c0c69e1b1626b..8b8c09cc97ee6 100644 --- a/substrate/network-libp2p/src/service_task.rs +++ b/substrate/network-libp2p/src/service_task.rs @@ -863,7 +863,7 @@ impl Service { } } - // Poll the future that fires when we need to perform a random Kademlia query. + // Poll the future that fires when we need to reply to a Kademlia query. loop { match self.kad_new_ctrl_req_rx.poll() { Ok(Async::NotReady) => break, From 6678f0788298d4e8bd3eb21e5579fcfb5a91fa89 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Fri, 21 Sep 2018 17:31:43 +0200 Subject: [PATCH 13/15] Some adjustements to ping in the node handler --- substrate/network-libp2p/src/node_handler.rs | 37 +++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/substrate/network-libp2p/src/node_handler.rs b/substrate/network-libp2p/src/node_handler.rs index 68a5df695276a..a4f3f941213b2 100644 --- a/substrate/network-libp2p/src/node_handler.rs +++ b/substrate/network-libp2p/src/node_handler.rs @@ -622,6 +622,9 @@ where TSubstream: AsyncRead + AsyncWrite + Send + 'static, pinger.ping(now); let future = Delay::new(now + PING_TIMEOUT); self.active_ping_out = Some(future); + if let Some(to_notify) = self.to_notify.take() { + to_notify.notify(); + } return true; } @@ -758,6 +761,23 @@ where TSubstream: AsyncRead + AsyncWrite + Send + 'static, /// Polls the ping substreams. fn poll_ping(&mut self) -> Poll>, IoError> { + // Poll the future that fires when we need to ping the node again. + match self.next_ping.poll() { + Ok(Async::NotReady) => {}, + Ok(Async::Ready(())) => { + // We reset `next_ping` to a very long time in the future so that we can poll + // it again without having an accident. + self.next_ping.reset(Instant::now() + Duration::from_secs(5 * 60)); + if self.ping_remote() { + return Ok(Async::Ready(Some(SubstrateOutEvent::PingStart))); + } + }, + Err(err) => { + warn!(target: "sub-libp2p", "Ping timer errored: {:?}", err); + return Err(IoError::new(IoErrorKind::Other, err)); + } + } + // Poll for answering pings. for n in (0 .. self.ping_in_substreams.len()).rev() { let mut ping = self.ping_in_substreams.swap_remove(n); @@ -799,23 +819,6 @@ where TSubstream: AsyncRead + AsyncWrite + Send + 'static, } } - // Poll the future that fires when we need to ping the node again. - match self.next_ping.poll() { - Ok(Async::NotReady) => {}, - Ok(Async::Ready(())) => { - // We reset `next_ping` to a very long time in the future so that we can poll - // it again without having an accident. - self.next_ping.reset(Instant::now() + Duration::from_secs(5 * 60)); - if self.ping_remote() { - return Ok(Async::Ready(Some(SubstrateOutEvent::PingStart))); - } - }, - Err(err) => { - warn!(target: "sub-libp2p", "Ping timer errored: {:?}", err); - return Err(IoError::new(IoErrorKind::Other, err)); - } - } - Ok(Async::NotReady) } From 2f0e77c988dea47f8c9f1504413b39b8a92a2eef Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Fri, 21 Sep 2018 17:33:44 +0200 Subject: [PATCH 14/15] Update libp2p --- Cargo.lock | 202 ++++++++++++++-------------- substrate/network-libp2p/Cargo.toml | 2 +- 2 files changed, 102 insertions(+), 102 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 750c6ea22a19b..2760a051023f8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -444,7 +444,7 @@ dependencies = [ [[package]] name = "datastore" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "base64 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "chashmap 2.2.1 (git+https://github.com/redox-os/tfs)", @@ -1120,27 +1120,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libp2p" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-current-thread 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1150,20 +1150,20 @@ dependencies = [ [[package]] name = "libp2p-core" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "smallvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1173,12 +1173,12 @@ dependencies = [ [[package]] name = "libp2p-dns" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "tokio-dns-unofficial 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1186,16 +1186,16 @@ dependencies = [ [[package]] name = "libp2p-floodsub" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1207,15 +1207,15 @@ dependencies = [ [[package]] name = "libp2p-identify" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1226,20 +1226,20 @@ dependencies = [ [[package]] name = "libp2p-kad" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", "bigint 4.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1253,12 +1253,12 @@ dependencies = [ [[package]] name = "libp2p-mplex" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1269,13 +1269,13 @@ dependencies = [ [[package]] name = "libp2p-peerstore" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1284,14 +1284,14 @@ dependencies = [ [[package]] name = "libp2p-ping" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1301,11 +1301,11 @@ dependencies = [ [[package]] name = "libp2p-ratelimit" version = "0.1.1" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "aio-limited 0.1.0 (git+https://github.com/paritytech/aio-limited.git)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1314,14 +1314,14 @@ dependencies = [ [[package]] name = "libp2p-relay" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1332,7 +1332,7 @@ dependencies = [ [[package]] name = "libp2p-secio" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "aes-ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "asn1_der 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1340,12 +1340,12 @@ dependencies = [ "ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "twofish 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1354,12 +1354,12 @@ dependencies = [ [[package]] name = "libp2p-tcp-transport" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "tk-listen 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1368,10 +1368,10 @@ dependencies = [ [[package]] name = "libp2p-transport-timeout" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1379,25 +1379,25 @@ dependencies = [ [[package]] name = "libp2p-uds" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "tokio-uds 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-websocket" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", - "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", + "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "websocket 0.20.3 (git+https://github.com/tomaka/rust-websocket?branch=send)", @@ -1406,11 +1406,11 @@ dependencies = [ [[package]] name = "libp2p-yamux" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1552,11 +1552,11 @@ dependencies = [ [[package]] name = "multiaddr" version = "0.3.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1564,7 +1564,7 @@ dependencies = [ [[package]] name = "multihash" version = "0.8.1-pre" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "sha1 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1574,7 +1574,7 @@ dependencies = [ [[package]] name = "multistream-select" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2359,7 +2359,7 @@ dependencies = [ [[package]] name = "rw-stream-sink" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b#4d8da24c64689c92dad64cc648ff474d4d9cef6b" +source = "git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2#ee9ff643a547f45113793315eaad7a4ed7fcb9b2" dependencies = [ "bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2822,7 +2822,7 @@ dependencies = [ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)", + "libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)", "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4027,7 +4027,7 @@ dependencies = [ "checksum crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda" "checksum ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50ac3add446ec1f8fe3dc007cd838f5b22bbf33186394feac505451ecc43c018" "checksum ctrlc 1.1.1 (git+https://github.com/paritytech/rust-ctrlc.git)" = "" -"checksum datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" "checksum difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3304d19798a8e067e48d8e69b2c37f0b5e9b4e462504ad9e27e9f3fce02bba8" "checksum digest 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3cae2388d706b52f2f2f9afe280f9d768be36544bd71d1b8120cb34ea6450b55" "checksum dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab" @@ -4091,23 +4091,23 @@ dependencies = [ "checksum lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e6412c5e2ad9584b0b8e979393122026cdd6d2a80b933f890dcd694ddbe73739" "checksum lazycell 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a6f08839bc70ef4a3fe1d566d5350f519c5912ea86be0df1740a7d247c7fc0ef" "checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d" -"checksum libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" "checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" "checksum local-encoding 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e1ceb20f39ff7ae42f3ff9795f3986b1daad821caaa1e1732a0944103a5a1a66" "checksum lock_api 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "949826a5ccf18c1b3a7c3d57692778d21768b79e46eb9dd07bfc4c2160036c54" @@ -4123,9 +4123,9 @@ dependencies = [ "checksum mio 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)" = "6d771e3ef92d58a8da8df7d6976bfca9371ed1de6619d9d5a5ce5b1f29b85bfe" "checksum mio-uds 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "84c7b5caa3a118a6e34dbac36504503b1e8dc5835e833306b9d6af0e05929f79" "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" -"checksum multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" -"checksum multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" +"checksum multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" "checksum names 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da" "checksum nan-preserving-float 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "34d4f00fcc2f4c9efa8cc971db0da9e28290e28e97af47585e48691ef10ff31f" "checksum native-tls 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f74dbadc8b43df7864539cedb7bc91345e532fdd913cfdc23ad94f4d2d40fbc0" @@ -4188,7 +4188,7 @@ dependencies = [ "checksum rustc-hex 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d2b03280c2813907a030785570c577fb27d3deec8da4c18566751ade94de0ace" "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" "checksum rustc_version 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a54aa04a10c68c1c4eacb4337fd883b435997ede17a9385784b990777686b09a" -"checksum rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=4d8da24c64689c92dad64cc648ff474d4d9cef6b)" = "" +"checksum rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=ee9ff643a547f45113793315eaad7a4ed7fcb9b2)" = "" "checksum safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e27a8b19b835f7aea908818e871f5cc3a5a186550c30773be987e155e8163d8f" "checksum schannel 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "85fd9df495640643ad2d00443b3d78aae69802ad488debab4f1dd52fc1806ade" "checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28" diff --git a/substrate/network-libp2p/Cargo.toml b/substrate/network-libp2p/Cargo.toml index b8b826a0cfb86..c607b480b10ad 100644 --- a/substrate/network-libp2p/Cargo.toml +++ b/substrate/network-libp2p/Cargo.toml @@ -11,7 +11,7 @@ bytes = "0.4" error-chain = { version = "0.12", default-features = false } fnv = "1.0" futures = "0.1" -libp2p = { git = "https://github.com/libp2p/rust-libp2p", rev = "4d8da24c64689c92dad64cc648ff474d4d9cef6b", default-features = false, features = ["libp2p-secio", "libp2p-secio-secp256k1"] } +libp2p = { git = "https://github.com/libp2p/rust-libp2p", rev = "ee9ff643a547f45113793315eaad7a4ed7fcb9b2", default-features = false, features = ["libp2p-secio", "libp2p-secio-secp256k1"] } ethereum-types = "0.3" parking_lot = "0.5" libc = "0.2" From 2f15180cb60c6f339c17fbbb6771b8434b81a4a9 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Fri, 21 Sep 2018 18:18:25 +0200 Subject: [PATCH 15/15] Start the ping timeout when opening the ping substream --- substrate/network-libp2p/src/node_handler.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/substrate/network-libp2p/src/node_handler.rs b/substrate/network-libp2p/src/node_handler.rs index a4f3f941213b2..92ce2815c5ee4 100644 --- a/substrate/network-libp2p/src/node_handler.rs +++ b/substrate/network-libp2p/src/node_handler.rs @@ -554,6 +554,7 @@ where TSubstream: AsyncRead + AsyncWrite + Send + 'static, self.cancel_dial_upgrade(&UpgradePurpose::Ping); // We always open the ping substream for a reason, which is to immediately ping. self.ping_out_substream = Some(ping_dialer); + self.active_ping_out = None; if self.ping_remote() { Some(SubstrateOutEvent::PingStart) } else { @@ -632,6 +633,10 @@ where TSubstream: AsyncRead + AsyncWrite + Send + 'static, if !self.has_upgrade_purpose(&UpgradePurpose::Ping) { self.queued_dial_upgrades.push(UpgradePurpose::Ping); self.num_out_user_must_open += 1; + // We also start the unresponsiveness counter when opening the substream, as a + // peer may not respond to our opening request. + let future = Delay::new(Instant::now() + PING_TIMEOUT); + self.active_ping_out = Some(future); if let Some(to_notify) = self.to_notify.take() { to_notify.notify(); }