ff9b09d964
## Issue Addressed Upgrade libp2p to v0.52 ## Proposed Changes - **Workflows**: remove installation of `protoc` - **Book**: remove installation of `protoc` - **`Dockerfile`s and `cross`**: remove custom base `Dockerfile` for cross since it's no longer needed. Remove `protoc` from remaining `Dockerfiles`s - **Upgrade `discv5` to `v0.3.1`:** we have some cool stuff in there: no longer needs `protoc` and faster ip updates on cold start - **Upgrade `prometheus` to `0.21.0`**, now it no longer needs encoding checks - **things that look like refactors:** bunch of api types were renamed and need to be accessed in a different (clearer) way - **Lighthouse network** - connection limits is now a behaviour - banned peers no longer exist on the swarm level, but at the behaviour level - `connection_event_buffer_size` now is handled per connection with a buffer size of 4 - `mplex` is deprecated and was removed - rpc handler now logs the peer to which it belongs ## Additional Info Tried to keep as much behaviour unchanged as possible. However, there is a great deal of improvements we can do _after_ this upgrade: - Smart connection limits: Connection limits have been checked only based on numbers, we can now use information about the incoming peer to decide if we want it - More powerful peer management: Dial attempts from other behaviours can be rejected early - Incoming connections can be rejected early - Banning can be returned exclusively to the peer management: We should not get connections to banned peers anymore making use of this - TCP Nat updates: We might be able to take advantage of confirmed external addresses to check out tcp ports/ips Co-authored-by: Age Manning <Age@AgeManning.com> Co-authored-by: Akihito Nakano <sora.akatsuki@gmail.com>
63 lines
1.8 KiB
TOML
63 lines
1.8 KiB
TOML
[package]
|
|
name = "lighthouse_network"
|
|
version = "0.2.0"
|
|
authors = ["Sigma Prime <contact@sigmaprime.io>"]
|
|
edition = "2021"
|
|
|
|
[dependencies]
|
|
discv5 = { version = "0.3.1", features = ["libp2p"] }
|
|
unsigned-varint = { version = "0.6.0", features = ["codec"] }
|
|
types = { path = "../../consensus/types" }
|
|
ssz_types = "0.5.3"
|
|
serde = { version = "1.0.116", features = ["derive"] }
|
|
serde_derive = "1.0.116"
|
|
ethereum_ssz = "0.5.0"
|
|
ethereum_ssz_derive = "0.5.0"
|
|
tree_hash = "0.5.0"
|
|
tree_hash_derive = "0.5.0"
|
|
slog = { version = "2.5.2", features = ["max_level_trace"] }
|
|
lighthouse_version = { path = "../../common/lighthouse_version" }
|
|
tokio = { version = "1.14.0", features = ["time", "macros"] }
|
|
futures = "0.3.7"
|
|
error-chain = "0.12.4"
|
|
dirs = "3.0.1"
|
|
fnv = "1.0.7"
|
|
lazy_static = "1.4.0"
|
|
lighthouse_metrics = { path = "../../common/lighthouse_metrics" }
|
|
smallvec = "1.6.1"
|
|
tokio-io-timeout = "1.1.1"
|
|
lru = "0.7.1"
|
|
lru_cache = { path = "../../common/lru_cache" }
|
|
parking_lot = "0.12.0"
|
|
sha2 = "0.10"
|
|
snap = "1.0.1"
|
|
hex = "0.4.2"
|
|
tokio-util = { version = "0.6.2", features = ["codec", "compat", "time"] }
|
|
tiny-keccak = "2.0.2"
|
|
task_executor = { path = "../../common/task_executor" }
|
|
rand = "0.8.5"
|
|
directory = { path = "../../common/directory" }
|
|
regex = "1.5.5"
|
|
strum = { version = "0.24.0", features = ["derive"] }
|
|
superstruct = "0.5.0"
|
|
prometheus-client = "0.21.0"
|
|
unused_port = { path = "../../common/unused_port" }
|
|
delay_map = "0.3.0"
|
|
void = "1"
|
|
|
|
[dependencies.libp2p]
|
|
version = "0.52"
|
|
default-features = false
|
|
features = ["websocket", "identify", "yamux", "noise", "gossipsub", "dns", "tcp", "tokio", "plaintext", "secp256k1", "macros", "ecdsa"]
|
|
|
|
[dev-dependencies]
|
|
slog-term = "2.6.0"
|
|
slog-async = "2.5.0"
|
|
tempfile = "3.1.0"
|
|
exit-future = "0.2.0"
|
|
void = "1"
|
|
quickcheck = "0.9.2"
|
|
quickcheck_macros = "0.9.1"
|
|
|
|
[features]
|
|
libp2p-websocket = [] |