Update and consolidate dependencies (#3136)
## Proposed Changes I did some gardening 🌳 in our dependency tree: - Remove duplicate versions of `warp` (git vs patch) - Remove duplicate versions of lots of small deps: `cpufeatures`, `ethabi`, `ethereum-types`, `bitvec`, `nix`, `libsecp256k1`. - Update MDBX (should resolve #3028). I tested and Lighthouse compiles on Windows 11 now. - Restore `psutil` back to upstream - Make some progress updating everything to rand 0.8. There are a few crates stuck on 0.7. Hopefully this puts us on a better footing for future `cargo audit` issues, and improves compile times slightly. ## Additional Info Some crates are held back by issues with `zeroize`. libp2p-noise depends on [`chacha20poly1305`](https://crates.io/crates/chacha20poly1305) which depends on zeroize < v1.5, and we can only have one version of zeroize because it's post 1.0 (see https://github.com/rust-lang/cargo/issues/6584). The latest version of `zeroize` is v1.5.4, which is used by the new versions of many other crates (e.g. `num-bigint-dig`). Once a new version of chacha20poly1305 is released we can update libp2p-noise and upgrade everything to the latest `zeroize` version. I've also opened a PR to `blst` related to zeroize: https://github.com/supranational/blst/pull/111
This commit is contained in:
parent
ab434bc075
commit
4d0122444b
825
Cargo.lock
generated
825
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -91,10 +91,11 @@ members = [
|
|||||||
[patch]
|
[patch]
|
||||||
[patch.crates-io]
|
[patch.crates-io]
|
||||||
fixed-hash = { git = "https://github.com/paritytech/parity-common", rev="df638ab0885293d21d656dc300d39236b69ce57d" }
|
fixed-hash = { git = "https://github.com/paritytech/parity-common", rev="df638ab0885293d21d656dc300d39236b69ce57d" }
|
||||||
warp = { git = "https://github.com/macladson/warp", rev ="7e75acc" }
|
warp = { git = "https://github.com/macladson/warp", rev="7e75acc368229a46a236a8c991bf251fe7fe50ef" }
|
||||||
eth2_ssz = { path = "consensus/ssz" }
|
eth2_ssz = { path = "consensus/ssz" }
|
||||||
eth2_ssz_derive = { path = "consensus/ssz_derive" }
|
eth2_ssz_derive = { path = "consensus/ssz_derive" }
|
||||||
eth2_ssz_types = { path = "consensus/ssz_types" }
|
eth2_ssz_types = { path = "consensus/ssz_types" }
|
||||||
|
eth2_hashing = { path = "crypto/eth2_hashing" }
|
||||||
tree_hash = { path = "consensus/tree_hash" }
|
tree_hash = { path = "consensus/tree_hash" }
|
||||||
tree_hash_derive = { path = "consensus/tree_hash_derive" }
|
tree_hash_derive = { path = "consensus/tree_hash_derive" }
|
||||||
eth2_serde_utils = { path = "consensus/serde_utils" }
|
eth2_serde_utils = { path = "consensus/serde_utils" }
|
||||||
|
@ -19,7 +19,7 @@ serde_json = "1.0.58"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
merkle_proof = { path = "../../consensus/merkle_proof" }
|
merkle_proof = { path = "../../consensus/merkle_proof" }
|
||||||
store = { path = "../store" }
|
store = { path = "../store" }
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.12.0"
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
smallvec = "1.6.1"
|
smallvec = "1.6.1"
|
||||||
lighthouse_metrics = { path = "../../common/lighthouse_metrics" }
|
lighthouse_metrics = { path = "../../common/lighthouse_metrics" }
|
||||||
@ -30,7 +30,7 @@ serde_derive = "1.0.116"
|
|||||||
slog = { version = "2.5.2", features = ["max_level_trace"] }
|
slog = { version = "2.5.2", features = ["max_level_trace"] }
|
||||||
sloggers = { version = "2.1.1", features = ["json"] }
|
sloggers = { version = "2.1.1", features = ["json"] }
|
||||||
slot_clock = { path = "../../common/slot_clock" }
|
slot_clock = { path = "../../common/slot_clock" }
|
||||||
eth2_hashing = "0.2.0"
|
eth2_hashing = "0.3.0"
|
||||||
eth2_ssz = "0.4.1"
|
eth2_ssz = "0.4.1"
|
||||||
eth2_ssz_types = "0.2.2"
|
eth2_ssz_types = "0.2.2"
|
||||||
eth2_ssz_derive = "0.3.0"
|
eth2_ssz_derive = "0.3.0"
|
||||||
@ -42,11 +42,11 @@ eth1 = { path = "../eth1" }
|
|||||||
futures = "0.3.7"
|
futures = "0.3.7"
|
||||||
genesis = { path = "../genesis" }
|
genesis = { path = "../genesis" }
|
||||||
int_to_bytes = { path = "../../consensus/int_to_bytes" }
|
int_to_bytes = { path = "../../consensus/int_to_bytes" }
|
||||||
rand = "0.7.3"
|
rand = "0.8.5"
|
||||||
proto_array = { path = "../../consensus/proto_array" }
|
proto_array = { path = "../../consensus/proto_array" }
|
||||||
lru = "0.7.1"
|
lru = "0.7.1"
|
||||||
tempfile = "3.1.0"
|
tempfile = "3.1.0"
|
||||||
bitvec = "0.19.3"
|
bitvec = "0.20.4"
|
||||||
bls = { path = "../../crypto/bls" }
|
bls = { path = "../../crypto/bls" }
|
||||||
safe_arith = { path = "../../consensus/safe_arith" }
|
safe_arith = { path = "../../consensus/safe_arith" }
|
||||||
fork_choice = { path = "../../consensus/fork_choice" }
|
fork_choice = { path = "../../consensus/fork_choice" }
|
||||||
|
@ -13,7 +13,7 @@ store = { path = "../store" }
|
|||||||
network = { path = "../network" }
|
network = { path = "../network" }
|
||||||
timer = { path = "../timer" }
|
timer = { path = "../timer" }
|
||||||
lighthouse_network = { path = "../lighthouse_network" }
|
lighthouse_network = { path = "../lighthouse_network" }
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.12.0"
|
||||||
types = { path = "../../consensus/types" }
|
types = { path = "../../consensus/types" }
|
||||||
eth2_config = { path = "../../common/eth2_config" }
|
eth2_config = { path = "../../common/eth2_config" }
|
||||||
slot_clock = { path = "../../common/slot_clock" }
|
slot_clock = { path = "../../common/slot_clock" }
|
||||||
|
@ -7,7 +7,7 @@ edition = "2021"
|
|||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
eth1_test_rig = { path = "../../testing/eth1_test_rig" }
|
eth1_test_rig = { path = "../../testing/eth1_test_rig" }
|
||||||
toml = "0.5.6"
|
toml = "0.5.6"
|
||||||
web3 = { version = "0.17.0", default-features = false, features = ["http-tls", "signing", "ws-tls-tokio"] }
|
web3 = { version = "0.18.0", default-features = false, features = ["http-tls", "signing", "ws-tls-tokio"] }
|
||||||
sloggers = { version = "2.1.1", features = ["json"] }
|
sloggers = { version = "2.1.1", features = ["json"] }
|
||||||
environment = { path = "../../lighthouse/environment" }
|
environment = { path = "../../lighthouse/environment" }
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ merkle_proof = { path = "../../consensus/merkle_proof"}
|
|||||||
eth2_ssz = "0.4.1"
|
eth2_ssz = "0.4.1"
|
||||||
eth2_ssz_derive = "0.3.0"
|
eth2_ssz_derive = "0.3.0"
|
||||||
tree_hash = "0.4.1"
|
tree_hash = "0.4.1"
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.12.0"
|
||||||
slog = "2.5.2"
|
slog = "2.5.2"
|
||||||
tokio = { version = "1.14.0", features = ["full"] }
|
tokio = { version = "1.14.0", features = ["full"] }
|
||||||
state_processing = { path = "../../consensus/state_processing" }
|
state_processing = { path = "../../consensus/state_processing" }
|
||||||
|
@ -17,7 +17,7 @@ eth2_serde_utils = "0.1.1"
|
|||||||
serde_json = "1.0.58"
|
serde_json = "1.0.58"
|
||||||
serde = { version = "1.0.116", features = ["derive"] }
|
serde = { version = "1.0.116", features = ["derive"] }
|
||||||
eth1 = { path = "../eth1" }
|
eth1 = { path = "../eth1" }
|
||||||
warp = { git = "https://github.com/macladson/warp", rev ="dfa259e", features = ["tls"] }
|
warp = { version = "0.3.2", features = ["tls"] }
|
||||||
jsonwebtoken = "8"
|
jsonwebtoken = "8"
|
||||||
environment = { path = "../../lighthouse/environment" }
|
environment = { path = "../../lighthouse/environment" }
|
||||||
bytes = "1.1.0"
|
bytes = "1.1.0"
|
||||||
@ -28,10 +28,10 @@ lru = "0.7.1"
|
|||||||
exit-future = "0.2.0"
|
exit-future = "0.2.0"
|
||||||
tree_hash = "0.4.1"
|
tree_hash = "0.4.1"
|
||||||
tree_hash_derive = { path = "../../consensus/tree_hash_derive"}
|
tree_hash_derive = { path = "../../consensus/tree_hash_derive"}
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.12.0"
|
||||||
slot_clock = { path = "../../common/slot_clock" }
|
slot_clock = { path = "../../common/slot_clock" }
|
||||||
tempfile = "3.1.0"
|
tempfile = "3.1.0"
|
||||||
rand = "0.7.3"
|
rand = "0.8.5"
|
||||||
zeroize = { version = "1.4.2", features = ["zeroize_derive"] }
|
zeroize = { version = "1.4.2", features = ["zeroize_derive"] }
|
||||||
lighthouse_metrics = { path = "../../common/lighthouse_metrics" }
|
lighthouse_metrics = { path = "../../common/lighthouse_metrics" }
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
|
@ -17,7 +17,7 @@ rayon = "1.4.1"
|
|||||||
state_processing = { path = "../../consensus/state_processing" }
|
state_processing = { path = "../../consensus/state_processing" }
|
||||||
merkle_proof = { path = "../../consensus/merkle_proof" }
|
merkle_proof = { path = "../../consensus/merkle_proof" }
|
||||||
eth2_ssz = "0.4.1"
|
eth2_ssz = "0.4.1"
|
||||||
eth2_hashing = "0.2.0"
|
eth2_hashing = "0.3.0"
|
||||||
tree_hash = "0.4.1"
|
tree_hash = "0.4.1"
|
||||||
tokio = { version = "1.14.0", features = ["full"] }
|
tokio = { version = "1.14.0", features = ["full"] }
|
||||||
slog = "2.5.2"
|
slog = "2.5.2"
|
||||||
|
@ -28,7 +28,7 @@ eth2_ssz = "0.4.1"
|
|||||||
bs58 = "0.4.0"
|
bs58 = "0.4.0"
|
||||||
futures = "0.3.8"
|
futures = "0.3.8"
|
||||||
execution_layer = {path = "../execution_layer"}
|
execution_layer = {path = "../execution_layer"}
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.12.0"
|
||||||
safe_arith = {path = "../../consensus/safe_arith"}
|
safe_arith = {path = "../../consensus/safe_arith"}
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,14 +26,14 @@ lighthouse_metrics = { path = "../../common/lighthouse_metrics" }
|
|||||||
smallvec = "1.6.1"
|
smallvec = "1.6.1"
|
||||||
tokio-io-timeout = "1.1.1"
|
tokio-io-timeout = "1.1.1"
|
||||||
lru = "0.7.1"
|
lru = "0.7.1"
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.12.0"
|
||||||
sha2 = "0.9.1"
|
sha2 = "0.9.1"
|
||||||
snap = "1.0.1"
|
snap = "1.0.1"
|
||||||
hex = "0.4.2"
|
hex = "0.4.2"
|
||||||
tokio-util = { version = "0.6.2", features = ["codec", "compat", "time"] }
|
tokio-util = { version = "0.6.2", features = ["codec", "compat", "time"] }
|
||||||
tiny-keccak = "2.0.2"
|
tiny-keccak = "2.0.2"
|
||||||
task_executor = { path = "../../common/task_executor" }
|
task_executor = { path = "../../common/task_executor" }
|
||||||
rand = "0.7.3"
|
rand = "0.8.5"
|
||||||
directory = { path = "../../common/directory" }
|
directory = { path = "../../common/directory" }
|
||||||
regex = "1.5.5"
|
regex = "1.5.5"
|
||||||
strum = { version = "0.24.0", features = ["derive"] }
|
strum = { version = "0.24.0", features = ["derive"] }
|
||||||
|
@ -29,7 +29,7 @@ error-chain = "0.12.4"
|
|||||||
tokio = { version = "1.14.0", features = ["full"] }
|
tokio = { version = "1.14.0", features = ["full"] }
|
||||||
tokio-stream = "0.1.3"
|
tokio-stream = "0.1.3"
|
||||||
smallvec = "1.6.1"
|
smallvec = "1.6.1"
|
||||||
rand = "0.7.3"
|
rand = "0.8.5"
|
||||||
fnv = "1.0.7"
|
fnv = "1.0.7"
|
||||||
rlp = "0.5.0"
|
rlp = "0.5.0"
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
|
@ -9,7 +9,7 @@ derivative = "2.1.1"
|
|||||||
itertools = "0.10.0"
|
itertools = "0.10.0"
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
lighthouse_metrics = { path = "../../common/lighthouse_metrics" }
|
lighthouse_metrics = { path = "../../common/lighthouse_metrics" }
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.12.0"
|
||||||
types = { path = "../../consensus/types" }
|
types = { path = "../../consensus/types" }
|
||||||
state_processing = { path = "../../consensus/state_processing" }
|
state_processing = { path = "../../consensus/state_processing" }
|
||||||
eth2_ssz = "0.4.1"
|
eth2_ssz = "0.4.1"
|
||||||
|
@ -11,7 +11,7 @@ beacon_chain = {path = "../beacon_chain"}
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
db-key = "0.0.5"
|
db-key = "0.0.5"
|
||||||
leveldb = { version = "0.8.6", default-features = false }
|
leveldb = { version = "0.8.6", default-features = false }
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.12.0"
|
||||||
itertools = "0.10.0"
|
itertools = "0.10.0"
|
||||||
eth2_ssz = "0.4.1"
|
eth2_ssz = "0.4.1"
|
||||||
eth2_ssz_derive = "0.3.0"
|
eth2_ssz_derive = "0.3.0"
|
||||||
|
@ -7,7 +7,7 @@ edition = "2021"
|
|||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rand = "0.7.3"
|
rand = "0.8.5"
|
||||||
eth2_wallet = { path = "../../crypto/eth2_wallet" }
|
eth2_wallet = { path = "../../crypto/eth2_wallet" }
|
||||||
eth2_keystore = { path = "../../crypto/eth2_keystore" }
|
eth2_keystore = { path = "../../crypto/eth2_keystore" }
|
||||||
filesystem = { path = "../filesystem" }
|
filesystem = { path = "../filesystem" }
|
||||||
|
@ -16,4 +16,4 @@ hex = "0.4.2"
|
|||||||
types = { path = "../../consensus/types"}
|
types = { path = "../../consensus/types"}
|
||||||
eth2_ssz = "0.4.1"
|
eth2_ssz = "0.4.1"
|
||||||
tree_hash = "0.4.1"
|
tree_hash = "0.4.1"
|
||||||
ethabi = "12.0.0"
|
ethabi = "16.0.0"
|
||||||
|
@ -70,13 +70,13 @@ pub fn decode_eth1_tx_data(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
let root = decode_token!(Hash256, to_fixed_bytes);
|
let root = decode_token!(Hash256, into_fixed_bytes);
|
||||||
|
|
||||||
let deposit_data = DepositData {
|
let deposit_data = DepositData {
|
||||||
amount,
|
amount,
|
||||||
signature: decode_token!(SignatureBytes, to_bytes),
|
signature: decode_token!(SignatureBytes, into_bytes),
|
||||||
withdrawal_credentials: decode_token!(Hash256, to_bytes),
|
withdrawal_credentials: decode_token!(Hash256, into_bytes),
|
||||||
pubkey: decode_token!(PublicKeyBytes, to_bytes),
|
pubkey: decode_token!(PublicKeyBytes, into_bytes),
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok((deposit_data, root))
|
Ok((deposit_data, root))
|
||||||
|
@ -15,7 +15,7 @@ lighthouse_network = { path = "../../beacon_node/lighthouse_network" }
|
|||||||
proto_array = { path = "../../consensus/proto_array", optional = true }
|
proto_array = { path = "../../consensus/proto_array", optional = true }
|
||||||
eth2_serde_utils = "0.1.1"
|
eth2_serde_utils = "0.1.1"
|
||||||
eth2_keystore = { path = "../../crypto/eth2_keystore" }
|
eth2_keystore = { path = "../../crypto/eth2_keystore" }
|
||||||
libsecp256k1 = "0.6.0"
|
libsecp256k1 = "0.7.0"
|
||||||
ring = "0.16.19"
|
ring = "0.16.19"
|
||||||
bytes = "1.0.1"
|
bytes = "1.0.1"
|
||||||
account_utils = { path = "../../common/account_utils" }
|
account_utils = { path = "../../common/account_utils" }
|
||||||
@ -28,10 +28,7 @@ store = { path = "../../beacon_node/store", optional = true }
|
|||||||
slashing_protection = { path = "../../validator_client/slashing_protection", optional = true }
|
slashing_protection = { path = "../../validator_client/slashing_protection", optional = true }
|
||||||
|
|
||||||
[target.'cfg(target_os = "linux")'.dependencies]
|
[target.'cfg(target_os = "linux")'.dependencies]
|
||||||
# TODO: update psutil once fix is merged: https://github.com/rust-psutil/rust-psutil/pull/93
|
psutil = { version = "3.2.2", optional = true }
|
||||||
# TODO: Even once the above PR is corrected, there are sub-dependencies that need to be updated.
|
|
||||||
# psutil = { version = "3.2.0", optional = true }
|
|
||||||
psutil = { git = "https://github.com/sigp/rust-psutil", rev = "b3e44bc7ec5d545b8cb8ad4e3dffe074b6e6336b", optional = true }
|
|
||||||
procinfo = { version = "0.4.2", optional = true }
|
procinfo = { version = "0.4.2", optional = true }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
@ -9,7 +9,7 @@ edition = "2021"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
num-bigint = "0.4.2"
|
num-bigint = "0.4.2"
|
||||||
eth2_hashing = "0.2.0"
|
eth2_hashing = "0.3.0"
|
||||||
hex = "0.4.2"
|
hex = "0.4.2"
|
||||||
serde_yaml = "0.8.13"
|
serde_yaml = "0.8.13"
|
||||||
serde = "1.0.116"
|
serde = "1.0.116"
|
||||||
|
@ -10,7 +10,7 @@ edition = "2021"
|
|||||||
lighthouse_metrics = { path = "../lighthouse_metrics" }
|
lighthouse_metrics = { path = "../lighthouse_metrics" }
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
libc = "0.2.79"
|
libc = "0.2.79"
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.12.0"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
mallinfo2 = []
|
mallinfo2 = []
|
||||||
|
@ -8,4 +8,4 @@ edition = "2021"
|
|||||||
types = { path = "../../consensus/types" }
|
types = { path = "../../consensus/types" }
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
lighthouse_metrics = { path = "../lighthouse_metrics" }
|
lighthouse_metrics = { path = "../lighthouse_metrics" }
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.12.0"
|
||||||
|
@ -14,7 +14,7 @@ bls = { path = "../../crypto/bls" }
|
|||||||
eth2_keystore = { path = "../../crypto/eth2_keystore" }
|
eth2_keystore = { path = "../../crypto/eth2_keystore" }
|
||||||
filesystem = { path = "../filesystem" }
|
filesystem = { path = "../filesystem" }
|
||||||
types = { path = "../../consensus/types" }
|
types = { path = "../../consensus/types" }
|
||||||
rand = "0.7.3"
|
rand = "0.8.5"
|
||||||
deposit_contract = { path = "../deposit_contract" }
|
deposit_contract = { path = "../deposit_contract" }
|
||||||
tree_hash = "0.4.1"
|
tree_hash = "0.4.1"
|
||||||
hex = "0.4.2"
|
hex = "0.4.2"
|
||||||
|
@ -7,7 +7,7 @@ edition = "2021"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
ethereum-types = "0.12.1"
|
ethereum-types = "0.12.1"
|
||||||
eth2_ssz_types = "0.2.2"
|
eth2_ssz_types = "0.2.2"
|
||||||
eth2_hashing = "0.2.0"
|
eth2_hashing = "0.3.0"
|
||||||
eth2_ssz_derive = "0.3.0"
|
eth2_ssz_derive = "0.3.0"
|
||||||
eth2_ssz = "0.4.1"
|
eth2_ssz = "0.4.1"
|
||||||
tree_hash = "0.4.1"
|
tree_hash = "0.4.1"
|
||||||
|
@ -6,7 +6,7 @@ edition = "2021"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
ethereum-types = "0.12.1"
|
ethereum-types = "0.12.1"
|
||||||
eth2_hashing = "0.2.0"
|
eth2_hashing = "0.3.0"
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
safe_arith = { path = "../safe_arith" }
|
safe_arith = { path = "../safe_arith" }
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ safe_arith = { path = "../safe_arith" }
|
|||||||
tree_hash = "0.4.1"
|
tree_hash = "0.4.1"
|
||||||
types = { path = "../types", default-features = false }
|
types = { path = "../types", default-features = false }
|
||||||
rayon = "1.4.1"
|
rayon = "1.4.1"
|
||||||
eth2_hashing = "0.2.0"
|
eth2_hashing = "0.3.0"
|
||||||
int_to_bytes = { path = "../int_to_bytes" }
|
int_to_bytes = { path = "../int_to_bytes" }
|
||||||
smallvec = "1.6.1"
|
smallvec = "1.6.1"
|
||||||
arbitrary = { version = "1.0", features = ["derive"], optional = true }
|
arbitrary = { version = "1.0", features = ["derive"], optional = true }
|
||||||
|
@ -12,7 +12,7 @@ harness = false
|
|||||||
criterion = "0.3.3"
|
criterion = "0.3.3"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
eth2_hashing = "0.2.0"
|
eth2_hashing = "0.3.0"
|
||||||
ethereum-types = "0.12.1"
|
ethereum-types = "0.12.1"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
@ -7,7 +7,7 @@ license = "Apache-2.0"
|
|||||||
description = "Efficient Merkle-hashing as used in Ethereum 2.0"
|
description = "Efficient Merkle-hashing as used in Ethereum 2.0"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
rand = "0.7.3"
|
rand = "0.8.5"
|
||||||
tree_hash_derive = "0.4.0"
|
tree_hash_derive = "0.4.0"
|
||||||
types = { path = "../types" }
|
types = { path = "../types" }
|
||||||
beacon_chain = { path = "../../beacon_node/beacon_chain" }
|
beacon_chain = { path = "../../beacon_node/beacon_chain" }
|
||||||
@ -16,7 +16,7 @@ eth2_ssz_derive = "0.3.0"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
ethereum-types = "0.12.1"
|
ethereum-types = "0.12.1"
|
||||||
eth2_hashing = "0.2.0"
|
eth2_hashing = "0.3.0"
|
||||||
smallvec = "1.6.1"
|
smallvec = "1.6.1"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
@ -14,12 +14,12 @@ compare_fields = { path = "../../common/compare_fields" }
|
|||||||
compare_fields_derive = { path = "../../common/compare_fields_derive" }
|
compare_fields_derive = { path = "../../common/compare_fields_derive" }
|
||||||
eth2_interop_keypairs = { path = "../../common/eth2_interop_keypairs" }
|
eth2_interop_keypairs = { path = "../../common/eth2_interop_keypairs" }
|
||||||
ethereum-types = "0.12.1"
|
ethereum-types = "0.12.1"
|
||||||
eth2_hashing = "0.2.0"
|
eth2_hashing = "0.3.0"
|
||||||
hex = "0.4.2"
|
hex = "0.4.2"
|
||||||
int_to_bytes = { path = "../int_to_bytes" }
|
int_to_bytes = { path = "../int_to_bytes" }
|
||||||
log = "0.4.11"
|
log = "0.4.11"
|
||||||
rayon = "1.4.1"
|
rayon = "1.4.1"
|
||||||
rand = "0.7.3"
|
rand = "0.8.5"
|
||||||
safe_arith = { path = "../safe_arith" }
|
safe_arith = { path = "../safe_arith" }
|
||||||
serde = {version = "1.0.116" , features = ["rc"] }
|
serde = {version = "1.0.116" , features = ["rc"] }
|
||||||
serde_derive = "1.0.116"
|
serde_derive = "1.0.116"
|
||||||
@ -31,7 +31,7 @@ swap_or_not_shuffle = { path = "../swap_or_not_shuffle" }
|
|||||||
test_random_derive = { path = "../../common/test_random_derive" }
|
test_random_derive = { path = "../../common/test_random_derive" }
|
||||||
tree_hash = "0.4.1"
|
tree_hash = "0.4.1"
|
||||||
tree_hash_derive = "0.4.0"
|
tree_hash_derive = "0.4.0"
|
||||||
rand_xorshift = "0.2.0"
|
rand_xorshift = "0.3.0"
|
||||||
cached_tree_hash = { path = "../cached_tree_hash" }
|
cached_tree_hash = { path = "../cached_tree_hash" }
|
||||||
serde_yaml = "0.8.13"
|
serde_yaml = "0.8.13"
|
||||||
tempfile = "3.1.0"
|
tempfile = "3.1.0"
|
||||||
@ -41,7 +41,7 @@ arbitrary = { version = "1.0", features = ["derive"], optional = true }
|
|||||||
eth2_serde_utils = "0.1.1"
|
eth2_serde_utils = "0.1.1"
|
||||||
regex = "1.5.5"
|
regex = "1.5.5"
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
parking_lot = "0.11.1"
|
parking_lot = "0.12.0"
|
||||||
itertools = "0.10.0"
|
itertools = "0.10.0"
|
||||||
superstruct = "0.4.1"
|
superstruct = "0.4.1"
|
||||||
serde_json = "1.0.74"
|
serde_json = "1.0.74"
|
||||||
|
@ -13,7 +13,7 @@ serde = "1.0.116"
|
|||||||
serde_derive = "1.0.116"
|
serde_derive = "1.0.116"
|
||||||
eth2_serde_utils = "0.1.1"
|
eth2_serde_utils = "0.1.1"
|
||||||
hex = "0.4.2"
|
hex = "0.4.2"
|
||||||
eth2_hashing = "0.2.0"
|
eth2_hashing = "0.3.0"
|
||||||
ethereum-types = "0.12.1"
|
ethereum-types = "0.12.1"
|
||||||
arbitrary = { version = "1.0", features = ["derive"], optional = true }
|
arbitrary = { version = "1.0", features = ["derive"], optional = true }
|
||||||
zeroize = { version = "1.4.2", features = ["zeroize_derive"] }
|
zeroize = { version = "1.4.2", features = ["zeroize_derive"] }
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "eth2_hashing"
|
name = "eth2_hashing"
|
||||||
version = "0.2.0"
|
version = "0.3.0"
|
||||||
authors = ["Paul Hauner <paul@paulhauner.com>"]
|
authors = ["Paul Hauner <paul@paulhauner.com>"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
@ -9,8 +9,8 @@ description = "Hashing primitives used in Ethereum 2.0"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
lazy_static = { version = "1.4.0", optional = true }
|
lazy_static = { version = "1.4.0", optional = true }
|
||||||
ring = "0.16.19"
|
ring = "0.16.19"
|
||||||
sha2 = "0.9.5"
|
sha2 = "0.10.2"
|
||||||
cpufeatures = "0.1.5"
|
cpufeatures = "0.2.2"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
rustc-hex = "2.1.0"
|
rustc-hex = "2.1.0"
|
||||||
|
@ -7,7 +7,7 @@ edition = "2021"
|
|||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rand = "0.7.3"
|
rand = "0.8.5"
|
||||||
hmac = "0.11.0"
|
hmac = "0.11.0"
|
||||||
pbkdf2 = { version = "0.8.0", default-features = false }
|
pbkdf2 = { version = "0.8.0", default-features = false }
|
||||||
scrypt = { version = "0.7.0", default-features = false }
|
scrypt = { version = "0.7.0", default-features = false }
|
||||||
|
@ -11,7 +11,7 @@ serde = "1.0.116"
|
|||||||
serde_json = "1.0.58"
|
serde_json = "1.0.58"
|
||||||
serde_repr = "0.1.6"
|
serde_repr = "0.1.6"
|
||||||
uuid = { version = "0.8.1", features = ["serde", "v4"] }
|
uuid = { version = "0.8.1", features = ["serde", "v4"] }
|
||||||
rand = "0.7.3"
|
rand = "0.8.5"
|
||||||
eth2_keystore = { path = "../eth2_keystore" }
|
eth2_keystore = { path = "../eth2_keystore" }
|
||||||
eth2_key_derivation = { path = "../eth2_key_derivation" }
|
eth2_key_derivation = { path = "../eth2_key_derivation" }
|
||||||
tiny-bip39 = "0.8.1"
|
tiny-bip39 = "0.8.1"
|
||||||
|
@ -33,7 +33,7 @@ lighthouse_version = { path = "../common/lighthouse_version" }
|
|||||||
directory = { path = "../common/directory" }
|
directory = { path = "../common/directory" }
|
||||||
account_utils = { path = "../common/account_utils" }
|
account_utils = { path = "../common/account_utils" }
|
||||||
eth2_wallet = { path = "../crypto/eth2_wallet" }
|
eth2_wallet = { path = "../crypto/eth2_wallet" }
|
||||||
web3 = { version = "0.17.0", default-features = false, features = ["http-tls", "signing", "ws-tls-tokio"] }
|
web3 = { version = "0.18.0", default-features = false, features = ["http-tls", "signing", "ws-tls-tokio"] }
|
||||||
eth1_test_rig = { path = "../testing/eth1_test_rig" }
|
eth1_test_rig = { path = "../testing/eth1_test_rig" }
|
||||||
sensitive_url = { path = "../common/sensitive_url" }
|
sensitive_url = { path = "../common/sensitive_url" }
|
||||||
eth2 = { path = "../common/eth2" }
|
eth2 = { path = "../common/eth2" }
|
||||||
|
@ -26,7 +26,7 @@ slog = { version = "2.5.2", features = ["max_level_trace"] }
|
|||||||
sloggers = { version = "2.1.1", features = ["json"] }
|
sloggers = { version = "2.1.1", features = ["json"] }
|
||||||
types = { "path" = "../consensus/types" }
|
types = { "path" = "../consensus/types" }
|
||||||
bls = { path = "../crypto/bls" }
|
bls = { path = "../crypto/bls" }
|
||||||
eth2_hashing = "0.2.0"
|
eth2_hashing = "0.3.0"
|
||||||
clap = "2.33.3"
|
clap = "2.33.3"
|
||||||
env_logger = "0.9.0"
|
env_logger = "0.9.0"
|
||||||
environment = { path = "./environment" }
|
environment = { path = "./environment" }
|
||||||
|
@ -15,8 +15,8 @@ lighthouse_metrics = { path = "../common/lighthouse_metrics" }
|
|||||||
filesystem = { path = "../common/filesystem" }
|
filesystem = { path = "../common/filesystem" }
|
||||||
mdbx = { package = "libmdbx", version = "0.1.0" }
|
mdbx = { package = "libmdbx", version = "0.1.0" }
|
||||||
lru = "0.7.1"
|
lru = "0.7.1"
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.12.0"
|
||||||
rand = "0.7.3"
|
rand = "0.8.5"
|
||||||
safe_arith = { path = "../consensus/safe_arith" }
|
safe_arith = { path = "../consensus/safe_arith" }
|
||||||
serde = "1.0"
|
serde = "1.0"
|
||||||
serde_derive = "1.0"
|
serde_derive = "1.0"
|
||||||
|
@ -42,23 +42,23 @@ fn random_test(seed: u64, test_config: TestConfig) {
|
|||||||
let tempdir = tempdir().unwrap();
|
let tempdir = tempdir().unwrap();
|
||||||
|
|
||||||
let mut config = Config::new(tempdir.path().into());
|
let mut config = Config::new(tempdir.path().into());
|
||||||
config.validator_chunk_size = 1 << rng.gen_range(1, 4);
|
config.validator_chunk_size = 1 << rng.gen_range(1..4);
|
||||||
|
|
||||||
let chunk_size_exponent = rng.gen_range(1, 4);
|
let chunk_size_exponent = rng.gen_range(1..4);
|
||||||
config.chunk_size = 1 << chunk_size_exponent;
|
config.chunk_size = 1 << chunk_size_exponent;
|
||||||
config.history_length = 1 << rng.gen_range(chunk_size_exponent, chunk_size_exponent + 3);
|
config.history_length = 1 << rng.gen_range(chunk_size_exponent..chunk_size_exponent + 3);
|
||||||
|
|
||||||
let slasher = Slasher::<E>::open(config.clone(), test_logger()).unwrap();
|
let slasher = Slasher::<E>::open(config.clone(), test_logger()).unwrap();
|
||||||
|
|
||||||
let validators = (0..num_validators as u64).collect::<Vec<u64>>();
|
let validators = (0..num_validators as u64).collect::<Vec<u64>>();
|
||||||
|
|
||||||
let num_attestations = rng.gen_range(2, max_attestations + 1);
|
let num_attestations = rng.gen_range(2..max_attestations + 1);
|
||||||
|
|
||||||
let mut current_epoch = Epoch::new(0);
|
let mut current_epoch = Epoch::new(0);
|
||||||
let mut attestations = vec![];
|
let mut attestations = vec![];
|
||||||
|
|
||||||
for _ in 0..num_attestations {
|
for _ in 0..num_attestations {
|
||||||
let num_attesters = rng.gen_range(1, num_validators);
|
let num_attesters = rng.gen_range(1..num_validators);
|
||||||
let mut attesting_indices = validators
|
let mut attesting_indices = validators
|
||||||
.choose_multiple(&mut rng, num_attesters)
|
.choose_multiple(&mut rng, num_attesters)
|
||||||
.copied()
|
.copied()
|
||||||
@ -70,17 +70,17 @@ fn random_test(seed: u64, test_config: TestConfig) {
|
|||||||
let source = rng.gen_range(
|
let source = rng.gen_range(
|
||||||
current_epoch
|
current_epoch
|
||||||
.as_u64()
|
.as_u64()
|
||||||
.saturating_sub(config.history_length as u64 - 1),
|
.saturating_sub(config.history_length as u64 - 1)
|
||||||
current_epoch.as_u64() + 1,
|
..current_epoch.as_u64() + 1,
|
||||||
);
|
);
|
||||||
let target = rng.gen_range(source, current_epoch.as_u64() + 1);
|
let target = rng.gen_range(source..current_epoch.as_u64() + 1);
|
||||||
(source, target)
|
(source, target)
|
||||||
} else {
|
} else {
|
||||||
let source = rng.gen_range(0, max(3 * current_epoch.as_u64(), 1));
|
let source = rng.gen_range(0..max(3 * current_epoch.as_u64(), 1));
|
||||||
let target = rng.gen_range(source, max(3 * current_epoch.as_u64(), source + 1));
|
let target = rng.gen_range(source..max(3 * current_epoch.as_u64(), source + 1));
|
||||||
(source, target)
|
(source, target)
|
||||||
};
|
};
|
||||||
let target_root = rng.gen_range(0, 3);
|
let target_root = rng.gen_range(0..3);
|
||||||
let attestation = indexed_att(&attesting_indices, source, target, target_root);
|
let attestation = indexed_att(&attesting_indices, source, target, target_root);
|
||||||
|
|
||||||
if check_slashings {
|
if check_slashings {
|
||||||
@ -92,9 +92,9 @@ fn random_test(seed: u64, test_config: TestConfig) {
|
|||||||
|
|
||||||
// Maybe add a random block too
|
// Maybe add a random block too
|
||||||
if test_config.add_blocks && rng.gen_bool(0.1) {
|
if test_config.add_blocks && rng.gen_bool(0.1) {
|
||||||
let slot = rng.gen_range(0, 1 + 3 * current_epoch.as_u64() * E::slots_per_epoch() / 2);
|
let slot = rng.gen_range(0..1 + 3 * current_epoch.as_u64() * E::slots_per_epoch() / 2);
|
||||||
let proposer = rng.gen_range(0, num_validators as u64);
|
let proposer = rng.gen_range(0..num_validators as u64);
|
||||||
let block_root = rng.gen_range(0, 2);
|
let block_root = rng.gen_range(0..2);
|
||||||
slasher.accept_block_header(block(slot, proposer, block_root));
|
slasher.accept_block_header(block(slot, proposer, block_root));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ edition = "2021"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
tokio = { version = "1.14.0", features = ["time"] }
|
tokio = { version = "1.14.0", features = ["time"] }
|
||||||
web3 = { version = "0.17.0", default-features = false, features = ["http-tls", "signing", "ws-tls-tokio"] }
|
web3 = { version = "0.18.0", default-features = false, features = ["http-tls", "signing", "ws-tls-tokio"] }
|
||||||
types = { path = "../../consensus/types"}
|
types = { path = "../../consensus/types"}
|
||||||
serde_json = "1.0.58"
|
serde_json = "1.0.58"
|
||||||
deposit_contract = { path = "../../common/deposit_contract"}
|
deposit_contract = { path = "../../common/deposit_contract"}
|
||||||
|
@ -194,6 +194,8 @@ impl DepositContract {
|
|||||||
to: Some(self.contract.address()),
|
to: Some(self.contract.address()),
|
||||||
gas: Some(U256::from(DEPOSIT_GAS)),
|
gas: Some(U256::from(DEPOSIT_GAS)),
|
||||||
gas_price: None,
|
gas_price: None,
|
||||||
|
max_fee_per_gas: None,
|
||||||
|
max_priority_fee_per_gas: None,
|
||||||
value: Some(from_gwei(deposit_data.amount)),
|
value: Some(from_gwei(deposit_data.amount)),
|
||||||
// Note: the reason we use this `TransactionRequest` instead of just using the
|
// Note: the reason we use this `TransactionRequest` instead of just using the
|
||||||
// function in `self.contract` is so that the `eth1_tx_data` function gets used
|
// function in `self.contract` is so that the `eth1_tx_data` function gets used
|
||||||
|
@ -10,7 +10,7 @@ edition = "2021"
|
|||||||
node_test_rig = { path = "../node_test_rig" }
|
node_test_rig = { path = "../node_test_rig" }
|
||||||
eth1 = {path = "../../beacon_node/eth1"}
|
eth1 = {path = "../../beacon_node/eth1"}
|
||||||
types = { path = "../../consensus/types" }
|
types = { path = "../../consensus/types" }
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.12.0"
|
||||||
futures = "0.3.7"
|
futures = "0.3.7"
|
||||||
tokio = "1.14.0"
|
tokio = "1.14.0"
|
||||||
eth1_test_rig = { path = "../eth1_test_rig" }
|
eth1_test_rig = { path = "../eth1_test_rig" }
|
||||||
|
@ -30,7 +30,7 @@ dirs = "3.0.1"
|
|||||||
directory = { path = "../common/directory" }
|
directory = { path = "../common/directory" }
|
||||||
lockfile = { path = "../common/lockfile" }
|
lockfile = { path = "../common/lockfile" }
|
||||||
environment = { path = "../lighthouse/environment" }
|
environment = { path = "../lighthouse/environment" }
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.12.0"
|
||||||
exit-future = "0.2.0"
|
exit-future = "0.2.0"
|
||||||
filesystem = { path = "../common/filesystem" }
|
filesystem = { path = "../common/filesystem" }
|
||||||
hex = "0.4.2"
|
hex = "0.4.2"
|
||||||
@ -47,9 +47,9 @@ warp_utils = { path = "../common/warp_utils" }
|
|||||||
warp = "0.3.2"
|
warp = "0.3.2"
|
||||||
hyper = "0.14.4"
|
hyper = "0.14.4"
|
||||||
eth2_serde_utils = "0.1.1"
|
eth2_serde_utils = "0.1.1"
|
||||||
libsecp256k1 = "0.6.0"
|
libsecp256k1 = "0.7.0"
|
||||||
ring = "0.16.19"
|
ring = "0.16.19"
|
||||||
rand = { version = "0.7.3", features = ["small_rng"] }
|
rand = { version = "0.8.5", features = ["small_rng"] }
|
||||||
lighthouse_metrics = { path = "../common/lighthouse_metrics" }
|
lighthouse_metrics = { path = "../common/lighthouse_metrics" }
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
itertools = "0.10.0"
|
itertools = "0.10.0"
|
||||||
|
Loading…
Reference in New Issue
Block a user