diff --git a/Cargo.lock b/Cargo.lock index 427217446..4b637403b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1006,13 +1006,13 @@ dependencies = [ [[package]] name = "enr" version = "0.1.0-alpha.3" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "base64 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "ed25519-dalek 1.0.0-pre.3 (registry+https://github.com/rust-lang/crates.io-index)", "hex 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "libsecp256k1 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1132,7 +1132,7 @@ dependencies = [ "hashmap_delay 0.2.0", "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "lighthouse_metrics 0.2.0", "lru 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1933,34 +1933,34 @@ dependencies = [ [[package]] name = "libp2p" version = "0.13.2" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-core-derive 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-deflate 0.5.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-discv5 0.1.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-dns 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-floodsub 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-gossipsub 0.1.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-identify 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-kad 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-mdns 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-mplex 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-noise 0.11.1 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-ping 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-plaintext 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-secio 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-tcp 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-uds 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-wasm-ext 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-websocket 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-yamux 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "parity-multihash 0.2.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-core-derive 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-deflate 0.5.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-discv5 0.1.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-dns 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-floodsub 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-gossipsub 0.1.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-identify 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-kad 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-mdns 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-mplex 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-noise 0.11.1 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-ping 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-plaintext 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-secio 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-tcp 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-uds 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-wasm-ext 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-websocket 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-yamux 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "parity-multihash 0.2.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1972,7 +1972,7 @@ dependencies = [ [[package]] name = "libp2p-core" version = "0.13.2" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "asn1_der 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1984,15 +1984,15 @@ dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libsecp256k1 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "multistream-select 0.6.1 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "parity-multihash 0.2.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "multistream-select 0.6.1 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "parity-multihash 0.2.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.16.12 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "rw-stream-sink 0.1.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2007,7 +2007,7 @@ dependencies = [ [[package]] name = "libp2p-core-derive" version = "0.13.0" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2016,34 +2016,34 @@ dependencies = [ [[package]] name = "libp2p-deflate" version = "0.5.0" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "flate2 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-discv5" version = "0.1.0" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "enr 0.1.0-alpha.3 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "enr 0.1.0-alpha.3 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", "hex 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "hkdf 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "libsecp256k1 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "openssl 0.10.29 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "parity-multihash 0.2.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "parity-multihash 0.2.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "rlp 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2058,10 +2058,10 @@ dependencies = [ [[package]] name = "libp2p-dns" version = "0.13.0" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-dns-unofficial 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2069,15 +2069,15 @@ dependencies = [ [[package]] name = "libp2p-floodsub" version = "0.13.1" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "bs58 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "cuckoofilter 0.3.2 (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.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2087,7 +2087,7 @@ dependencies = [ [[package]] name = "libp2p-gossipsub" version = "0.1.0" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2095,8 +2095,8 @@ dependencies = [ "bytes 0.4.12 (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.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "lru 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2112,14 +2112,14 @@ dependencies = [ [[package]] name = "libp2p-identify" version = "0.13.2" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2131,18 +2131,18 @@ dependencies = [ [[package]] name = "libp2p-kad" version = "0.13.2" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "either 1.5.3 (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.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "parity-multihash 0.2.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "parity-multihash 0.2.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2158,16 +2158,16 @@ dependencies = [ [[package]] name = "libp2p-mdns" version = "0.13.1" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "data-encoding 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "dns-parser 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2180,12 +2180,12 @@ dependencies = [ [[package]] name = "libp2p-mplex" version = "0.13.0" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "bytes 0.4.12 (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.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2196,13 +2196,13 @@ dependencies = [ [[package]] name = "libp2p-noise" version = "0.11.1" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "curve25519-dalek 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2216,14 +2216,14 @@ dependencies = [ [[package]] name = "libp2p-ping" version = "0.13.1" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", - "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", + "libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2233,14 +2233,14 @@ dependencies = [ [[package]] name = "libp2p-plaintext" version = "0.13.1" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "rw-stream-sink 0.1.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2248,7 +2248,7 @@ dependencies = [ [[package]] name = "libp2p-secio" version = "0.13.1" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2257,13 +2257,13 @@ dependencies = [ "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "js-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "parity-send-wrapper 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.16.12 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "rw-stream-sink 0.1.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2277,10 +2277,10 @@ dependencies = [ [[package]] name = "libp2p-swarm" version = "0.3.0" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2290,13 +2290,13 @@ dependencies = [ [[package]] name = "libp2p-tcp" version = "0.13.0" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", "get_if_addrs 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "ipnet 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2306,10 +2306,10 @@ dependencies = [ [[package]] name = "libp2p-uds" version = "0.13.0" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-uds 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2317,11 +2317,11 @@ dependencies = [ [[package]] name = "libp2p-wasm-ext" version = "0.6.0" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", "js-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "parity-send-wrapper 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2331,13 +2331,13 @@ dependencies = [ [[package]] name = "libp2p-websocket" version = "0.13.0" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "rw-stream-sink 0.1.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "soketto 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2349,10 +2349,10 @@ dependencies = [ [[package]] name = "libp2p-yamux" version = "0.13.0" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "yamux 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2614,7 +2614,7 @@ dependencies = [ [[package]] name = "multistream-select" version = "0.6.1" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2831,14 +2831,14 @@ dependencies = [ [[package]] name = "parity-multiaddr" version = "0.6.0" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "data-encoding 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-multihash 0.2.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)", + "parity-multihash 0.2.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)", "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2848,7 +2848,7 @@ dependencies = [ [[package]] name = "parity-multihash" version = "0.2.0" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "blake2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3561,7 +3561,7 @@ dependencies = [ [[package]] name = "rw-stream-sink" version = "0.1.2" -source = "git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed#8517d93012e9a5cc1d61fbee52c8da59727347ed" +source = "git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3#37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3" dependencies = [ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", @@ -5264,7 +5264,7 @@ dependencies = [ "checksum ed25519-dalek 1.0.0-pre.3 (registry+https://github.com/rust-lang/crates.io-index)" = "978710b352437433c97b2bff193f2fb1dfd58a093f863dd95e225a19baa599a2" "checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" "checksum encoding_rs 0.8.22 (registry+https://github.com/rust-lang/crates.io-index)" = "cd8d03faa7fe0c1431609dfad7bbe827af30f82e1e2ae6f7ee4fca6bd764bc28" -"checksum enr 0.1.0-alpha.3 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" +"checksum enr 0.1.0-alpha.3 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" "checksum env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" "checksum env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" "checksum error-chain 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd" @@ -5337,28 +5337,28 @@ dependencies = [ "checksum leveldb-sys 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "71f46429bb70612c3e939aaeed27ffd31a24a773d21728a1a426e4089d6778d2" "checksum libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)" = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005" "checksum libflate 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)" = "d9135df43b1f5d0e333385cb6e7897ecd1a43d7d11b91ac003f4d2c2d2401fdd" -"checksum libp2p 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-core-derive 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-deflate 0.5.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-discv5 0.1.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-dns 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-floodsub 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-gossipsub 0.1.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-identify 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-kad 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-mdns 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-mplex 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-noise 0.11.1 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-ping 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-plaintext 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-secio 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-tcp 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-uds 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-wasm-ext 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-websocket 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum libp2p-yamux 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" +"checksum libp2p 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-core 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-core-derive 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-deflate 0.5.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-discv5 0.1.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-dns 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-floodsub 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-gossipsub 0.1.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-identify 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-kad 0.13.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-mdns 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-mplex 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-noise 0.11.1 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-ping 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-plaintext 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-secio 0.13.1 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-swarm 0.3.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-tcp 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-uds 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-wasm-ext 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-websocket 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum libp2p-yamux 0.13.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" "checksum libsecp256k1 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1fc1e2c808481a63dc6da2074752fdd4336a3c8fcc68b83db6f1fd5224ae7962" "checksum libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe" "checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83" @@ -5382,7 +5382,7 @@ dependencies = [ "checksum mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" "checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" -"checksum multistream-select 0.6.1 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" +"checksum multistream-select 0.6.1 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" "checksum native-tls 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d" "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" "checksum nix 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363" @@ -5399,8 +5399,8 @@ dependencies = [ "checksum openssl-sys 0.9.55 (registry+https://github.com/rust-lang/crates.io-index)" = "7717097d810a0f2e2323f9e5d11e71608355e24828410b55b9d4f18aa5f9a5d8" "checksum owning_ref 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52ce" "checksum parity-codec 3.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "2b9df1283109f542d8852cd6b30e9341acc2137481eb6157d2e62af68b0afec9" -"checksum parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" -"checksum parity-multihash 0.2.0 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" +"checksum parity-multiaddr 0.6.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" +"checksum parity-multihash 0.2.0 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" "checksum parity-scale-codec 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "329c8f7f4244ddb5c37c103641027a76c530e65e8e4b8240b29f81ea40508b17" "checksum parity-send-wrapper 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" "checksum parking_lot 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" @@ -5466,7 +5466,7 @@ dependencies = [ "checksum rustc-hex 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" "checksum rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b25a18b1bf7387f0145e7f8324e700805aade3842dd3db2e74e4cdeb4677c09e" -"checksum rw-stream-sink 0.1.2 (git+https://github.com/SigP/rust-libp2p?rev=8517d93012e9a5cc1d61fbee52c8da59727347ed)" = "" +"checksum rw-stream-sink 0.1.2 (git+https://github.com/SigP/rust-libp2p?rev=37b7e9349cf3e724da02bbd4b5dd6c054c2d56d3)" = "" "checksum ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76" "checksum safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" "checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" diff --git a/beacon_node/eth2-libp2p/src/discovery/mod.rs b/beacon_node/eth2-libp2p/src/discovery/mod.rs index f79529bc3..2cd40b8a1 100644 --- a/beacon_node/eth2-libp2p/src/discovery/mod.rs +++ b/beacon_node/eth2-libp2p/src/discovery/mod.rs @@ -454,11 +454,17 @@ where for peer_id in closer_peers { // if we need more peers, attempt a connection - if self.network_globals.connected_peers() < self.max_peers - && !self.network_globals.peers.read().is_connected(&peer_id) + if self.network_globals.connected_or_dialing_peers() + < self.max_peers + && !self + .network_globals + .peers + .read() + .is_connected_or_dialing(&peer_id) && !self.banned_peers.contains(&peer_id) { - debug!(self.log, "Peer discovered"; "peer_id"=> format!("{:?}", peer_id)); + debug!(self.log, "Connecting to discovered peer"; "peer_id"=> format!("{:?}", peer_id)); + self.network_globals.peers.write().dialing_peer(&peer_id); self.events .push_back(NetworkBehaviourAction::DialPeer { peer_id }); } diff --git a/beacon_node/eth2-libp2p/src/peer_manager/mod.rs b/beacon_node/eth2-libp2p/src/peer_manager/mod.rs index 43ff1314b..084c2b593 100644 --- a/beacon_node/eth2-libp2p/src/peer_manager/mod.rs +++ b/beacon_node/eth2-libp2p/src/peer_manager/mod.rs @@ -89,6 +89,7 @@ impl PeerManager { /// A ping request has been received. // NOTE: The behaviour responds with a PONG automatically + // TODO: Update last seen pub fn ping_request(&mut self, peer_id: &PeerId, seq: u64) { if let Some(peer_info) = self.network_globals.peers.read().peer_info(peer_id) { // received a ping @@ -114,6 +115,7 @@ impl PeerManager { } /// A PONG has been returned from a peer. + // TODO: Update last seen pub fn pong_response(&mut self, peer_id: &PeerId, seq: u64) { if let Some(peer_info) = self.network_globals.peers.read().peer_info(peer_id) { // received a pong @@ -137,6 +139,7 @@ impl PeerManager { } /// Received a metadata response from a peer. + // TODO: Update last seen pub fn meta_data_response(&mut self, peer_id: &PeerId, meta_data: MetaData) { if let Some(peer_info) = self.network_globals.peers.write().peer_info_mut(peer_id) { if let Some(known_meta_data) = &peer_info.meta_data { @@ -165,12 +168,15 @@ impl PeerManager { fn gets_banned(&mut self, peer_id: &PeerId) -> bool { // if the peer was already banned don't inform again let mut peerdb = self.network_globals.peers.write(); - if peerdb.reputation(peer_id) < MINIMUM_REPUTATION_BEFORE_BAN - && !peerdb.connection_status(peer_id).is_banned() - { - peerdb.ban(peer_id); - self.events.push(PeerManagerEvent::BanPeer(peer_id.clone())); - return true; + + if let Some(connection_status) = peerdb.connection_status(peer_id) { + if peerdb.reputation(peer_id) < MINIMUM_REPUTATION_BEFORE_BAN + && !connection_status.is_banned() + { + peerdb.ban(peer_id); + self.events.push(PeerManagerEvent::BanPeer(peer_id.clone())); + return true; + } } false } @@ -269,7 +275,8 @@ impl PeerManager { { let mut peerdb = self.network_globals.peers.write(); - if peerdb.connection_status(peer_id).is_banned() { + if peerdb.connection_status(peer_id).map(|c| c.is_banned()) == Some(true) { + // don't connect if the peer is banned return false; } @@ -293,6 +300,11 @@ impl PeerManager { true } + + /// Notifies the peer manager that this peer is being dialed. + pub fn _dialing_peer(&mut self, peer_id: &PeerId) { + self.network_globals.peers.write().dialing_peer(peer_id); + } } impl Stream for PeerManager { @@ -304,12 +316,14 @@ impl Stream for PeerManager { while let Async::Ready(Some(peer_id)) = self.ping_peers.poll().map_err(|e| { error!(self.log, "Failed to check for peers to ping"; "error" => format!("{}",e)); })? { + debug!(self.log, "Pinging peer"; "peer_id" => format!("{}", peer_id)); self.events.push(PeerManagerEvent::Ping(peer_id)); } - while let Async::Ready(Some(peer_id)) = self.ping_peers.poll().map_err(|e| { + while let Async::Ready(Some(peer_id)) = self.status_peers.poll().map_err(|e| { error!(self.log, "Failed to check for peers to status"; "error" => format!("{}",e)); })? { + debug!(self.log, "Sending Status to peer"; "peer_id" => format!("{}", peer_id)); self.events.push(PeerManagerEvent::Status(peer_id)); } diff --git a/beacon_node/eth2-libp2p/src/peer_manager/peer_info.rs b/beacon_node/eth2-libp2p/src/peer_manager/peer_info.rs index f81ddcc6a..e1fad2eeb 100644 --- a/beacon_node/eth2-libp2p/src/peer_manager/peer_info.rs +++ b/beacon_node/eth2-libp2p/src/peer_manager/peer_info.rs @@ -60,11 +60,12 @@ impl PeerInfo { } #[derive(Clone, Debug, Serialize)] +/// The current health status of the peer. pub enum PeerStatus { - /// The peer is healthy + /// The peer is healthy. Healthy, - /// The peer is clogged. It has not been responding to requests on time - Clogged, + /// The peer is clogged. It has not been responding to requests on time. + _Clogged, } impl Default for PeerStatus { @@ -73,25 +74,29 @@ impl Default for PeerStatus { } } -/// Connection Status of the peer -#[derive(Clone, Debug)] +/// Connection Status of the peer. +#[derive(Debug, Clone)] pub enum PeerConnectionStatus { + /// The peer is connected. Connected { - /// number of ingoing connections + /// number of ingoing connections. n_in: u8, - /// number of outgoing connections + /// number of outgoing connections. n_out: u8, }, + /// The peer has disconnected. Disconnected { - /// last time the peer was connected or discovered + /// last time the peer was connected or discovered. since: Instant, }, + /// The peer has been banned and is disconnected. Banned { - /// moment when the peer was banned + /// moment when the peer was banned. since: Instant, }, - Unknown { - /// time since we last saw this peer + /// We are currently dialing this peer. + Dialing { + /// time since we last communicated with the peer. since: Instant, }, } @@ -116,8 +121,8 @@ impl Serialize for PeerConnectionStatus { s.serialize_field("since", &since.elapsed().as_secs())?; s.end() } - Unknown { since } => { - let mut s = serializer.serialize_struct_variant("", 3, "Unknown", 1)?; + Dialing { since } => { + let mut s = serializer.serialize_struct_variant("", 3, "Dialing", 1)?; s.serialize_field("since", &since.elapsed().as_secs())?; s.end() } @@ -126,6 +131,7 @@ impl Serialize for PeerConnectionStatus { } #[derive(Clone, Debug, Serialize)] +/// The current sync status of the peer. pub enum PeerSyncStatus { /// At the current state as our node or ahead of us. Synced { @@ -143,7 +149,7 @@ pub enum PeerSyncStatus { impl Default for PeerConnectionStatus { fn default() -> Self { - PeerConnectionStatus::Unknown { + PeerConnectionStatus::Dialing { since: Instant::now(), } } @@ -158,6 +164,14 @@ impl PeerConnectionStatus { } } + /// Checks if the status is connected + pub fn is_dialing(&self) -> bool { + match self { + PeerConnectionStatus::Dialing { .. } => true, + _ => false, + } + } + /// Checks if the status is banned pub fn is_banned(&self) -> bool { match self { @@ -179,7 +193,7 @@ impl PeerConnectionStatus { pub fn connect_ingoing(&mut self) { match self { Connected { n_in, .. } => *n_in += 1, - Disconnected { .. } | Banned { .. } | Unknown { .. } => { + Disconnected { .. } | Banned { .. } | Dialing { .. } => { *self = Connected { n_in: 1, n_out: 0 } } } @@ -190,7 +204,7 @@ impl PeerConnectionStatus { pub fn connect_outgoing(&mut self) { match self { Connected { n_out, .. } => *n_out += 1, - Disconnected { .. } | Banned { .. } | Unknown { .. } => { + Disconnected { .. } | Banned { .. } | Dialing { .. } => { *self = Connected { n_in: 0, n_out: 1 } } } diff --git a/beacon_node/eth2-libp2p/src/peer_manager/peerdb.rs b/beacon_node/eth2-libp2p/src/peer_manager/peerdb.rs index 3af9f4b61..091233b3e 100644 --- a/beacon_node/eth2-libp2p/src/peer_manager/peerdb.rs +++ b/beacon_node/eth2-libp2p/src/peer_manager/peerdb.rs @@ -3,6 +3,7 @@ use crate::rpc::methods::MetaData; use crate::PeerId; use slog::{crit, warn}; use std::collections::HashMap; +use std::time::Instant; use types::{EthSpec, SubnetId}; /// A peer's reputation. @@ -85,6 +86,16 @@ impl PeerDB { .map(|(peer_id, _)| peer_id) } + /// Connected or dialing peers + pub fn connected_or_dialing_peers(&self) -> impl Iterator { + self.peers + .iter() + .filter(|(_, info)| { + info.connection_status.is_connected() || info.connection_status.is_dialing() + }) + .map(|(peer_id, _)| peer_id) + } + /// Gives the `peer_id` of all known connected and synced peers. pub fn synced_peers(&self) -> impl Iterator { self.peers @@ -153,25 +164,47 @@ impl PeerDB { } /// Returns the peer's connection status. Returns unknown if the peer is not in the DB. - pub fn connection_status(&self, peer_id: &PeerId) -> PeerConnectionStatus { + pub fn connection_status(&self, peer_id: &PeerId) -> Option { self.peer_info(peer_id) - .map_or(PeerConnectionStatus::default(), |info| { - info.connection_status.clone() - }) + .map(|info| info.connection_status.clone()) } /// Returns if the peer is already connected. pub fn is_connected(&self, peer_id: &PeerId) -> bool { - if let PeerConnectionStatus::Connected { .. } = self.connection_status(peer_id) { + if let Some(PeerConnectionStatus::Connected { .. }) = self.connection_status(peer_id) { true } else { false } } + /// If we are connected or currently dialing the peer returns true. + pub fn is_connected_or_dialing(&self, peer_id: &PeerId) -> bool { + match self.connection_status(peer_id) { + Some(PeerConnectionStatus::Connected { .. }) + | Some(PeerConnectionStatus::Dialing { .. }) => true, + _ => false, + } + } + /* Setters */ - /// Sets a peer as connected with an ingoing connection + /// A peer is being dialed. + pub fn dialing_peer(&mut self, peer_id: &PeerId) { + let info = self + .peers + .entry(peer_id.clone()) + .or_insert_with(|| Default::default()); + + if info.connection_status.is_disconnected() { + self.n_dc -= 1; + } + info.connection_status = PeerConnectionStatus::Dialing { + since: Instant::now(), + }; + } + + /// Sets a peer as connected with an ingoing connection. pub fn connect_ingoing(&mut self, peer_id: &PeerId) { let info = self .peers @@ -184,7 +217,7 @@ impl PeerDB { info.connection_status.connect_ingoing(); } - /// Sets a peer as connected with an outgoing connection + /// Sets a peer as connected with an outgoing connection. pub fn connect_outgoing(&mut self, peer_id: &PeerId) { let info = self .peers @@ -197,7 +230,7 @@ impl PeerDB { info.connection_status.connect_outgoing(); } - /// Sets the peer as disconnected + /// Sets the peer as disconnected. pub fn disconnect(&mut self, peer_id: &PeerId) { let log_ref = &self.log; let info = self.peers.entry(peer_id.clone()).or_insert_with(|| { diff --git a/beacon_node/eth2-libp2p/src/service.rs b/beacon_node/eth2-libp2p/src/service.rs index 49b8747fa..9b5e4e473 100644 --- a/beacon_node/eth2-libp2p/src/service.rs +++ b/beacon_node/eth2-libp2p/src/service.rs @@ -138,6 +138,11 @@ impl Service { if let Protocol::Udp(_) = components[1] { continue; } + // inform the peer manager that we are currently dialing this peer + network_globals + .peers + .write() + .dialing_peer(&bootnode_enr.peer_id()); dial_addr(multiaddr); } } diff --git a/beacon_node/eth2-libp2p/src/types/globals.rs b/beacon_node/eth2-libp2p/src/types/globals.rs index 33770a65e..3912bf86c 100644 --- a/beacon_node/eth2-libp2p/src/types/globals.rs +++ b/beacon_node/eth2-libp2p/src/types/globals.rs @@ -83,6 +83,11 @@ impl NetworkGlobals { self.peers.read().connected_peer_ids().count() } + /// Returns the number of libp2p peers that are either connected or being dialed. + pub fn connected_or_dialing_peers(&self) -> usize { + self.peers.read().connected_or_dialing_peers().count() + } + /// Returns in the node is syncing. pub fn is_syncing(&self) -> bool { self.sync_state.read().is_syncing() diff --git a/beacon_node/network/src/router/mod.rs b/beacon_node/network/src/router/mod.rs index 7929403aa..466c70363 100644 --- a/beacon_node/network/src/router/mod.rs +++ b/beacon_node/network/src/router/mod.rs @@ -8,7 +8,7 @@ pub mod processor; use crate::error; use crate::service::NetworkMessage; -use beacon_chain::{AttestationType, BeaconChain, BeaconChainTypes}; +use beacon_chain::{AttestationType, BeaconChain, BeaconChainTypes, BlockError}; use eth2_libp2p::{ rpc::{RPCError, RPCErrorResponse, RPCRequest, RPCResponse, RequestId, ResponseTermination}, MessageId, NetworkGlobals, PeerId, PubsubMessage, RPCEvent, @@ -268,7 +268,9 @@ impl Router { self.propagate_message(id, peer_id.clone()); self.processor.on_block_gossip(peer_id, verified_block); } + Err(BlockError::ParentUnknown { .. }) => {} // performing a parent lookup Err(e) => { + // performing a parent lookup warn!(self.log, "Could not verify block for gossip"; "error" => format!("{:?}", e)); } diff --git a/beacon_node/network/src/router/processor.rs b/beacon_node/network/src/router/processor.rs index 3fbc6b4e3..d0458e777 100644 --- a/beacon_node/network/src/router/processor.rs +++ b/beacon_node/network/src/router/processor.rs @@ -495,9 +495,10 @@ impl Processor { ) -> Result, BlockError> { let result = self.chain.verify_block_for_gossip(*block.clone()); - if let Err(BlockError::ParentUnknown(_)) = result { + if let Err(BlockError::ParentUnknown(block_hash)) = result { // if we don't know the parent, start a parent lookup // TODO: Modify the return to avoid the block clone. + debug!(self.log, "Unknown block received. Starting a parent lookup"; "block_slot" => block.message.slot, "block_hash" => format!("{}", block_hash)); self.send_to_sync(SyncMessage::UnknownBlock(peer_id.clone(), block)); } result diff --git a/beacon_node/network/src/service.rs b/beacon_node/network/src/service.rs index a88e743a9..5eff3654e 100644 --- a/beacon_node/network/src/service.rs +++ b/beacon_node/network/src/service.rs @@ -306,7 +306,6 @@ fn spawn_service( .map_err(|_| { debug!(log, "Failed to send peer disconnect to router");})?; } BehaviourEvent::StatusPeer(peer_id) => { - debug!(log, "Re-status peer"; "peer_id" => format!("{}", peer_id)); service.router_send .try_send(RouterMessage::StatusPeer(peer_id)) .map_err(|_| { debug!(log, "Failed to send re-status peer to router");})?; diff --git a/beacon_node/network/src/sync/manager.rs b/beacon_node/network/src/sync/manager.rs index 422232928..9e06150e8 100644 --- a/beacon_node/network/src/sync/manager.rs +++ b/beacon_node/network/src/sync/manager.rs @@ -58,7 +58,7 @@ use types::{EthSpec, Hash256, SignedBeaconBlock, Slot}; /// fully sync'd peer. const SLOT_IMPORT_TOLERANCE: usize = 20; /// How many attempts we try to find a parent of a block before we give up trying . -const PARENT_FAIL_TOLERANCE: usize = 3; +const PARENT_FAIL_TOLERANCE: usize = 5; /// The maximum depth we will search for a parent block. In principle we should have sync'd any /// canonical chain to its head once the peer connects. A chain should not appear where it's depth /// is further back than the most recent head slot. @@ -640,9 +640,16 @@ impl SyncManager { if parent_request.failed_attempts >= PARENT_FAIL_TOLERANCE || parent_request.downloaded_blocks.len() >= PARENT_DEPTH_TOLERANCE { + let error = if parent_request.failed_attempts >= PARENT_FAIL_TOLERANCE { + "too many failed attempts" + } else { + "reached maximum lookup-depth" + }; + debug!(self.log, "Parent import failed"; "block" => format!("{:?}",parent_request.downloaded_blocks[0].canonical_root()), - "ancestors_found" => parent_request.downloaded_blocks.len() + "ancestors_found" => parent_request.downloaded_blocks.len(), + "reason" => error ); return; // drop the request }