From a91e366b04bca2c8fb04960e1aebcfa3c40462ec Mon Sep 17 00:00:00 2001 From: Zachary Holme Date: Tue, 18 Mar 2025 08:20:48 -0500 Subject: [PATCH 01/52] initial commit for clean history --- Cargo.lock | 2315 +++++++++++++++-- Cargo.toml | 40 +- anchor/client/src/config.rs | 3 + anchor/client/src/lib.rs | 3 +- anchor/eth/execution.rs | 2 +- anchor/eth/src/sync.rs | 11 +- anchor/integration/Cargo.toml | 29 + .../mock-data/operator-0/anchor_db.sqlite | Bin 0 -> 86016 bytes .../integration/mock-data/operator-0/key.pem | 27 + .../mock-data/operator-0/network/key | 1 + .../operator-0/slashing_protection.sqlite | Bin 0 -> 28672 bytes .../mock-data/operator-1/anchor_db.sqlite | Bin 0 -> 86016 bytes .../integration/mock-data/operator-1/key.pem | 27 + .../mock-data/operator-1/network/key | 1 + .../operator-1/slashing_protection.sqlite | Bin 0 -> 28672 bytes .../mock-data/operator-2/anchor_db.sqlite | Bin 0 -> 86016 bytes .../integration/mock-data/operator-2/key.pem | 27 + .../mock-data/operator-2/network/key | 1 + .../operator-2/slashing_protection.sqlite | Bin 0 -> 28672 bytes .../mock-data/operator-3/anchor_db.sqlite | Bin 0 -> 86016 bytes .../integration/mock-data/operator-3/key.pem | 27 + .../mock-data/operator-3/network/key | 1 + .../operator-3/slashing_protection.sqlite | Bin 0 -> 28672 bytes anchor/integration/sim-config/config.yaml | 193 ++ .../sim-config/deposit_contract_block.txt | 1 + anchor/integration/sim-config/key | 1 + .../integration/sim-config/ssv_boot_enr.yaml | 0 .../sim-config/ssv_contract_address.txt | 1 + .../sim-config/ssv_contract_block.txt | 1 + .../sim-config/ssv_domain_type.txt | 1 + anchor/integration/src/basic_sim.rs | 143 + anchor/integration/src/checks.rs | 6 + anchor/integration/src/cli.rs | 67 + anchor/integration/src/local_anchor_node.rs | 70 + anchor/integration/src/local_network.rs | 330 +++ anchor/integration/src/main.rs | 34 + anchor/integration/src/util.rs | 135 + anchor/network/src/lib.rs | 2 +- anchor/subnet_tracker/Cargo.toml | 2 +- 39 files changed, 3331 insertions(+), 171 deletions(-) create mode 100644 anchor/integration/Cargo.toml create mode 100644 anchor/integration/mock-data/operator-0/anchor_db.sqlite create mode 100644 anchor/integration/mock-data/operator-0/key.pem create mode 100644 anchor/integration/mock-data/operator-0/network/key create mode 100644 anchor/integration/mock-data/operator-0/slashing_protection.sqlite create mode 100644 anchor/integration/mock-data/operator-1/anchor_db.sqlite create mode 100644 anchor/integration/mock-data/operator-1/key.pem create mode 100644 anchor/integration/mock-data/operator-1/network/key create mode 100644 anchor/integration/mock-data/operator-1/slashing_protection.sqlite create mode 100644 anchor/integration/mock-data/operator-2/anchor_db.sqlite create mode 100644 anchor/integration/mock-data/operator-2/key.pem create mode 100644 anchor/integration/mock-data/operator-2/network/key create mode 100644 anchor/integration/mock-data/operator-2/slashing_protection.sqlite create mode 100644 anchor/integration/mock-data/operator-3/anchor_db.sqlite create mode 100644 anchor/integration/mock-data/operator-3/key.pem create mode 100644 anchor/integration/mock-data/operator-3/network/key create mode 100644 anchor/integration/mock-data/operator-3/slashing_protection.sqlite create mode 100644 anchor/integration/sim-config/config.yaml create mode 100644 anchor/integration/sim-config/deposit_contract_block.txt create mode 100644 anchor/integration/sim-config/key create mode 100644 anchor/integration/sim-config/ssv_boot_enr.yaml create mode 100644 anchor/integration/sim-config/ssv_contract_address.txt create mode 100644 anchor/integration/sim-config/ssv_contract_block.txt create mode 100644 anchor/integration/sim-config/ssv_domain_type.txt create mode 100644 anchor/integration/src/basic_sim.rs create mode 100644 anchor/integration/src/checks.rs create mode 100644 anchor/integration/src/cli.rs create mode 100644 anchor/integration/src/local_anchor_node.rs create mode 100644 anchor/integration/src/local_network.rs create mode 100644 anchor/integration/src/main.rs create mode 100644 anchor/integration/src/util.rs diff --git a/Cargo.lock b/Cargo.lock index 9b326a7fb..272d82b7c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,25 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "account_utils" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "eth2_keystore", + "eth2_wallet", + "filesystem", + "rand 0.8.5", + "regex", + "rpassword", + "serde", + "serde_yaml", + "tracing", + "types", + "validator_dir", + "zeroize", +] + [[package]] name = "addr2line" version = "0.24.2" @@ -98,10 +117,10 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89ec9b8795b2083585293bd3d19033e9d67e725917c95c44cb154e3400529ccd" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.12.5", "alloy-contract", "alloy-core", - "alloy-eips", + "alloy-eips 0.12.5", "alloy-genesis", "alloy-network", "alloy-provider", @@ -127,13 +146,25 @@ dependencies = [ "strum 0.27.1", ] +[[package]] +name = "alloy-consensus" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" +dependencies = [ + "alloy-eips 0.3.6", + "alloy-primitives", + "alloy-rlp", + "c-kzg", +] + [[package]] name = "alloy-consensus" version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a84efb7b8ddb9223346bfad9d8094e1a100c254037a3b5913243bfa8e04be266" dependencies = [ - "alloy-eips", + "alloy-eips 0.12.5", "alloy-primitives", "alloy-rlp", "alloy-serde", @@ -142,7 +173,7 @@ dependencies = [ "c-kzg", "derive_more 2.0.1", "either", - "k256", + "k256 0.13.4", "once_cell", "rand 0.8.5", "serde", @@ -156,8 +187,8 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fafded0c1ff8f0275c4a484239058e1c01c0c2589f8a16e03669ef7094a06f9b" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.12.5", + "alloy-eips 0.12.5", "alloy-primitives", "alloy-rlp", "alloy-serde", @@ -170,7 +201,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a0fa0584d13dd0c4e79288d411222c4d7c3411c71b7fa637cefda9dcf9bb1f9" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.12.5", "alloy-dyn-abi", "alloy-json-abi", "alloy-network", @@ -213,7 +244,7 @@ dependencies = [ "itoa", "serde", "serde_json", - "winnow", + "winnow 0.7.4", ] [[package]] @@ -240,6 +271,16 @@ dependencies = [ "serde", ] +[[package]] +name = "alloy-eip7702" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" +dependencies = [ + "alloy-primitives", + "alloy-rlp", +] + [[package]] name = "alloy-eip7702" version = "0.5.1" @@ -252,6 +293,23 @@ dependencies = [ "thiserror 2.0.12", ] +[[package]] +name = "alloy-eips" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702 0.1.1", + "alloy-primitives", + "alloy-rlp", + "c-kzg", + "derive_more 1.0.0", + "once_cell", + "serde", + "sha2 0.10.8", +] + [[package]] name = "alloy-eips" version = "0.12.5" @@ -260,7 +318,7 @@ checksum = "5f4bffedaddc627520eabdcbfe27a2d2c2f716e15295e2ed1010df3feae67040" dependencies = [ "alloy-eip2124", "alloy-eip2930", - "alloy-eip7702", + "alloy-eip7702 0.5.1", "alloy-primitives", "alloy-rlp", "alloy-serde", @@ -279,7 +337,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96b11774716152a5204aff0e86a8c841df499ea81464e2b1f82b3f72d6a2ef32" dependencies = [ - "alloy-eips", + "alloy-eips 0.12.5", "alloy-primitives", "alloy-serde", "alloy-trie", @@ -318,9 +376,9 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2b14524c3605ed5ee173b966333089474415416a8cfd80ceb003c18fd6d1736" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.12.5", "alloy-consensus-any", - "alloy-eips", + "alloy-eips 0.12.5", "alloy-json-rpc", "alloy-network-primitives", "alloy-primitives", @@ -344,8 +402,8 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c06932646544ea341f0fda48d2c0fe4fda75bc132379cb84019cdfb6ddcb0fb" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.12.5", + "alloy-eips 0.12.5", "alloy-primitives", "alloy-serde", "serde", @@ -369,16 +427,16 @@ dependencies = [ "hashbrown 0.15.2", "indexmap 2.8.0", "itoa", - "k256", + "k256 0.13.4", "keccak-asm", "paste", "proptest", "proptest-derive", "rand 0.8.5", "ruint", - "rustc-hash", + "rustc-hash 2.1.1", "serde", - "sha3", + "sha3 0.10.8", "tiny-keccak", ] @@ -389,8 +447,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff1ec2eabd9b3acc46e59247c35f75545960372431c68f7fdbfcfb970a486c30" dependencies = [ "alloy-chains", - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.12.5", + "alloy-eips 0.12.5", "alloy-json-rpc", "alloy-network", "alloy-network-primitives", @@ -516,9 +574,9 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e18d94b1036302720b987564560e4a5b85035a17553c53a50afa2bd8762b487" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.12.5", "alloy-consensus-any", - "alloy-eips", + "alloy-eips 0.12.5", "alloy-network-primitives", "alloy-primitives", "alloy-rlp", @@ -551,8 +609,8 @@ dependencies = [ "async-trait", "auto_impl", "either", - "elliptic-curve", - "k256", + "elliptic-curve 0.13.8", + "k256 0.13.4", "thiserror 2.0.12", ] @@ -562,12 +620,12 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa857621a5c95c13e640e18bb9c4720f4338a666d6276f55446477a6bc3912ff" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.12.5", "alloy-network", "alloy-primitives", "alloy-signer", "async-trait", - "k256", + "k256 0.13.4", "rand 0.8.5", "thiserror 2.0.12", ] @@ -630,7 +688,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "488a747fdcefeec5c1ed5aa9e08becd775106777fdeae2a35730729fc8a95910" dependencies = [ "serde", - "winnow", + "winnow 0.7.4", ] [[package]] @@ -721,7 +779,7 @@ dependencies = [ "async-channel 1.9.0", "bls", "clap", - "client", + "client 0.1.0", "dirs 6.0.0", "eth2_network_config", "futures", @@ -854,6 +912,12 @@ dependencies = [ "derive_arbitrary", ] +[[package]] +name = "arc-swap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" + [[package]] name = "archery" version = "0.4.0" @@ -1396,6 +1460,12 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + [[package]] name = "base16ct" version = "0.2.0" @@ -1426,10 +1496,99 @@ version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb97d56060ee67d285efb8001fec9d2a4c710c32efd2e14b5cbb5ba71930fc2d" +[[package]] +name = "beacon_chain" +version = "0.2.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "alloy-primitives", + "bitvec 1.0.1", + "bls", + "derivative", + "eth1", + "eth2", + "eth2_network_config", + "ethereum_hashing", + "ethereum_serde_utils", + "ethereum_ssz", + "ethereum_ssz_derive", + "execution_layer", + "fork_choice", + "futures", + "genesis", + "hex", + "int_to_bytes", + "itertools 0.10.5", + "kzg", + "lighthouse_version", + "logging", + "lru 0.12.5", + "merkle_proof", + "metrics", + "oneshot_broadcast", + "operation_pool", + "parking_lot", + "proto_array", + "rand 0.8.5", + "rayon", + "safe_arith", + "sensitive_url", + "serde", + "serde_json", + "slasher", + "slot_clock", + "smallvec", + "ssz_types", + "state_processing", + "store", + "strum 0.24.1", + "superstruct", + "task_executor", + "tempfile", + "tokio", + "tokio-stream", + "tracing", + "tree_hash", + "tree_hash_derive", + "types", +] + +[[package]] +name = "beacon_node" +version = "7.0.0-beta.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "account_utils", + "beacon_chain", + "clap", + "clap_utils", + "client 0.2.0", + "directory", + "dirs 3.0.2", + "environment", + "eth2_config", + "execution_layer", + "genesis", + "hex", + "http_api 0.1.0 (git+https://github.com/zacholme7/lighthouse?branch=anchor)", + "hyper 1.6.0", + "lighthouse_network", + "monitoring_api", + "sensitive_url", + "serde_json", + "slasher", + "store", + "strum 0.24.1", + "task_executor", + "tracing", + "types", + "unused_port", +] + [[package]] name = "beacon_node_fallback" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "clap", "eth2", @@ -1445,12 +1604,67 @@ dependencies = [ "validator_metrics", ] +[[package]] +name = "beacon_processor" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "fnv", + "futures", + "itertools 0.10.5", + "lighthouse_network", + "logging", + "metrics", + "num_cpus", + "parking_lot", + "serde", + "slot_clock", + "strum 0.24.1", + "task_executor", + "tokio", + "tokio-util", + "tracing", + "types", +] + [[package]] name = "bimap" version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.69.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" +dependencies = [ + "bitflags 2.9.0", + "cexpr", + "clang-sys", + "itertools 0.10.5", + "lazy_static", + "lazycell", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash 1.1.0", + "shlex", + "syn 2.0.100", + "which", +] + [[package]] name = "bit-set" version = "0.8.0" @@ -1478,16 +1692,28 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +[[package]] +name = "bitvec" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" +dependencies = [ + "funty 1.1.0", + "radium 0.6.2", + "tap", + "wyz 0.2.0", +] + [[package]] name = "bitvec" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ - "funty", - "radium", + "funty 2.0.0", + "radium 0.7.0", "tap", - "wyz", + "wyz 0.5.1", ] [[package]] @@ -1505,6 +1731,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ + "block-padding", "generic-array 0.14.7", ] @@ -1517,6 +1744,12 @@ dependencies = [ "generic-array 0.14.7", ] +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + [[package]] name = "blocking" version = "1.6.1" @@ -1533,7 +1766,7 @@ dependencies = [ [[package]] name = "bls" version = "0.2.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "alloy-primitives", "arbitrary", @@ -1582,8 +1815,8 @@ checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" dependencies = [ "blst", "byte-slice-cast", - "ff", - "group", + "ff 0.13.1", + "group 0.13.0", "pairing", "rand_core 0.6.4", "serde", @@ -1597,9 +1830,9 @@ source = "git+https://github.com/dknopik/blstrs?branch=pls#e281dca0c6c5c70d5c3b7 dependencies = [ "arrayref", "blst", - "elliptic-curve", - "ff", - "group", + "elliptic-curve 0.13.8", + "ff 0.13.1", + "group 0.13.0", "pairing", "rand_core 0.6.4", "serde", @@ -1607,6 +1840,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" + [[package]] name = "bs58" version = "0.5.1" @@ -1616,6 +1855,20 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "builder_client" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "eth2", + "ethereum_ssz", + "lighthouse_version", + "reqwest 0.11.27", + "sensitive_url", + "serde", + "serde_json", +] + [[package]] name = "bumpalo" version = "3.17.0" @@ -1689,6 +1942,15 @@ dependencies = [ "shlex", ] +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + [[package]] name = "cfg-if" version = "1.0.0" @@ -1760,6 +2022,17 @@ dependencies = [ "zeroize", ] +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + [[package]] name = "clap" version = "4.5.32" @@ -1804,7 +2077,7 @@ checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "clap_utils" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "alloy-primitives", "clap", @@ -1832,15 +2105,15 @@ dependencies = [ "eth2_config", "ethereum_hashing", "fdlimit", - "http_api", - "http_metrics", + "http_api 0.1.0", + "http_metrics 0.1.0", "hyper 1.6.0", "keygen", "message_receiver", "message_sender", "message_validator", "multiaddr", - "network", + "network 0.1.0", "openssl", "parking_lot", "processor", @@ -1866,6 +2139,56 @@ dependencies = [ "zeroize", ] +[[package]] +name = "client" +version = "0.2.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "beacon_chain", + "beacon_processor", + "directory", + "dirs 3.0.2", + "environment", + "eth1", + "eth2", + "eth2_config", + "ethereum_ssz", + "execution_layer", + "futures", + "genesis", + "http_api 0.1.0 (git+https://github.com/zacholme7/lighthouse?branch=anchor)", + "http_metrics 0.1.0 (git+https://github.com/zacholme7/lighthouse?branch=anchor)", + "kzg", + "lighthouse_network", + "logging", + "metrics", + "monitoring_api", + "network 0.2.0", + "sensitive_url", + "serde", + "serde_json", + "slasher", + "slasher_service", + "slot_clock", + "store", + "task_executor", + "time", + "timer", + "tokio", + "tracing", + "tracing-subscriber", + "types", +] + +[[package]] +name = "cmake" +version = "0.1.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" +dependencies = [ + "cc", +] + [[package]] name = "colorchoice" version = "1.0.3" @@ -1875,7 +2198,7 @@ checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "compare_fields" version = "0.2.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "itertools 0.10.5", ] @@ -1883,7 +2206,7 @@ dependencies = [ [[package]] name = "compare_fields_derive" version = "0.2.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "quote", "syn 1.0.109", @@ -1994,8 +2317,8 @@ checksum = "76f9cdad245e39a3659bc4c8958e93de34bd31ba3131ead14ccfb4b2cd60e52d" dependencies = [ "blst", "blstrs", - "ff", - "group", + "ff 0.13.1", + "group 0.13.0", "pairing", "subtle", ] @@ -2102,6 +2425,18 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +[[package]] +name = "crypto-bigint" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +dependencies = [ + "generic-array 0.14.7", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + [[package]] name = "crypto-bigint" version = "0.5.5" @@ -2164,6 +2499,16 @@ dependencies = [ "cipher 0.4.4", ] +[[package]] +name = "ctrlc" +version = "3.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" +dependencies = [ + "nix 0.29.0", + "windows-sys 0.59.0", +] + [[package]] name = "curve25519-dalek" version = "4.1.3" @@ -2338,8 +2683,14 @@ dependencies = [ ] [[package]] -name = "delay_map" -version = "0.4.0" +name = "db-key" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b72465f46d518f6015d9cf07f7f3013a95dd6b9c2747c3d65ae0cce43929d14f" + +[[package]] +name = "delay_map" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df941644b671f05f59433e481ba0d31ac10e3667de725236a4c0d587c496fba1" dependencies = [ @@ -2348,6 +2699,31 @@ dependencies = [ "tokio-util", ] +[[package]] +name = "deposit_contract" +version = "0.2.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "ethabi 16.0.0", + "ethereum_ssz", + "hex", + "reqwest 0.11.27", + "serde_json", + "sha2 0.9.9", + "tree_hash", + "types", +] + +[[package]] +name = "der" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +dependencies = [ + "const-oid", + "zeroize", +] + [[package]] name = "der" version = "0.7.9" @@ -2482,7 +2858,7 @@ dependencies = [ [[package]] name = "directory" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "clap", "clap_utils", @@ -2574,6 +2950,24 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "doppelganger_service" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "beacon_node_fallback", + "environment", + "eth2", + "logging", + "parking_lot", + "slot_clock", + "task_executor", + "tokio", + "tracing", + "types", + "validator_store", +] + [[package]] name = "dtoa" version = "1.0.10" @@ -2586,19 +2980,31 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" +[[package]] +name = "ecdsa" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +dependencies = [ + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", +] + [[package]] name = "ecdsa" version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ - "der", + "der 0.7.9", "digest 0.10.7", - "elliptic-curve", - "rfc6979", + "elliptic-curve 0.13.8", + "rfc6979 0.4.0", "serdect", - "signature", - "spki", + "signature 2.2.0", + "spki 0.7.3", ] [[package]] @@ -2607,8 +3013,8 @@ version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ - "pkcs8", - "signature", + "pkcs8 0.10.2", + "signature 2.2.0", ] [[package]] @@ -2647,23 +3053,42 @@ dependencies = [ "serde", ] +[[package]] +name = "elliptic-curve" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +dependencies = [ + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", + "digest 0.10.7", + "ff 0.12.1", + "generic-array 0.14.7", + "group 0.12.1", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle", + "zeroize", +] + [[package]] name = "elliptic-curve" version = "0.13.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" dependencies = [ - "base16ct", - "crypto-bigint", + "base16ct 0.2.0", + "crypto-bigint 0.5.5", "digest 0.10.7", - "ff", + "ff 0.13.1", "generic-array 0.14.7", - "group", + "group 0.13.0", "hkdf", "pem-rfc7468", - "pkcs8", + "pkcs8 0.10.2", "rand_core 0.6.4", - "sec1", + "sec1 0.7.3", "serdect", "subtle", "tap", @@ -2676,7 +3101,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e48843edfbd0a370b3dd14cdbb4e446e9a8855311e6b2b57bf9a1fd1367bc317" dependencies = [ - "elliptic-curve", + "elliptic-curve 0.13.8", "heapless", "hex", "multiexp", @@ -2704,11 +3129,11 @@ dependencies = [ "bytes", "ed25519-dalek", "hex", - "k256", + "k256 0.13.4", "log", "rand 0.8.5", "serde", - "sha3", + "sha3 0.10.8", "zeroize", ] @@ -2744,6 +3169,52 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "env_filter" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3716d7a920fb4fac5d84e9d4bce8ceb321e9414b4409da61b07b75c1e3d0697" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "jiff", + "log", +] + +[[package]] +name = "environment" +version = "0.1.2" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "async-channel 1.9.0", + "clap", + "ctrlc", + "eth2_config", + "eth2_network_config", + "futures", + "logging", + "logroller", + "serde", + "task_executor", + "tokio", + "tracing", + "tracing-appender", + "tracing-log", + "tracing-subscriber", + "types", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -2783,10 +3254,35 @@ dependencies = [ "types", ] +[[package]] +name = "eth1" +version = "0.2.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "eth2", + "ethereum_ssz", + "ethereum_ssz_derive", + "execution_layer", + "futures", + "logging", + "merkle_proof", + "metrics", + "parking_lot", + "sensitive_url", + "serde", + "state_processing", + "superstruct", + "task_executor", + "tokio", + "tracing", + "tree_hash", + "types", +] + [[package]] name = "eth2" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "derivative", "either", @@ -2816,7 +3312,7 @@ dependencies = [ [[package]] name = "eth2_config" version = "0.2.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "paste", "types", @@ -2825,7 +3321,7 @@ dependencies = [ [[package]] name = "eth2_interop_keypairs" version = "0.2.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "bls", "ethereum_hashing", @@ -2838,7 +3334,7 @@ dependencies = [ [[package]] name = "eth2_key_derivation" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "bls", "num-bigint-dig", @@ -2850,7 +3346,7 @@ dependencies = [ [[package]] name = "eth2_keystore" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "aes 0.7.5", "bls", @@ -2872,7 +3368,7 @@ dependencies = [ [[package]] name = "eth2_network_config" version = "0.2.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "bytes", "discv5", @@ -2889,6 +3385,111 @@ dependencies = [ "zip", ] +[[package]] +name = "eth2_wallet" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "eth2_key_derivation", + "eth2_keystore", + "rand 0.8.5", + "serde", + "serde_json", + "serde_repr", + "tiny-bip39", + "uuid 0.8.2", +] + +[[package]] +name = "ethabi" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c98847055d934070b90e806e12d3936b787d0a115068981c1d8dfd5dfef5a5" +dependencies = [ + "ethereum-types 0.12.1", + "hex", + "serde", + "serde_json", + "sha3 0.9.1", + "thiserror 1.0.69", + "uint 0.9.5", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types 0.14.1", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3 0.10.8", + "thiserror 1.0.69", + "uint 0.9.5", +] + +[[package]] +name = "ethbloom" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfb684ac8fa8f6c5759f788862bb22ec6fe3cb392f6bfd08e3c64b603661e3f8" +dependencies = [ + "crunchy", + "fixed-hash 0.7.0", + "impl-rlp", + "impl-serde 0.3.2", + "tiny-keccak", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05136f7057fe789f06e6d41d07b34e6f70d8c86e5693b60f97aaa6553553bdaf" +dependencies = [ + "ethbloom 0.11.1", + "fixed-hash 0.7.0", + "impl-rlp", + "impl-serde 0.3.2", + "primitive-types 0.10.1", + "uint 0.9.5", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom 0.13.0", + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "primitive-types 0.12.2", + "scale-info", + "uint 0.9.5", +] + [[package]] name = "ethereum_hashing" version = "0.7.0" @@ -2941,6 +3542,32 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "ethers-core" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade3e9c97727343984e1ceada4fdab11142d2ee3472d2c67027d56b1251d4f15" +dependencies = [ + "arrayvec", + "bytes", + "chrono", + "elliptic-curve 0.12.3", + "ethabi 18.0.0", + "generic-array 0.14.7", + "hex", + "k256 0.11.6", + "open-fastrlp", + "rand 0.8.5", + "rlp", + "rlp-derive", + "serde", + "serde_json", + "strum 0.24.1", + "thiserror 1.0.69", + "tiny-keccak", + "unicode-xid", +] + [[package]] name = "event-listener" version = "2.5.3" @@ -2979,6 +3606,59 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "execution_layer" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "alloy-consensus 0.3.6", + "alloy-primitives", + "alloy-rlp", + "arc-swap", + "builder_client", + "bytes", + "eth2", + "ethereum_serde_utils", + "ethereum_ssz", + "ethers-core", + "fixed_bytes", + "fork_choice", + "hash-db", + "hash256-std-hasher", + "hex", + "jsonwebtoken", + "keccak-hash", + "kzg", + "lighthouse_version", + "logging", + "lru 0.12.5", + "metrics", + "parking_lot", + "pretty_reqwest_error", + "rand 0.8.5", + "reqwest 0.11.27", + "sensitive_url", + "serde", + "serde_json", + "sha2 0.9.9", + "slot_clock", + "ssz_types", + "state_processing", + "strum 0.24.1", + "superstruct", + "task_executor", + "tempfile", + "tokio", + "tokio-stream", + "tracing", + "tree_hash", + "tree_hash_derive", + "triehash", + "types", + "warp", + "zeroize", +] + [[package]] name = "fallible-iterator" version = "0.2.0" @@ -3029,17 +3709,33 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "ff" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ - "bitvec", + "bitvec 1.0.1", "rand_core 0.6.4", "subtle", ] +[[package]] +name = "ffi-opaque" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec54ac60a7f2ee9a97cad9946f9bf629a3bc6a7ae59e68983dc9318f5a54b81a" + [[package]] name = "fiat-crypto" version = "0.2.9" @@ -3059,12 +3755,24 @@ dependencies = [ [[package]] name = "filesystem" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "winapi", "windows-acl", ] +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + [[package]] name = "fixed-hash" version = "0.8.0" @@ -3080,7 +3788,7 @@ dependencies = [ [[package]] name = "fixed_bytes" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "alloy-primitives", "safe_arith", @@ -3093,6 +3801,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" dependencies = [ "crc32fast", + "libz-sys", "miniz_oxide", ] @@ -3123,6 +3832,21 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +[[package]] +name = "fork_choice" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "ethereum_ssz", + "ethereum_ssz_derive", + "logging", + "metrics", + "proto_array", + "state_processing", + "tracing", + "types", +] + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -3132,6 +3856,22 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "funty" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" + [[package]] name = "funty" version = "2.0.0" @@ -3308,6 +4048,26 @@ dependencies = [ "typenum", ] +[[package]] +name = "genesis" +version = "0.2.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "environment", + "eth1", + "ethereum_hashing", + "ethereum_ssz", + "futures", + "int_to_bytes", + "merkle_proof", + "rayon", + "state_processing", + "tokio", + "tracing", + "tree_hash", + "types", +] + [[package]] name = "getrandom" version = "0.2.15" @@ -3390,7 +4150,7 @@ dependencies = [ [[package]] name = "graffiti_file" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "bls", "serde", @@ -3398,13 +4158,24 @@ dependencies = [ "types", ] +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "group" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ - "ff", + "ff 0.13.1", "rand 0.8.5", "rand_core 0.6.4", "rand_xorshift", @@ -3449,6 +4220,21 @@ dependencies = [ "tracing", ] +[[package]] +name = "hash-db" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" + +[[package]] +name = "hash256-std-hasher" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92c171d55b98633f4ed3860808f004099b36c1cc29c42cfc53aa8591b21efcf2" +dependencies = [ + "crunchy", +] + [[package]] name = "hash32" version = "0.3.1" @@ -3504,10 +4290,34 @@ dependencies = [ "hashbrown 0.14.5", ] +[[package]] +name = "headers" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +dependencies = [ + "base64 0.21.7", + "bytes", + "headers-core", + "http 0.2.12", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http 0.2.12", +] + [[package]] name = "health_metrics" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "eth2", "metrics", @@ -3660,6 +4470,15 @@ dependencies = [ "hmac 0.8.1", ] +[[package]] +name = "home" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +dependencies = [ + "windows-sys 0.59.0", +] + [[package]] name = "hostname" version = "0.4.0" @@ -3742,6 +4561,53 @@ dependencies = [ "version", ] +[[package]] +name = "http_api" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "beacon_chain", + "beacon_processor", + "bs58 0.4.0", + "bytes", + "directory", + "either", + "eth1", + "eth2", + "ethereum_serde_utils", + "ethereum_ssz", + "execution_layer", + "futures", + "health_metrics", + "hex", + "lighthouse_network", + "lighthouse_version", + "logging", + "lru 0.12.5", + "metrics", + "network 0.2.0", + "operation_pool", + "parking_lot", + "rand 0.8.5", + "safe_arith", + "sensitive_url", + "serde", + "serde_json", + "slot_clock", + "state_processing", + "store", + "sysinfo", + "system_health", + "task_executor", + "tokio", + "tokio-stream", + "tracing", + "tree_hash", + "types", + "warp", + "warp_utils", +] + [[package]] name = "http_metrics" version = "0.1.0" @@ -3761,6 +4627,26 @@ dependencies = [ "validator_services", ] +[[package]] +name = "http_metrics" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "beacon_chain", + "health_metrics", + "lighthouse_network", + "lighthouse_version", + "logging", + "malloc_utils", + "metrics", + "serde", + "slot_clock", + "store", + "tracing", + "warp", + "warp_utils", +] + [[package]] name = "httparse" version = "1.10.1" @@ -4120,13 +5006,70 @@ dependencies = [ "xmltree", ] +[[package]] +name = "igd-next" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2830127baaaa55dae9aa5ee03158d5aa3687a9c2c11ce66870452580cc695df4" +dependencies = [ + "async-trait", + "attohttpc", + "bytes", + "futures", + "http 1.3.1", + "http-body-util", + "hyper 1.6.0", + "hyper-util", + "log", + "rand 0.8.5", + "tokio", + "url", + "xmltree", +] + +[[package]] +name = "impl-codec" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" +dependencies = [ + "parity-scale-codec 2.3.1", +] + [[package]] name = "impl-codec" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" dependencies = [ - "parity-scale-codec", + "parity-scale-codec 3.7.4", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", ] [[package]] @@ -4163,6 +5106,33 @@ dependencies = [ "serde", ] +[[package]] +name = "initialized_validators" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "account_utils", + "bincode", + "bls", + "eth2_keystore", + "filesystem", + "lockfile", + "metrics", + "parking_lot", + "rand 0.8.5", + "reqwest 0.11.27", + "serde", + "serde_json", + "signing_method", + "tokio", + "tracing", + "types", + "url", + "validator_dir", + "validator_metrics", + "zeroize", +] + [[package]] name = "inout" version = "0.1.4" @@ -4175,11 +5145,47 @@ dependencies = [ [[package]] name = "int_to_bytes" version = "0.2.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "bytes", ] +[[package]] +name = "integer-sqrt" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" +dependencies = [ + "num-traits", +] + +[[package]] +name = "integration" +version = "0.1.0" +dependencies = [ + "clap", + "client 0.1.0", + "discv5", + "env_logger", + "environment", + "ethereum_serde_utils", + "execution_layer", + "futures", + "kzg", + "lighthouse_network", + "logging", + "network 0.1.0", + "node_test_rig", + "sensitive_url", + "serde_json", + "ssv_network_config", + "task_executor", + "tokio", + "tracing", + "tracing-subscriber", + "types", +] + [[package]] name = "io-lifetimes" version = "1.0.11" @@ -4237,16 +5243,40 @@ dependencies = [ name = "itertools" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "jiff" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d699bc6dfc879fb1bf9bdff0d4c56f0884fc6f0d0eb0fba397a6d00cd9a6b85e" dependencies = [ - "either", + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", ] [[package]] -name = "itoa" -version = "1.0.15" +name = "jiff-static" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "8d16e75759ee0aa64c57a56acbf43916987b20c77373cb7e808979e02b93c9f9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] [[package]] name = "jobserver" @@ -4267,6 +5297,34 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jsonwebtoken" +version = "9.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" +dependencies = [ + "base64 0.22.1", + "js-sys", + "pem", + "ring", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "k256" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +dependencies = [ + "cfg-if", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2 0.10.8", + "sha3 0.10.8", +] + [[package]] name = "k256" version = "0.13.4" @@ -4274,12 +5332,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", - "ecdsa", - "elliptic-curve", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", "once_cell", "serdect", "sha2 0.10.8", - "signature", + "signature 2.2.0", ] [[package]] @@ -4301,6 +5359,16 @@ dependencies = [ "sha3-asm", ] +[[package]] +name = "keccak-hash" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b286e6b663fb926e1eeb68528e69cb70ed46c6d65871a21b2215ae8154c6d3c" +dependencies = [ + "primitive-types 0.12.2", + "tiny-keccak", +] + [[package]] name = "keygen" version = "0.1.0" @@ -4358,7 +5426,7 @@ dependencies = [ [[package]] name = "kzg" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "arbitrary", "c-kzg", @@ -4383,12 +5451,51 @@ dependencies = [ "spin", ] +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "leveldb" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32651baaaa5596b3a6e0bee625e73fd0334c167db0ea5ac68750ef9a629a2d6a" +dependencies = [ + "db-key", + "leveldb-sys", + "libc", +] + +[[package]] +name = "leveldb-sys" +version = "2.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd94a4d0242a437e5e41a27c782b69a624469ca1c4d1e5cb3c337f74a8031d4" +dependencies = [ + "cmake", + "ffi-opaque", + "libc", + "num_cpus", +] + [[package]] name = "libc" version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +[[package]] +name = "libloading" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +dependencies = [ + "cfg-if", + "windows-targets 0.52.6", +] + [[package]] name = "libm" version = "0.2.11" @@ -4495,8 +5602,38 @@ dependencies = [ [[package]] name = "libp2p-gossipsub" -version = "0.48.1" -source = "git+https://github.com/sigp/rust-libp2p.git?branch=sigp-gossipsub#3e24b1bbec5fae182595aee0958f823be87afaad" +version = "0.49.0" +source = "git+https://github.com/sigp/rust-libp2p.git?branch=sigp-gossipsub#7a36e4cde83041f1bd5f2078c4d3934ccb16777e" +dependencies = [ + "async-channel 2.3.1", + "asynchronous-codec", + "base64 0.22.1", + "byteorder", + "bytes", + "either", + "fnv", + "futures", + "futures-timer", + "getrandom 0.2.15", + "hashlink 0.9.1", + "hex_fmt", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "prometheus-client", + "quick-protobuf", + "quick-protobuf-codec", + "rand 0.8.5", + "regex", + "sha2 0.10.8", + "tracing", + "web-time", +] + +[[package]] +name = "libp2p-gossipsub" +version = "0.49.0" +source = "git+https://github.com/sigp/rust-libp2p.git?rev=7a36e4c#7a36e4cde83041f1bd5f2078c4d3934ccb16777e" dependencies = [ "async-channel 2.3.1", "asynchronous-codec", @@ -4551,7 +5688,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "257b5621d159b32282eac446bed6670c39c7dc68a200a992d8f056afa0066f6d" dependencies = [ "asn1_der", - "bs58", + "bs58 0.5.1", "ed25519-dalek", "hkdf", "libsecp256k1", @@ -4559,7 +5696,7 @@ dependencies = [ "p256", "quick-protobuf", "rand 0.8.5", - "sec1", + "sec1 0.7.3", "sha2 0.10.8", "thiserror 1.0.69", "tracing", @@ -4824,7 +5961,7 @@ checksum = "d457b9ecceb66e7199f049926fad447f1f17f040e8d29d690c086b4cab8ed14a" dependencies = [ "futures", "futures-timer", - "igd-next", + "igd-next 0.15.1", "libp2p-core", "libp2p-swarm", "tokio", @@ -4915,10 +6052,21 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "libz-sys" +version = "1.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + [[package]] name = "lighthouse_network" version = "0.2.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -4936,7 +6084,7 @@ dependencies = [ "hex", "itertools 0.10.5", "libp2p", - "libp2p-gossipsub", + "libp2p-gossipsub 0.49.0 (git+https://github.com/sigp/rust-libp2p.git?rev=7a36e4c)", "libp2p-mplex", "lighthouse_version", "local-ip-address", @@ -4967,10 +6115,36 @@ dependencies = [ "unused_port", ] +[[package]] +name = "lighthouse_validator_store" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "account_utils", + "beacon_node_fallback", + "doppelganger_service", + "either", + "environment", + "eth2", + "initialized_validators", + "logging", + "parking_lot", + "serde", + "signing_method", + "slashing_protection", + "slot_clock", + "task_executor", + "tokio", + "tracing", + "types", + "validator_metrics", + "validator_store", +] + [[package]] name = "lighthouse_version" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "git-version", "target_info", @@ -5022,6 +6196,14 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "lockfile" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "fs2", +] + [[package]] name = "log" version = "0.4.26" @@ -5034,7 +6216,7 @@ dependencies = [ [[package]] name = "logging" version = "0.2.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "chrono", "logroller", @@ -5097,7 +6279,7 @@ dependencies = [ [[package]] name = "lru_cache" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "fnv", ] @@ -5122,6 +6304,16 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "malloc_utils" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "libc", + "metrics", + "parking_lot", +] + [[package]] name = "maplit" version = "1.0.2" @@ -5167,7 +6359,7 @@ dependencies = [ [[package]] name = "merkle_proof" version = "0.2.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "alloy-primitives", "ethereum_hashing", @@ -5181,7 +6373,7 @@ version = "0.1.0" dependencies = [ "database", "libp2p", - "libp2p-gossipsub", + "libp2p-gossipsub 0.49.0 (git+https://github.com/sigp/rust-libp2p.git?branch=sigp-gossipsub)", "message_validator", "processor", "qbft_manager", @@ -5215,7 +6407,7 @@ dependencies = [ "database", "ethereum_ssz", "hex", - "libp2p-gossipsub", + "libp2p-gossipsub 0.49.0 (git+https://github.com/sigp/rust-libp2p.git?branch=sigp-gossipsub)", "once_cell", "processor", "sha2 0.10.8", @@ -5253,7 +6445,7 @@ dependencies = [ [[package]] name = "metrics" version = "0.2.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "prometheus", ] @@ -5287,6 +6479,16 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -5332,6 +6534,26 @@ dependencies = [ "uuid 1.15.1", ] +[[package]] +name = "monitoring_api" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "eth2", + "health_metrics", + "lighthouse_version", + "metrics", + "regex", + "reqwest 0.11.27", + "sensitive_url", + "serde", + "serde_json", + "store", + "task_executor", + "tokio", + "tracing", +] + [[package]] name = "more-asserts" version = "0.3.1" @@ -5374,8 +6596,8 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25a383da1ae933078ddb1e4141f1dd617b512b4183779d6977e6451b0e644806" dependencies = [ - "ff", - "group", + "ff 0.13.1", + "group 0.13.0", "rustversion", "std-shims", "zeroize", @@ -5524,7 +6746,7 @@ dependencies = [ "futures", "hex", "libp2p", - "libp2p-gossipsub", + "libp2p-gossipsub 0.49.0 (git+https://github.com/sigp/rust-libp2p.git?branch=sigp-gossipsub)", "libp2p-peer-store", "libp2p-swarm-test", "lighthouse_network", @@ -5544,6 +6766,46 @@ dependencies = [ "version", ] +[[package]] +name = "network" +version = "0.2.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "anyhow", + "async-channel 1.9.0", + "beacon_chain", + "beacon_processor", + "delay_map", + "derivative", + "ethereum_ssz", + "execution_layer", + "fnv", + "futures", + "hex", + "igd-next 0.16.0", + "itertools 0.10.5", + "lighthouse_network", + "logging", + "lru_cache", + "metrics", + "operation_pool", + "parking_lot", + "rand 0.8.5", + "slot_clock", + "smallvec", + "ssz_types", + "store", + "strum 0.24.1", + "task_executor", + "tokio", + "tokio-stream", + "tracing", + "tracing-subscriber", + "types", +] + [[package]] name = "nix" version = "0.24.3" @@ -5566,6 +6828,36 @@ dependencies = [ "libc", ] +[[package]] +name = "nix" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +dependencies = [ + "bitflags 2.9.0", + "cfg-if", + "cfg_aliases", + "libc", +] + +[[package]] +name = "node_test_rig" +version = "0.2.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "beacon_node", + "beacon_node_fallback", + "environment", + "eth2", + "execution_layer", + "sensitive_url", + "tempfile", + "tokio", + "types", + "validator_client", + "validator_dir", +] + [[package]] name = "nohash-hasher" version = "0.2.0" @@ -5582,6 +6874,15 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "ntapi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +dependencies = [ + "winapi", +] + [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -5762,12 +7063,45 @@ version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cde51589ab56b20a6f686b2c68f7a0bd6add753d697abf720d63f8db3ab7b1ad" +[[package]] +name = "oneshot_broadcast" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "parking_lot", +] + [[package]] name = "opaque-debug" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types 0.14.1", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "openssl" version = "0.10.71" @@ -5822,6 +7156,26 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "operation_pool" +version = "0.2.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "bitvec 1.0.1", + "derivative", + "ethereum_ssz", + "ethereum_ssz_derive", + "itertools 0.10.5", + "metrics", + "parking_lot", + "rand 0.8.5", + "rayon", + "serde", + "state_processing", + "store", + "types", +] + [[package]] name = "option-ext" version = "0.2.0" @@ -5840,8 +7194,8 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" dependencies = [ - "ecdsa", - "elliptic-curve", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", "primeorder", "sha2 0.10.8", ] @@ -5852,7 +7206,21 @@ version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" dependencies = [ - "group", + "group 0.13.0", +] + +[[package]] +name = "parity-scale-codec" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" +dependencies = [ + "arrayvec", + "bitvec 0.20.4", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive 2.3.1", + "serde", ] [[package]] @@ -5862,22 +7230,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9fde3d0718baf5bc92f577d652001da0f8d54cd03a7974e118d04fc888dc23d" dependencies = [ "arrayvec", - "bitvec", + "bitvec 1.0.1", "byte-slice-cast", "const_format", "impl-trait-for-tuples", - "parity-scale-codec-derive", + "parity-scale-codec-derive 3.7.4", "rustversion", "serde", ] +[[package]] +name = "parity-scale-codec-derive" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "parity-scale-codec-derive" version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581c837bb6b9541ce7faa9377c20616e4fb7650f6b0f68bc93c827ee504fb7b3" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.100", @@ -6060,14 +7440,24 @@ dependencies = [ "futures-io", ] +[[package]] +name = "pkcs8" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der 0.6.1", + "spki 0.6.0", +] + [[package]] name = "pkcs8" version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "der", - "spki", + "der 0.7.9", + "spki 0.7.3", ] [[package]] @@ -6126,6 +7516,15 @@ version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -6144,19 +7543,42 @@ dependencies = [ [[package]] name = "pretty_reqwest_error" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "reqwest 0.11.27", "sensitive_url", ] +[[package]] +name = "prettyplease" +version = "0.2.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" +dependencies = [ + "proc-macro2", + "syn 2.0.100", +] + [[package]] name = "primeorder" version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" dependencies = [ - "elliptic-curve", + "elliptic-curve 0.13.8", +] + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash 0.7.0", + "impl-codec 0.5.1", + "impl-rlp", + "impl-serde 0.3.2", + "uint 0.9.5", ] [[package]] @@ -6165,18 +7587,31 @@ version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ - "fixed-hash", - "impl-codec", + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "scale-info", "uint 0.9.5", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + [[package]] name = "proc-macro-crate" version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ - "toml_edit", + "toml_edit 0.22.24", ] [[package]] @@ -6311,7 +7746,7 @@ dependencies = [ [[package]] name = "proto_array" version = "0.2.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "ethereum_ssz", "ethereum_ssz_derive", @@ -6416,7 +7851,7 @@ dependencies = [ "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash", + "rustc-hash 2.1.1", "rustls 0.23.23", "socket2", "thiserror 2.0.12", @@ -6434,7 +7869,7 @@ dependencies = [ "getrandom 0.2.15", "rand 0.8.5", "ring", - "rustc-hash", + "rustc-hash 2.1.1", "rustls 0.23.23", "rustls-pki-types", "slab", @@ -6488,6 +7923,12 @@ dependencies = [ "rusqlite", ] +[[package]] +name = "radium" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" + [[package]] name = "radium" version = "0.7.0" @@ -6787,6 +8228,17 @@ dependencies = [ "hostname", ] +[[package]] +name = "rfc6979" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +dependencies = [ + "crypto-bigint 0.4.9", + "hmac 0.12.1", + "zeroize", +] + [[package]] name = "rfc6979" version = "0.4.0" @@ -6821,6 +8273,27 @@ dependencies = [ "rustc-hex", ] +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rpassword" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "rpds" version = "0.11.0" @@ -6865,8 +8338,8 @@ dependencies = [ "num-bigint", "num-integer", "num-traits", - "parity-scale-codec", - "primitive-types", + "parity-scale-codec 3.7.4", + "primitive-types 0.12.2", "proptest", "rand 0.8.5", "rlp", @@ -6916,6 +8389,12 @@ version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + [[package]] name = "rustc-hash" version = "2.1.1" @@ -7007,6 +8486,20 @@ dependencies = [ "sct", ] +[[package]] +name = "rustls" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +dependencies = [ + "log", + "ring", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", +] + [[package]] name = "rustls" version = "0.23.23" @@ -7107,7 +8600,7 @@ checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "safe_arith" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" [[package]] name = "salsa20" @@ -7127,6 +8620,30 @@ dependencies = [ "cipher 0.4.4", ] +[[package]] +name = "scale-info" +version = "2.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" +dependencies = [ + "cfg-if", + "derive_more 1.0.0", + "parity-scale-codec 3.7.4", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" +dependencies = [ + "proc-macro-crate 3.3.0", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "schannel" version = "0.1.27" @@ -7191,16 +8708,30 @@ dependencies = [ "untrusted", ] +[[package]] +name = "sec1" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +dependencies = [ + "base16ct 0.1.1", + "der 0.6.1", + "generic-array 0.14.7", + "pkcs8 0.9.0", + "subtle", + "zeroize", +] + [[package]] name = "sec1" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ - "base16ct", - "der", + "base16ct 0.2.0", + "der 0.7.9", "generic-array 0.14.7", - "pkcs8", + "pkcs8 0.10.2", "serdect", "subtle", "zeroize", @@ -7262,7 +8793,7 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "sensitive_url" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "serde", "url", @@ -7277,6 +8808,16 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde_array_query" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89c6e82b1005b33d5b2bbc47096800e5ad6b67ef5636f9c13ad29a6935734a7" +dependencies = [ + "serde", + "serde_urlencoded", +] + [[package]] name = "serde_derive" version = "1.0.219" @@ -7382,7 +8923,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" dependencies = [ - "base16ct", + "base16ct 0.2.0", "serde", ] @@ -7421,6 +8962,18 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug", +] + [[package]] name = "sha3" version = "0.10.8" @@ -7465,6 +9018,16 @@ dependencies = [ "libc", ] +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + [[package]] name = "signature" version = "2.2.0" @@ -7491,6 +9054,35 @@ dependencies = [ "types", ] +[[package]] +name = "signing_method" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "eth2_keystore", + "ethereum_serde_utils", + "lockfile", + "parking_lot", + "reqwest 0.11.27", + "serde", + "task_executor", + "types", + "url", + "validator_metrics", +] + +[[package]] +name = "simple_asn1" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" +dependencies = [ + "num-bigint", + "num-traits", + "thiserror 2.0.12", + "time", +] + [[package]] name = "slab" version = "0.4.9" @@ -7500,10 +9092,54 @@ dependencies = [ "autocfg", ] +[[package]] +name = "slasher" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "bincode", + "byteorder", + "derivative", + "ethereum_ssz", + "ethereum_ssz_derive", + "filesystem", + "flate2", + "lru 0.12.5", + "metrics", + "parking_lot", + "rand 0.8.5", + "safe_arith", + "serde", + "ssz_types", + "strum 0.24.1", + "tracing", + "tree_hash", + "tree_hash_derive", + "types", +] + +[[package]] +name = "slasher_service" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "beacon_chain", + "directory", + "lighthouse_network", + "network 0.2.0", + "slasher", + "slot_clock", + "state_processing", + "task_executor", + "tokio", + "tracing", + "types", +] + [[package]] name = "slashing_protection" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "arbitrary", "ethereum_serde_utils", @@ -7521,7 +9157,7 @@ dependencies = [ [[package]] name = "slot_clock" version = "0.2.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "metrics", "parking_lot", @@ -7597,6 +9233,16 @@ dependencies = [ "lock_api", ] +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der 0.6.1", +] + [[package]] name = "spki" version = "0.7.3" @@ -7604,7 +9250,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ "base64ct", - "der", + "der 0.7.9", ] [[package]] @@ -7660,6 +9306,32 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "state_processing" +version = "0.2.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "arbitrary", + "bls", + "derivative", + "ethereum_hashing", + "ethereum_ssz", + "ethereum_ssz_derive", + "int_to_bytes", + "integer-sqrt", + "itertools 0.10.5", + "merkle_proof", + "metrics", + "rand 0.8.5", + "rayon", + "safe_arith", + "smallvec", + "ssz_types", + "test_random_derive", + "tree_hash", + "types", +] + [[package]] name = "static_assertions" version = "1.1.0" @@ -7676,6 +9348,35 @@ dependencies = [ "spin", ] +[[package]] +name = "store" +version = "0.2.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "bls", + "db-key", + "directory", + "ethereum_ssz", + "ethereum_ssz_derive", + "itertools 0.10.5", + "leveldb", + "logging", + "lru 0.12.5", + "metrics", + "parking_lot", + "safe_arith", + "serde", + "smallvec", + "state_processing", + "strum 0.24.1", + "superstruct", + "tracing", + "tracing-subscriber", + "types", + "xdelta3", + "zstd 0.13.3", +] + [[package]] name = "strsim" version = "0.10.0" @@ -7769,7 +9470,7 @@ dependencies = [ [[package]] name = "swap_or_not_shuffle" version = "0.2.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "alloy-primitives", "ethereum_hashing", @@ -7836,6 +9537,21 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "sysinfo" +version = "0.26.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c18a6156d1f27a9592ee18c1a846ca8dd5c258b7179fc193ae87c74ebb666f5" +dependencies = [ + "cfg-if", + "core-foundation-sys", + "libc", + "ntapi", + "once_cell", + "rayon", + "winapi", +] + [[package]] name = "system-configuration" version = "0.5.1" @@ -7878,6 +9594,18 @@ dependencies = [ "libc", ] +[[package]] +name = "system_health" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "lighthouse_network", + "parking_lot", + "serde", + "sysinfo", + "types", +] + [[package]] name = "tagptr" version = "0.2.0" @@ -7899,7 +9627,7 @@ checksum = "c63f48baada5c52e65a29eef93ab4f8982681b67f9e8d29c7b05abcfec2b9ffe" [[package]] name = "task_executor" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "async-channel 1.9.0", "futures", @@ -7935,7 +9663,7 @@ dependencies = [ [[package]] name = "test_random_derive" version = "0.2.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "quote", "syn 1.0.109", @@ -8031,6 +9759,37 @@ dependencies = [ "time-core", ] +[[package]] +name = "timer" +version = "0.2.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "beacon_chain", + "slot_clock", + "task_executor", + "tokio", + "tracing", +] + +[[package]] +name = "tiny-bip39" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" +dependencies = [ + "anyhow", + "hmac 0.12.1", + "once_cell", + "pbkdf2 0.11.0", + "rand 0.8.5", + "rustc-hash 1.1.0", + "sha2 0.10.8", + "thiserror 1.0.69", + "unicode-normalization", + "wasm-bindgen", + "zeroize", +] + [[package]] name = "tiny-keccak" version = "2.0.2" @@ -8123,6 +9882,17 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.4", + "rustls-pki-types", + "tokio", +] + [[package]] name = "tokio-rustls" version = "0.26.2" @@ -8182,6 +9952,17 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.8.0", + "toml_datetime", + "winnow 0.5.40", +] + [[package]] name = "toml_edit" version = "0.22.24" @@ -8190,7 +9971,7 @@ checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ "indexmap 2.8.0", "toml_datetime", - "winnow", + "winnow 0.7.4", ] [[package]] @@ -8347,6 +10128,16 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "triehash" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5c" +dependencies = [ + "hash-db", + "rlp", +] + [[package]] name = "triomphe" version = "0.1.14" @@ -8391,7 +10182,7 @@ checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "types" version = "0.2.1" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8478,6 +10269,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e" +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + [[package]] name = "unicode-ident" version = "1.0.18" @@ -8547,7 +10344,7 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "unused_port" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "lru_cache", "parking_lot", @@ -8607,10 +10404,133 @@ dependencies = [ "getrandom 0.3.1", ] +[[package]] +name = "validator_client" +version = "0.3.5" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "account_utils", + "beacon_node_fallback", + "clap", + "clap_utils", + "directory", + "dirs 3.0.2", + "doppelganger_service", + "environment", + "eth2", + "fdlimit", + "graffiti_file", + "hyper 1.6.0", + "initialized_validators", + "lighthouse_validator_store", + "metrics", + "monitoring_api", + "parking_lot", + "reqwest 0.11.27", + "sensitive_url", + "serde", + "slashing_protection", + "slot_clock", + "tokio", + "tracing", + "types", + "validator_http_api", + "validator_http_metrics", + "validator_metrics", + "validator_services", + "validator_store", +] + +[[package]] +name = "validator_dir" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "bls", + "deposit_contract", + "derivative", + "eth2_keystore", + "filesystem", + "hex", + "lockfile", + "rand 0.8.5", + "tree_hash", + "types", +] + +[[package]] +name = "validator_http_api" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "account_utils", + "beacon_node_fallback", + "bls", + "deposit_contract", + "directory", + "dirs 3.0.2", + "doppelganger_service", + "eth2", + "eth2_keystore", + "ethereum_serde_utils", + "filesystem", + "graffiti_file", + "health_metrics", + "initialized_validators", + "lighthouse_validator_store", + "lighthouse_version", + "logging", + "parking_lot", + "rand 0.8.5", + "sensitive_url", + "serde", + "serde_json", + "signing_method", + "slashing_protection", + "slot_clock", + "sysinfo", + "system_health", + "task_executor", + "tempfile", + "tokio", + "tokio-stream", + "tracing", + "types", + "url", + "validator_dir", + "validator_services", + "validator_store", + "warp", + "warp_utils", + "zeroize", +] + +[[package]] +name = "validator_http_metrics" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "health_metrics", + "lighthouse_validator_store", + "lighthouse_version", + "logging", + "malloc_utils", + "metrics", + "parking_lot", + "serde", + "slot_clock", + "tracing", + "types", + "validator_metrics", + "validator_services", + "warp", + "warp_utils", +] + [[package]] name = "validator_metrics" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "metrics", ] @@ -8618,7 +10538,7 @@ dependencies = [ [[package]] name = "validator_services" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "beacon_node_fallback", "bls", @@ -8642,7 +10562,7 @@ dependencies = [ [[package]] name = "validator_store" version = "0.1.0" -source = "git+https://github.com/sigp/lighthouse?rev=397eb3e#397eb3eada19f0f30b278aa99edc2a4358c24f66" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" dependencies = [ "slashing_protection", "types", @@ -8693,15 +10613,15 @@ version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fec4ebcc5594130c31b49594d55c0583fe80621f252f570b222ca4845cafd3cf" dependencies = [ - "crypto-bigint", - "elliptic-curve", + "crypto-bigint 0.5.5", + "elliptic-curve 0.13.8", "elliptic-curve-tools", "generic-array 1.2.0", "hex", "num", "rand_core 0.6.4", "serde", - "sha3", + "sha3 0.10.8", "subtle", "zeroize", ] @@ -8724,6 +10644,52 @@ dependencies = [ "try-lock", ] +[[package]] +name = "warp" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "headers", + "http 0.2.12", + "hyper 0.14.32", + "log", + "mime", + "mime_guess", + "percent-encoding", + "pin-project", + "rustls-pemfile 2.2.0", + "scoped-tls", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-rustls 0.25.0", + "tokio-util", + "tower-service", + "tracing", +] + +[[package]] +name = "warp_utils" +version = "0.1.0" +source = "git+https://github.com/zacholme7/lighthouse?branch=anchor#a35459867f92b617b05cf6659e1d304b1725a3d8" +dependencies = [ + "bytes", + "eth2", + "headers", + "safe_arith", + "serde", + "serde_array_query", + "serde_json", + "tokio", + "types", + "warp", +] + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -8872,6 +10838,18 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.44", +] + [[package]] name = "widestring" version = "0.4.3" @@ -9343,6 +11321,15 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + [[package]] name = "winnow" version = "0.7.4" @@ -9402,6 +11389,12 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + [[package]] name = "wyz" version = "0.5.1" @@ -9440,6 +11433,20 @@ dependencies = [ "time", ] +[[package]] +name = "xdelta3" +version = "0.1.5" +source = "git+http://github.com/sigp/xdelta3-rs?rev=50d63cdf1878e5cf3538e9aae5eed34a22c64e4a#50d63cdf1878e5cf3538e9aae5eed34a22c64e4a" +dependencies = [ + "bindgen", + "cc", + "futures-io", + "futures-util", + "libc", + "log", + "rand 0.8.5", +] + [[package]] name = "xml-rs" version = "0.8.25" @@ -9640,7 +11647,7 @@ dependencies = [ "pbkdf2 0.11.0", "sha1", "time", - "zstd", + "zstd 0.11.2+zstd.1.5.2", ] [[package]] @@ -9649,7 +11656,16 @@ version = "0.11.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" dependencies = [ - "zstd-safe", + "zstd-safe 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe 7.2.3", ] [[package]] @@ -9662,6 +11678,15 @@ dependencies = [ "zstd-sys", ] +[[package]] +name = "zstd-safe" +version = "7.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3051792fbdc2e1e143244dc28c60f73d8470e93f3f9cbd0ead44da5ed802722" +dependencies = [ + "zstd-sys", +] + [[package]] name = "zstd-sys" version = "2.0.14+zstd.1.5.7" diff --git a/Cargo.toml b/Cargo.toml index 84713eb9a..2f220ccfb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,7 @@ members = [ "anchor/eth", "anchor/http_api", "anchor/http_metrics", + "anchor/integration", "anchor/keygen", "anchor/keysplit", "anchor/message_receiver", @@ -55,24 +56,25 @@ ssv_types = { path = "anchor/common/ssv_types" } subnet_tracker = { path = "anchor/subnet_tracker" } version = { path = "anchor/common/version" } -beacon_node_fallback = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -bls = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -eth2 = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -eth2_config = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -eth2_network_config = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -health_metrics = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -lighthouse_network = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -metrics = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -safe_arith = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -sensitive_url = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -slashing_protection = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -slot_clock = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -task_executor = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -types = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -unused_port = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -validator_metrics = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -validator_services = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } -validator_store = { git = "https://github.com/sigp/lighthouse", rev = "397eb3e" } +beacon_node_fallback = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} +bls = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } +eth2 = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } +eth2_config = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} +eth2_network_config = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } +health_metrics = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } +lighthouse_network = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} +metrics = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } +safe_arith = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } +sensitive_url = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } +slashing_protection = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } +slot_clock = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } +task_executor = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } +types = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } +unused_port = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } +validator_metrics = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } +validator_services = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } +validator_store = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } + alloy = { version = "0.12.0", features = [ "sol-types", @@ -134,6 +136,8 @@ tree_hash = "0.9" tree_hash_derive = "0.9" vsss-rs = "5.1.0" zeroize = "1.8.1" +ethereum_serde_utils = "0.7.0" + # todo: remove when there is a proper release for peer-store. [patch.'https://github.com/libp2p/rust-libp2p.git'] diff --git a/anchor/client/src/config.rs b/anchor/client/src/config.rs index 9347552c0..b77416552 100644 --- a/anchor/client/src/config.rs +++ b/anchor/client/src/config.rs @@ -54,6 +54,8 @@ pub struct Config { pub execution_nodes_tls_certs: Option>, /// Configuration for the processor pub processor: processor::Config, + /// If database sync should be skipped + pub skip_sync: bool } impl Config { @@ -96,6 +98,7 @@ impl Config { beacon_nodes_tls_certs: None, execution_nodes_tls_certs: None, processor: <_>::default(), + skip_sync: false } } } diff --git a/anchor/client/src/lib.rs b/anchor/client/src/lib.rs index 0743244e1..1ece428fa 100644 --- a/anchor/client/src/lib.rs +++ b/anchor/client/src/lib.rs @@ -9,6 +9,7 @@ use beacon_node_fallback::{ start_fallback_updater_service, ApiTopic, BeaconNodeFallback, CandidateBeaconNode, }; pub use cli::Node; +pub use cli::DebugLevel; use config::Config; use database::NetworkDatabase; use eth2::reqwest::{Certificate, ClientBuilder}; @@ -345,7 +346,7 @@ impl Client { executor.spawn( async move { - if let Err(e) = syncer.sync().await { + if let Err(e) = syncer.sync(config.skip_sync).await { error!("Syncer failed: {e}"); } }, diff --git a/anchor/eth/execution.rs b/anchor/eth/execution.rs index cd6725bb8..7b894c2a4 100644 --- a/anchor/eth/execution.rs +++ b/anchor/eth/execution.rs @@ -56,7 +56,7 @@ async fn main() { tokio::spawn(async move { // this should never return, if it does we should gracefully handle it and shutdown the // client. - event_syncer.sync().await + event_syncer.sync(false).await }); loop { let _ = tokio::time::sleep(std::time::Duration::from_secs(100)).await; diff --git a/anchor/eth/src/sync.rs b/anchor/eth/src/sync.rs index 65809fbda..542ce56a0 100644 --- a/anchor/eth/src/sync.rs +++ b/anchor/eth/src/sync.rs @@ -197,7 +197,7 @@ impl SsvEventSyncer { #[instrument(skip(self))] /// Try to perform both a historical and live sync from the chain - pub async fn sync(&mut self) -> Result<(), ExecutionError> { + pub async fn sync(&mut self, skip: bool) -> Result<(), ExecutionError> { info!("Starting SSV event sync"); // Get network specific contract information let contract_address = self.network.ssv_contract; @@ -208,7 +208,7 @@ impl SsvEventSyncer { deployment_block, "Using contract configuration" ); loop { - match self.try_sync(contract_address, deployment_block).await { + match self.try_sync(contract_address, deployment_block, skip).await { Ok(_) => unreachable!("Sync should never finish successfully"), Err(e) => { error!(?e, "Sync failed, attempting recovery"); @@ -287,10 +287,13 @@ impl SsvEventSyncer { &mut self, contract_address: Address, deployment_block: u64, + skip: bool, ) -> Result<(), ExecutionError> { info!("Starting historical sync"); - self.historical_sync(contract_address, deployment_block, SSV_EVENTS.clone()) - .await?; + if !skip { + self.historical_sync(contract_address, deployment_block, SSV_EVENTS.clone()) + .await?; + } self.historic_finished_notify.take().map(|x| x.send(())); diff --git a/anchor/integration/Cargo.toml b/anchor/integration/Cargo.toml new file mode 100644 index 000000000..c02cee68b --- /dev/null +++ b/anchor/integration/Cargo.toml @@ -0,0 +1,29 @@ +[package] +name = "integration" +version = "0.1.0" +edition = "2021" + +[dependencies] +clap = { workspace = true } +client = { workspace = true } +discv5 = { workspace = true } +env_logger = "0.11.6" + +environment = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} +execution_layer = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} +kzg = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} +logging = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} +node_test_rig = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} + +sensitive_url = { workspace = true } +ethereum_serde_utils = { workspace = true } +ssv_network_config = { workspace = true } +futures = { workspace = true } +lighthouse_network = { workspace = true } +network = { workspace = true } +serde_json = { workspace = true } +task_executor = { workspace = true } +tokio = { workspace = true } +tracing = { workspace = true } +tracing-subscriber = { workspace = true } +types = { workspace = true } diff --git a/anchor/integration/mock-data/operator-0/anchor_db.sqlite b/anchor/integration/mock-data/operator-0/anchor_db.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..159147d7039ac49ea35cc750aa618f33aa0514c8 GIT binary patch literal 86016 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 literal 0 HcmV?d00001 diff --git a/anchor/integration/mock-data/operator-0/key.pem b/anchor/integration/mock-data/operator-0/key.pem new file mode 100644 index 000000000..6ce574cba --- /dev/null +++ b/anchor/integration/mock-data/operator-0/key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAhUFm5HcFcxYvJHiFS6QNFQFf4xWhvv3v+p14rgN9rIAwb4nE +nFsqcH8hzCAEFqOV8pzYRPQuE4CBAzyUI3QHuu3VT9B5U3NKZagXiNQKjlucLbq1 +I5vQFz3wt5gnsxqOj5+6vkywTKk5IbroMTHNSxsOt+96G7u0gYmmAYfp4F9BGN6Q +0QLGkRiwgsoBLlcSoI4wJCbpE2k2iMu9nDD4DiJ3wyaLIUnOh0sl2hGGXgtUWL+m +q0vZO2bNM4/4dlClix8Fr1EBi03FxzqCR75tbR1o+LLRW9lIPLOQkZ/1ba2dbU2b ++5kZbW50W0GMSlo2ShEpHkWv1gskLq4x7jUNiQIDAQABAoIBAAJeML0iFVAf0TYk +HcrujxyeseIX6LrQtI0+852fVRd15AZzYQbzQsbi0h+tuPeLBXeHzHsLM29oHZgd +toyGZmXEDgHqqeFEVPUx/mW8I4o3PAhUVJ2ISl4Ysm3yGlB/NLsozY7N+jsJLclO +PYve6e+Upey5qMaUjbxYjRaNYFKlmsgsIRzv0Qf6voTyvRrLfgOSgc0ayCuE3RP8 +B/uWbAad3gCHLyLGFueP3SQLWtGZH1WZKU9dfk51kl2ZFO+shL/ll5ws/U/kzbON +YouE5r9JxJ2zXqnPDxw0czNSgF/GSGNB5yVXsIUPhdakRmjqxt1n0+vcxa+GOir8 +UUbRAQECgYEAuQnT3HXDwoUO8ge9Ry++1YxEgBnxSHkW0WM5dGpS8rgt6kkmONfk +fTSPAR0ZCS9Am9UHkjRLWXB9fRqoNgjDDHDtO+VJsgYsEz4y7Jjs/dhJz1QGD1zj +CSHzJIlgCzdteV5mg1/Qq71szciknrH0QHTZcBqAMw7Pvlyo9n09CoECgYEAuFvH +ZRP8EapzQiqJ2Rwxu+uPtc3QTX/OxjHNbMxLUf1owcfG6X8JnPHrAy5AtkX6RZwH +TximezkyXl3eD7+vP1xSd3+1BuUTkkDWB8El+MgF8SOR117030Jqh4X2Fckl7Ztl +Z5SL8/YoGtvJ2hShI90WwD7OSbuedUoQdW0iLwkCgYEAr56VNuOKtb9FzQ7tZXf6 +XoHvrclxiMBsmLTdHhGfwoBuC7P7k+3MDc1pgLwWO/JeFsjck7YQYcXzRF6dkhNE +1DUF5FgdVtqm0GizOn12SQMUIrPzwHb/gHZ5Z47+2gZ0X8Hp9/xjd+ykLLenDnuF +f/unN8/fJxaCs4EMWE3LNoECgYADbpHzq7+RhJ7IqIoQZJn4aZYvSDmMd8idn+e3 +EsaELDd7BAEL77V6GnbJhF7oBb129kSckFTpDlOFtjGgEW1tvIY8e0AfdLw8iMBz +PIE8dFzH9GWOoNHmJhJdm3zNQwVVuwLUPsusKvTsKxNC4Adv53m48nJcpQV6IXrU +9MciIQKBgQCFs5AT7Ebcyz55yAEskhFP6QN9TQTlJWxosadeaBXCupeAsTYfR5ch +shp0XqnV0hmVmAYmzqZCuw5idfxhB8YVxdES2lwAH4uMIObBSJe6lKNwF35sNUrl +wKBYDngF5SQlJAxUBV6inKsMRY+ry5qofUC9IuaxzgsW0+3GbkSuwQ== +-----END RSA PRIVATE KEY----- diff --git a/anchor/integration/mock-data/operator-0/network/key b/anchor/integration/mock-data/operator-0/network/key new file mode 100644 index 000000000..5f12cf0c5 --- /dev/null +++ b/anchor/integration/mock-data/operator-0/network/key @@ -0,0 +1 @@ +‘K& ]>ê‚ç¤S&‡.Æ‹ -Í47ÆÕ05ÕŒk \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-0/slashing_protection.sqlite b/anchor/integration/mock-data/operator-0/slashing_protection.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..245de54de7ca5c77894ee77c651ee7e79c731b21 GIT binary patch literal 28672 zcmeI&J8v9S6ae7e*j^{L*QT>XHLem%QFPyr0tq{rL>7*XH@1W&q}6>cs~B(aZcr!_ zprNBeR22LPT7)Rze?X6DpyN#J@gsIZnw1jkj5PA>Joeo4oiiit9Y5Gw?~hWE2M3?J zQNbJUG@8xE`$f@cG$vu4hP7U*&(&Hl&3fY%eXpa2S>01BW03ZMWAj8ow0o#yo7(o*x;gOT%l>2tT&k8U(L7@llhx!oyO zw##CBWp%wQPWBf!W{MYmCdSqqBbJzxwWGr(C9H>to$_wkDK~DH4^Gwe zMn5i}(XR@8Sd`+-^*4*tgFbuBa@lGv?($}%zaP_+;b(jBBdhBkj|R^_cQ1hM(hGJ@ zKf66Ky?Fh4^Q-c7QT^T^Jgm!k_+j#*LLMG^%@Q8B)p^0;9w^sc{qh>V8AYiE`$947 zWNY#M_5UfxA=Ysj4nIyU{L}dH`NLuMO?@~l^DC{zdrL3N?zrQJU3#)T0T0xx)kC!n z>&)z*jfL+PZq5HX|8e{8_BZXNxu51XVJ9vqfC4Ch0w{n2D1ZVefC6u!KyPNM@pS7N zdE%{3!H1kokjz^jVsJKT86D+8DoMPS)Dy0Q)WmX;obpNtnlooHDXCPDB)S}klsYL+ ziS#Tb4d3TIx2bpSBvAB8xEPH~Ia;_*OP6d+)JE!pw8VQIEz69<2t=ZkXU#MXj0qmH zGB7M9q|r8I@1;;tniPb{k|`cl?`j>$1f>+`n#RDj&%|)bMNEz<#|Wh|gep}XsB}s( z$lY-+xU9yOs0hjjtEq4@#FT_(k`os~HjXpxnRC7AIuHyicp^E~fq952G;y9unyk@L z`OImS$-$OP5faRa5FH}~b4i6non?uMKy8xFbE88v*+Dq3I7pb#Yt?~xb}9MnlaItm zZz&KZl8ANLhDc@Po<1M@!5nuy7*B{XR>#bxBElHOqBXs# zqd+b|t}aBIEQQQKKX4JC;(}zKqlipGbZdmBiAk`p>JqZnRl455sGuZNF)IzUM}P(j z&JZCvWangLy~#Qdx0=%^gO|*36A6nVXBe3CmY6`YR?q|4aGfnPP*7;R$cd$nW@V$~ zLdT$>LM#{p43ZJ;xU#M)Uv#NAaTLfxe?pqk5bZf5#(U~1anxl2GA@|N6|fNKis%HC zBQh$aupvc4!IsAeZ7PL?wl!KP8eD?5B+;5z&w-wX zLk!yAS!m-djggwi%yNL@@*GJ}L~A7}01BYM+bz(We7e;f z|3tvdNu06H16-@)jCmU1Y8_|HvjEd|oH0)Vw2tD8dk$c#jx**dfXSmc01BW03ZMWApa2S>01BYMB^IdO|KsofOI%<~ z4FymD1yBG5Pyhu`00mG01yBG5KmgzWV;i6V3ZMWApa2S>01BW03ZMWApupu9!1w=` czs8s$3ZMWApa2S>01BW03ZMWApa2T|2klh6vj6}9 literal 0 HcmV?d00001 diff --git a/anchor/integration/mock-data/operator-1/anchor_db.sqlite b/anchor/integration/mock-data/operator-1/anchor_db.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..d154149dce5c425c86b1345b1a0e3349adfd43c3 GIT binary patch literal 86016 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 Tb-!P}L-*E# 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 L5?sX;HVFR$E>Id7 literal 0 HcmV?d00001 diff --git a/anchor/integration/mock-data/operator-1/key.pem b/anchor/integration/mock-data/operator-1/key.pem new file mode 100644 index 000000000..2d557ed84 --- /dev/null +++ b/anchor/integration/mock-data/operator-1/key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAyZrTHN8hJ2Zc6xHXnqVkxes1VEVUL7oCJe4WzRoGp6Hbymo+ +nG4DQxLZZHxWUUppXmaMNTBpv0XpKz01EHO20oCfM0pzUMDPq0gfARsMJ4BnE/6K +2lUTdRbzZ1iT7A2jH8MXPYtTI2Wc5JOAI082rKU9jeZ+C42D57Xkw45EHR3WF/W1 +0Xt2pccMjfAiU2TKySnjiJKh/Vac2QrnScHI9k7w5cZjgmbdCKrob3J5zedZjApN +xZhzdMWEFI+GZIsPfc6HVSl2xn1f5CXtB/PcEIAPW0WuR//l65M0fG/geXskbBvM +f2nbV6h+sNE3XHW/8ePzk0QBg8bVOuzMsYm2/QIDAQABAoIBAC9ysyONJzgm6REB +HMJvkjFbm2xHOdpWuJk1OSQR70WGPFyeFzjJUpa3abcy5TzSGsz3LSH6kDTObyN4 +TxQda8aMs4tGhy/XBTk+at+ffkOQvpHP212p3r+0xFoLGJtalU0NJRvcvdcrm9qX +FXYZ91f4Nu299OXiq0v+PQZCZikEuOv2lnJ+XMx12meJbQ+aslnRUOzzlaiWK4ms +rcgtst7L8fPaa/Js0HXL5NNSnbiwJEVrVg5yPYPgWGMcdXj14aICW0aONUlm7DV6 +urg+1jquuE8oGE5xZJkzzjPTE/8D1CmmqMfdcYVxS1CwF3miwhN+A61LZ7glvp08 +NrLFe/kCgYEA6XxOAsZb2nOndh4Ln0lkn0rYb16uPzhH/XaJoDfPHg/O310LUQ8K +Ot5wGoyp1/L+KHdiI5wWzOj0wLKiK68L5nQKNChzFUXgZkmYLajvTPfh++PpWj/a +jigTVqS76cwIvYnDWrwXqGwUil5SI8e+BPlUb1tzkxp+huc7UYXyzGUCgYEA3QuH +U/TdlvqZVKW+xKOf5fnEBC6H6Ic6GNViI0Sgvzcqef4AKmHbEJnl+2VkfOeUvdH0 +d34G8ZOBqAj/X5cDoCALcplN5lL60GC3rVrzVvn2lcoy9uIhd3ibJD3lVcYmj98T +GzysGHlzOGiY38sz24wTTMcyRqS1n53MdgeO2rkCgYAfgvxQWY8aC5PlWCa/Z7th +2EsftMqVk7X7mlz2t7GHYCDOepNFbF84FL9ShfuCPrRYp8wh/DYDj8lAnJtQg/56 +Kt0Zrv/hNh4UEAiu2Ob7H1VrlpXu7UFFAFmjzvXhlvzy/73S6CHVREj9Z790PsgB +idkAcnpFt0SuVlTmKsrbFQKBgQC9LpLB/j5wa0Yzti9RaKD/WQa0dYaIMsQ8YNQ/ +Twss3HAUPJmzrFCrIqw8vwiEBke9NiY+5rPWqeI8CIdYLo1BzGs/x4luaPKUyVIq +oj7F3+V1SbrYpazy7VwKZpcTFCYI2Gkn1ION5tQAITVFxEo7yuTxv0J+R5XSaGGH +WuyesQKBgEqw+pAg8HchUqUEfRyTpwR3XY/3mxujnZCPcNiXaf61DgBPLsnqICRQ +5xoQV5BnO9wV/hTfM32UT1g7mC/TEuLoKDPSlHfFW4JMpwfS1vTfHITQJxnVwT71 +qn1+dK5Zg0b0D6Vu2lPTu5rIcbkki44Pyd6k5y7HJpLiaWf8EAO2 +-----END RSA PRIVATE KEY----- diff --git a/anchor/integration/mock-data/operator-1/network/key b/anchor/integration/mock-data/operator-1/network/key new file mode 100644 index 000000000..0b3540b46 --- /dev/null +++ b/anchor/integration/mock-data/operator-1/network/key @@ -0,0 +1 @@ +ø¤¥òG7p¸h¥§žÀà®û¢ö–«53æüg“ \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-1/slashing_protection.sqlite b/anchor/integration/mock-data/operator-1/slashing_protection.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..245de54de7ca5c77894ee77c651ee7e79c731b21 GIT binary patch literal 28672 zcmeI&J8v9S6ae7e*j^{L*QT>XHLem%QFPyr0tq{rL>7*XH@1W&q}6>cs~B(aZcr!_ zprNBeR22LPT7)Rze?X6DpyN#J@gsIZnw1jkj5PA>Joeo4oiiit9Y5Gw?~hWE2M3?J zQNbJUG@8xE`$f@cG$vu4hP7U*&(&Hl&3fY%eXpa2S>01BW03ZMWAj8ow0o#yo7(o*x;gOT%l>2tT&k8U(L7@llhx!oyO zw##CBWp%wQPWBf!W{MYmCdSqqBbJzxwWGr(C9H>to$_wkDK~DH4^Gwe zMn5i}(XR@8Sd`+-^*4*tgFbuBa@lGv?($}%zaP_+;b(jBBdhBkj|R^_cQ1hM(hGJ@ zKf66Ky?Fh4^Q-c7QT^T^Jgm!k_+j#*LLMG^%@Q8B)p^0;9w^sc{qh>V8AYiE`$947 zWNY#M_5UfxA=Ysj4nIyU{L}dH`NLuMO?@~l^DC{zdrL3N?zrQJU3#)T0T0xx)kC!n z>&)z*jfL+PZq5HX|8e{8_BZXNxu51XVJ9vqfC4Ch0w{n2D1ZVefC6u!KyPNM@pS7N zdE%{3!H1kokjz^jVsJKT86D+8DoMPS)Dy0Q)WmX;obpNtnlooHDXCPDB)S}klsYL+ ziS#Tb4d3TIx2bpSBvAB8xEPH~Ia;_*OP6d+)JE!pw8VQIEz69<2t=ZkXU#MXj0qmH zGB7M9q|r8I@1;;tniPb{k|`cl?`j>$1f>+`n#RDj&%|)bMNEz<#|Wh|gep}XsB}s( z$lY-+xU9yOs0hjjtEq4@#FT_(k`os~HjXpxnRC7AIuHyicp^E~fq952G;y9unyk@L z`OImS$-$OP5faRa5FH}~b4i6non?uMKy8xFbE88v*+Dq3I7pb#Yt?~xb}9MnlaItm zZz&KZl8ANLhDc@Po<1M@!5nuy7*B{XR>#bxBElHOqBXs# zqd+b|t}aBIEQQQKKX4JC;(}zKqlipGbZdmBiAk`p>JqZnRl455sGuZNF)IzUM}P(j z&JZCvWangLy~#Qdx0=%^gO|*36A6nVXBe3CmY6`YR?q|4aGfnPP*7;R$cd$nW@V$~ zLdT$>LM#{p43ZJ;xU#M)Uv#NAaTLfxe?pqk5bZf5#(U~1anxl2GA@|N6|fNKis%HC zBQh$aupvc4!IsAeZ7PL?wl!KP8eD?5B+;5z&w-wX zLk!yAS!m-djggwi%yNL@@*GJ}L~A7}01BYM+bz(We7e;f z|3tvdNu06H16-@)jCmU1Y8_|HvjEd|oH0)Vw2tD8dk$c#jx**dfXSmc01BW03ZMWApa2S>01BYMB^IdO|KsofOI%<~ z4FymD1yBG5Pyhu`00mG01yBG5KmgzWV;i6V3ZMWApa2S>01BW03ZMWApupu9!1w=` czs8s$3ZMWApa2S>01BW03ZMWApa2T|2klh6vj6}9 literal 0 HcmV?d00001 diff --git a/anchor/integration/mock-data/operator-2/anchor_db.sqlite b/anchor/integration/mock-data/operator-2/anchor_db.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..46ccb7edbeb44fb02e92df13f0adfa0c8dfc7904 GIT binary patch literal 86016 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 literal 0 HcmV?d00001 diff --git a/anchor/integration/mock-data/operator-2/key.pem b/anchor/integration/mock-data/operator-2/key.pem new file mode 100644 index 000000000..0a3391141 --- /dev/null +++ b/anchor/integration/mock-data/operator-2/key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAieDAKjjoO40ifjHaO+eJKv8CVrNPagN+FKOPX3/RwDYxmMw8 +vjdlvlireS5zWPyFV7FeYL09HJfh0+KIf18aP7lEFf7TmmT1rORzJ+phqXksT46L +hk+k+OVpXJmu+Y92KONWyotnF1XooAPzQnjiWd9iRKTPiHLvVEyMyDYLsrUYxMYB +1NadopONTYWzcV13lERlyT3yC9CxVVUVFoD9SSRqMz5xH+969yAqC5ruSmtfuZ5O +DmB01zRvMat9n49W0isCQkOrgwJo0To7U5hyI0PzH87DIAXB3T5AbpeEiV7MCObe +rbaUF0B+iZyNvOCahu9LPo09srAR3CeYMeFFKwIDAQABAoIBABURC5uH7Wfn9Ry+ +Bj+/7VPt+dAAfsJOfU2u/gGT+Jr7TNGxZxiTQ071omGWKNawYrlW5vo1/+fmBwHG +a5+2ir6w0off0zoUcfs0PqobJEfuNUiEmanwcl77QoF9E+CavG2b6s9wxFQq8qu8 +XsdJzB/6QzwEyJbrJMlHFv2iUGBCFPC155NTMs47FCvmCxHQTqLCWnFPz51EnGMQ +HelqRzi2VOdnBm+lvKtoEWKFT7Iy87EwebsHYRVcJnMlMNFMhwjyywxSgTy2OR2x +tYEDbvMAHu3ZjBh0sJGrU2Xt/JjPrL+Z24nGN9WWmw4unL00mGjMv4zIb3WqQW01 +MWxtjuECgYEAwjGyE2rrpx5y1W/VePiOCzCDoCj72gM6KsAoDJkNuJtOY3Zoq6BP +j0109prvRxe/Q9GbDMUfsn7Pff7KMCJmkQMLI4TCt8Oh5lEu2Hx5OUKDWPTLG8tu +UkFaV7yi5na8uximYGMK56eYDgeV9LwCNKf1AoErySlxH3c9f8hpWiECgYEAtcKY +ZD08MaahonskBzDy5ZTGbfhz3yyDt+TjlYv6uTg1N2iI3+c8t+baim/skjVaVzBl +qJvj/e6sz8bwYySkihn8ENHxJQ7PWnQ2TjQKlDmhBJKESavTlAFJIj/SRQH+6yID +LwkJler8xr7n23Ch63qagcNGHphcxEMgZ+efLcsCgYBc592kQJEBYSXbSye8Ol3q +qIkwhKsJQGYBsfD3JfpUiajVGP82rPmjO5FrsfAr+QZ+cbdWQrDJerXWN6GPqcWc +NvKLSabGuAeq4sggtlxgspuYYXUSlR7wp2eLdioRTFk6wa5HitravWmXvLVXYuND +Qd+MFTRXh0YhobCAg+czQQKBgG6XjKnRKIL9ZHO8gVtuyRwvvdzDw50TNMH7nw4r +Mc7pCFhCXqX9yNAMwwRgvYzosaNDa1eAIuUrCDMUVMe+T+9HiDujwhpOPJRJCZHj +0FwIBJUHoT5CMmZnsdwJASPD5xuiglVoJlD1vgAfwGugyKTC4Kf77PpIsokoXttZ +71ypAoGBAKn/JcxllgxFnSPi5/1w+wRyDbvku0bhgWXbneqe59umEKLdQ/hiHbfd +6FyTvUmq6mp+B+0eNc6mtkG7soOTw7LvGtmh4t1ZfjmnToAWlv1+MLZXpuxQJbJ5 +gzZvNBY3CUwn72QVsbCh30IZutEv0WlO9afKzfKBc6tux8Rz+OnD +-----END RSA PRIVATE KEY----- diff --git a/anchor/integration/mock-data/operator-2/network/key b/anchor/integration/mock-data/operator-2/network/key new file mode 100644 index 000000000..1be1a5b06 --- /dev/null +++ b/anchor/integration/mock-data/operator-2/network/key @@ -0,0 +1 @@ +»b+°ö?ë?jÁ†ø¦ª½xŽÀ+ތĻRÛ°~÷HXH \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-2/slashing_protection.sqlite b/anchor/integration/mock-data/operator-2/slashing_protection.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..245de54de7ca5c77894ee77c651ee7e79c731b21 GIT binary patch literal 28672 zcmeI&J8v9S6ae7e*j^{L*QT>XHLem%QFPyr0tq{rL>7*XH@1W&q}6>cs~B(aZcr!_ zprNBeR22LPT7)Rze?X6DpyN#J@gsIZnw1jkj5PA>Joeo4oiiit9Y5Gw?~hWE2M3?J zQNbJUG@8xE`$f@cG$vu4hP7U*&(&Hl&3fY%eXpa2S>01BW03ZMWAj8ow0o#yo7(o*x;gOT%l>2tT&k8U(L7@llhx!oyO zw##CBWp%wQPWBf!W{MYmCdSqqBbJzxwWGr(C9H>to$_wkDK~DH4^Gwe zMn5i}(XR@8Sd`+-^*4*tgFbuBa@lGv?($}%zaP_+;b(jBBdhBkj|R^_cQ1hM(hGJ@ zKf66Ky?Fh4^Q-c7QT^T^Jgm!k_+j#*LLMG^%@Q8B)p^0;9w^sc{qh>V8AYiE`$947 zWNY#M_5UfxA=Ysj4nIyU{L}dH`NLuMO?@~l^DC{zdrL3N?zrQJU3#)T0T0xx)kC!n z>&)z*jfL+PZq5HX|8e{8_BZXNxu51XVJ9vqfC4Ch0w{n2D1ZVefC6u!KyPNM@pS7N zdE%{3!H1kokjz^jVsJKT86D+8DoMPS)Dy0Q)WmX;obpNtnlooHDXCPDB)S}klsYL+ ziS#Tb4d3TIx2bpSBvAB8xEPH~Ia;_*OP6d+)JE!pw8VQIEz69<2t=ZkXU#MXj0qmH zGB7M9q|r8I@1;;tniPb{k|`cl?`j>$1f>+`n#RDj&%|)bMNEz<#|Wh|gep}XsB}s( z$lY-+xU9yOs0hjjtEq4@#FT_(k`os~HjXpxnRC7AIuHyicp^E~fq952G;y9unyk@L z`OImS$-$OP5faRa5FH}~b4i6non?uMKy8xFbE88v*+Dq3I7pb#Yt?~xb}9MnlaItm zZz&KZl8ANLhDc@Po<1M@!5nuy7*B{XR>#bxBElHOqBXs# zqd+b|t}aBIEQQQKKX4JC;(}zKqlipGbZdmBiAk`p>JqZnRl455sGuZNF)IzUM}P(j z&JZCvWangLy~#Qdx0=%^gO|*36A6nVXBe3CmY6`YR?q|4aGfnPP*7;R$cd$nW@V$~ zLdT$>LM#{p43ZJ;xU#M)Uv#NAaTLfxe?pqk5bZf5#(U~1anxl2GA@|N6|fNKis%HC zBQh$aupvc4!IsAeZ7PL?wl!KP8eD?5B+;5z&w-wX zLk!yAS!m-djggwi%yNL@@*GJ}L~A7}01BYM+bz(We7e;f z|3tvdNu06H16-@)jCmU1Y8_|HvjEd|oH0)Vw2tD8dk$c#jx**dfXSmc01BW03ZMWApa2S>01BYMB^IdO|KsofOI%<~ z4FymD1yBG5Pyhu`00mG01yBG5KmgzWV;i6V3ZMWApa2S>01BW03ZMWApupu9!1w=` czs8s$3ZMWApa2S>01BW03ZMWApa2T|2klh6vj6}9 literal 0 HcmV?d00001 diff --git a/anchor/integration/mock-data/operator-3/anchor_db.sqlite b/anchor/integration/mock-data/operator-3/anchor_db.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..1b58f83bfaf416010f00da9a848fc2fd468dbe8f GIT binary patch literal 86016 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 LC&5)rVT155Pt6(! literal 0 HcmV?d00001 diff --git a/anchor/integration/mock-data/operator-3/key.pem b/anchor/integration/mock-data/operator-3/key.pem new file mode 100644 index 000000000..d77cc2a93 --- /dev/null +++ b/anchor/integration/mock-data/operator-3/key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAz6HCCQiU6T1vwFF/XUVu9tcbfDNbY/2pK4m0kWDN5riGpkxr +g5QOxJNl/IgOwpTlwzV5BRzSUqKedXw6WKQTEr5lAihN4Vt3i0+YsxhiKsSxeOLy +818UiNU+mrjlf2kqnfZOC0P3hWXU5H6HurYOqolofHLBzSqKbAJ8dJAtE/Kr6yie +BSI1Y77+L0hOq4sdU4p7hdn/P8+6szD3OqmwA5keQ/aH85naMEImnflIQtGut+8+ +ulT4rfq+C8/wUOEF1AaUUZt/3WH7g42ViSoEv4GRetS4LRA9PLWJr+GnxOw0Z3iU +UACkJL8Xc1YKrGIDt53WARPpH00O4l8xuSFpAQIDAQABAoIBAASrfLO7T64XRaYr +rxOn9iDzIZkfhpSvJdjm1frXFIp16AFhgqGI+PQO5KJTZRGXS7uiPkCRL2HQaoP1 +8VIBDrTDN35e7bF93yhw99w/ViXkGqG/aPt0Tf/t2+Sa9/5vnRfEbGjwdGa5rZoe +Bmt6oMXRJVp3MkitBkP7olT00S67oiWwIX1HYT8HWepvw0mSmVMVRcefOyDmPBgH +5Mgj0b3KQOaSGohw1QZflPtpkuaQX4Iaxf9wcD/KuvigV1vJrgd9tzcEbxBE1AqC +tOPgJ9glBOcf/sI65EZIHO7v9ckB5xSs27vpZorlqT3wDPxByK9pP/yNGS3Yhkqs +OzUqV4ECgYEA7rvVJv8WP0cWsZfnIOr40lUEo1AgmoYa2VwA9JxOdkE3sUgZRu/K +SdNKfYEyYgwvXYAPgJCL7F3Objhp7uWI1EqOwJ9cT7H2s+98j92HjOg1p/9iOzZE +AohPDdCPC9rM30e7h/5BKg8WNJQPd64lpagL0bpIpuoIoikhLUF+QqkCgYEA3qYS +pw+fJfnReGURrrxsRoiqg6W+eTJZWoVjRwqgXqWNEodTgpH9KP1W8pQrk93WaGh0 +ZIJI7bS8VMzrC3hdFpZdTi9a9mMDtti2d4Bhj8GcUPf9zB8mzRWXmN4gHgEaG1zi +JNkE3msSzhnBB6aRpyUeGuOcELhFcWDsaPUcQpkCgYEAjrrB7zSnCmHoEXlt9+JD +rQyjXzhypa/zsWwuLhCdYFoRf+5JHn4ShRzL9kkd5DzAvLfpjMXewgw7dO5Jd0jI +C5Qf0M32FLejdWSDJkgd2IKkQbKP+jKxaoowKWQ9garovb1XQzEhqJGohvrWXIlD +fM0Bc/xZn2FglALfEP2NDTECgYBnQsil2JXsK/fdiapwywzAjcPfeLBlT1enpvOL +UD9ehhNug3rUtNaf+xcnPFcVpi45kDBjKRWfwVITVlKwqCssPaKaj1X1rahcVhgS +RmV5IcdYuhtoXw5E0X3UtThaEhLEnAh6JHigmzJGiiU/Yh5tUcarm+KW0o/KbLRY +XU21CQKBgCtVpkBcHYbkJn8kSAd2ELnDjc+gEiRBkzYZsmv/j3DDPEkcWB/A30Aa +TOxsMdnK/MEBsrWpianyglm3CDKeDp4YKaUfdLvgcvsFLqFU16TbOKsjYA+hvbtA +fDbKWQmziwS3sk38rgbaMQhWiIk0kY79eBxgtIWYkeNf4uoiZSQm +-----END RSA PRIVATE KEY----- diff --git a/anchor/integration/mock-data/operator-3/network/key b/anchor/integration/mock-data/operator-3/network/key new file mode 100644 index 000000000..0dd895c90 --- /dev/null +++ b/anchor/integration/mock-data/operator-3/network/key @@ -0,0 +1 @@ +:k˜Îx:†ãnw^ÒqLŸÇ{ò²‚JËq-$Ö"š  \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-3/slashing_protection.sqlite b/anchor/integration/mock-data/operator-3/slashing_protection.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..245de54de7ca5c77894ee77c651ee7e79c731b21 GIT binary patch literal 28672 zcmeI&J8v9S6ae7e*j^{L*QT>XHLem%QFPyr0tq{rL>7*XH@1W&q}6>cs~B(aZcr!_ zprNBeR22LPT7)Rze?X6DpyN#J@gsIZnw1jkj5PA>Joeo4oiiit9Y5Gw?~hWE2M3?J zQNbJUG@8xE`$f@cG$vu4hP7U*&(&Hl&3fY%eXpa2S>01BW03ZMWAj8ow0o#yo7(o*x;gOT%l>2tT&k8U(L7@llhx!oyO zw##CBWp%wQPWBf!W{MYmCdSqqBbJzxwWGr(C9H>to$_wkDK~DH4^Gwe zMn5i}(XR@8Sd`+-^*4*tgFbuBa@lGv?($}%zaP_+;b(jBBdhBkj|R^_cQ1hM(hGJ@ zKf66Ky?Fh4^Q-c7QT^T^Jgm!k_+j#*LLMG^%@Q8B)p^0;9w^sc{qh>V8AYiE`$947 zWNY#M_5UfxA=Ysj4nIyU{L}dH`NLuMO?@~l^DC{zdrL3N?zrQJU3#)T0T0xx)kC!n z>&)z*jfL+PZq5HX|8e{8_BZXNxu51XVJ9vqfC4Ch0w{n2D1ZVefC6u!KyPNM@pS7N zdE%{3!H1kokjz^jVsJKT86D+8DoMPS)Dy0Q)WmX;obpNtnlooHDXCPDB)S}klsYL+ ziS#Tb4d3TIx2bpSBvAB8xEPH~Ia;_*OP6d+)JE!pw8VQIEz69<2t=ZkXU#MXj0qmH zGB7M9q|r8I@1;;tniPb{k|`cl?`j>$1f>+`n#RDj&%|)bMNEz<#|Wh|gep}XsB}s( z$lY-+xU9yOs0hjjtEq4@#FT_(k`os~HjXpxnRC7AIuHyicp^E~fq952G;y9unyk@L z`OImS$-$OP5faRa5FH}~b4i6non?uMKy8xFbE88v*+Dq3I7pb#Yt?~xb}9MnlaItm zZz&KZl8ANLhDc@Po<1M@!5nuy7*B{XR>#bxBElHOqBXs# zqd+b|t}aBIEQQQKKX4JC;(}zKqlipGbZdmBiAk`p>JqZnRl455sGuZNF)IzUM}P(j z&JZCvWangLy~#Qdx0=%^gO|*36A6nVXBe3CmY6`YR?q|4aGfnPP*7;R$cd$nW@V$~ zLdT$>LM#{p43ZJ;xU#M)Uv#NAaTLfxe?pqk5bZf5#(U~1anxl2GA@|N6|fNKis%HC zBQh$aupvc4!IsAeZ7PL?wl!KP8eD?5B+;5z&w-wX zLk!yAS!m-djggwi%yNL@@*GJ}L~A7}01BYM+bz(We7e;f z|3tvdNu06H16-@)jCmU1Y8_|HvjEd|oH0)Vw2tD8dk$c#jx**dfXSmc01BW03ZMWApa2S>01BYMB^IdO|KsofOI%<~ z4FymD1yBG5Pyhu`00mG01yBG5KmgzWV;i6V3ZMWApa2S>01BW03ZMWApupu9!1w=` czs8s$3ZMWApa2S>01BW03ZMWApa2T|2klh6vj6}9 literal 0 HcmV?d00001 diff --git a/anchor/integration/sim-config/config.yaml b/anchor/integration/sim-config/config.yaml new file mode 100644 index 000000000..843df2b63 --- /dev/null +++ b/anchor/integration/sim-config/config.yaml @@ -0,0 +1,193 @@ +# Testnet Configuration + +# Network Configuration +CONFIG_NAME: testnet +PRESET_BASE: minimal + +# Genesis Parameters +MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 64 +MIN_GENESIS_TIME: 1741039586 +GENESIS_FORK_VERSION: "0x10000038" +GENESIS_DELAY: 0 + +# Fork Schedule +ALTAIR_FORK_VERSION: "0x20000038" +ALTAIR_FORK_EPOCH: 0 +BELLATRIX_FORK_VERSION: "0x30000038" +BELLATRIX_FORK_EPOCH: 0 +CAPELLA_FORK_VERSION: "0x40000038" +CAPELLA_FORK_EPOCH: 0 +DENEB_FORK_VERSION: "0x50000038" +DENEB_FORK_EPOCH: 0 +ELECTRA_FORK_VERSION: "0x60000038" +ELECTRA_FORK_EPOCH: 999999 +FULU_FORK_VERSION: "0x70000038" +FULU_FORK_EPOCH: 100000001 + +# Time Parameters +SECONDS_PER_SLOT: 6 +SECONDS_PER_ETH1_BLOCK: 6 +SLOTS_PER_EPOCH: 8 + +# Validator Parameters +MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256 +SHARD_COMMITTEE_PERIOD: 64 +ETH1_FOLLOW_DISTANCE: 16 +EJECTION_BALANCE: 16000000000 +MIN_PER_EPOCH_CHURN_LIMIT: 2 +MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT: 4 +CHURN_LIMIT_QUOTIENT: 32 +MIN_ACTIVATION_BALANCE: 32000000000 +MAX_EFFECTIVE_BALANCE: 32000000000 +EFFECTIVE_BALANCE_INCREMENT: 1000000000 + +# Deposit Contract +DEPOSIT_CHAIN_ID: 3151908 +DEPOSIT_NETWORK_ID: 3151908 +DEPOSIT_CONTRACT_ADDRESS: "0x4242424242424242424242424242424242424242" + +# Terminal Conditions +TERMINAL_TOTAL_DIFFICULTY: "0" +TERMINAL_BLOCK_HASH: "0x0000000000000000000000000000000000000000000000000000000000000000" +TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH: 18446744073709551615 + +# Gwei Values +MIN_DEPOSIT_AMOUNT: 1000000000 +MAX_EFFECTIVE_BALANCE: 32000000000 +EFFECTIVE_BALANCE_INCREMENT: 1000000000 + +# Initial Values +INACTIVITY_SCORE_BIAS: 4 +INACTIVITY_SCORE_RECOVERY_RATE: 16 +PROPOSER_SCORE_BOOST: 40 + +# Rewards and Penalties +BASE_REWARD_FACTOR: 64 +WHISTLEBLOWER_REWARD_QUOTIENT: 512 +PROPOSER_REWARD_QUOTIENT: 8 +INACTIVITY_PENALTY_QUOTIENT: 33554432 +MIN_SLASHING_PENALTY_QUOTIENT: 64 +PROPORTIONAL_SLASHING_MULTIPLIER: 2 +INACTIVITY_PENALTY_QUOTIENT_ALTAIR: 50331648 +MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: 64 +PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: 2 +INACTIVITY_PENALTY_QUOTIENT_BELLATRIX: 16777216 +MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX: 32 +PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX: 3 + +# State List Lengths +MAX_PROPOSER_SLASHINGS: 16 +MAX_ATTESTER_SLASHINGS: 2 +MAX_ATTESTATIONS: 128 +MAX_DEPOSITS: 16 +MAX_VOLUNTARY_EXITS: 16 + +# Sync Committee +SYNC_COMMITTEE_SIZE: 32 +EPOCHS_PER_SYNC_COMMITTEE_PERIOD: 8 +MIN_SYNC_COMMITTEE_PARTICIPANTS: 1 +SYNC_COMMITTEE_SUBNET_COUNT: 4 +TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE: 16 + +# Execution Layer +MAX_BYTES_PER_TRANSACTION: 1073741824 +MAX_TRANSACTIONS_PER_PAYLOAD: 1048576 +BYTES_PER_LOGS_BLOOM: 256 +MAX_EXTRA_DATA_BYTES: 32 +MAX_BLS_TO_EXECUTION_CHANGES: 16 +MAX_WITHDRAWALS_PER_PAYLOAD: 4 +MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP: 16 + +# Networking +SUBNETS_PER_NODE: 2 +ATTESTATION_SUBNET_PREFIX_BITS: 6 +ATTESTATION_PROPAGATION_SLOT_RANGE: 32 +MAXIMUM_GOSSIP_CLOCK_DISPARITY_MILLIS: 500 +GOSSIP_MAX_SIZE: 10485760 +MAX_REQUEST_BLOCKS: 1024 +MIN_EPOCHS_FOR_BLOCK_REQUESTS: 272 +MAX_CHUNK_SIZE: 10485760 +TTFB_TIMEOUT: 5 +RESP_TIMEOUT: 10 +MESSAGE_DOMAIN_INVALID_SNAPPY: "0x00000000" +MESSAGE_DOMAIN_VALID_SNAPPY: "0x01000000" + +# Deneb Parameters +MAX_REQUEST_BLOCKS_DENEB: 128 +MAX_REQUEST_BLOB_SIDECARS: 768 +MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384 +MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096 +BLOB_SIDECAR_SUBNET_COUNT: 6 +MAX_BLOBS_PER_BLOCK: 6 +FIELD_ELEMENTS_PER_BLOB: 4096 +VERSIONED_HASH_VERSION_KZG: 1 + +# Electra Parameters +MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: 64000000000 +MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT: 128000000000 +MAX_BLOBS_PER_BLOCK_ELECTRA: 9 +BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 9 +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152 +MAX_EFFECTIVE_BALANCE_ELECTRA: 2048000000000 +MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA: 4096 +WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA: 4096 +MAX_ATTESTER_SLASHINGS_ELECTRA: 1 +MAX_ATTESTATIONS_ELECTRA: 8 + +# Withdrawal Parameters +MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP: 2 +PENDING_DEPOSITS_LIMIT: 134217728 +PENDING_PARTIAL_WITHDRAWALS_LIMIT: 64 +PENDING_CONSOLIDATIONS_LIMIT: 64 +MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD: 2 +MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: 4 +MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: 2 +FULL_EXIT_REQUEST_AMOUNT: 0 +ETH1_ADDRESS_WITHDRAWAL_PREFIX: "0x01" +COMPOUNDING_WITHDRAWAL_PREFIX: "0x02" +BLS_WITHDRAWAL_PREFIX: "0x00" + +# Custody Parameters +NUMBER_OF_COLUMNS: 128 +NUMBER_OF_CUSTODY_GROUPS: 128 +DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128 +SAMPLES_PER_SLOT: 8 +CUSTODY_REQUIREMENT: 4 +FIELD_ELEMENTS_PER_CELL: 64 +FIELD_ELEMENTS_PER_EXT_BLOB: 8192 +KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: 4 + +# Committee Parameters +MAX_COMMITTEES_PER_SLOT: 4 +TARGET_COMMITTEE_SIZE: 4 +MAX_VALIDATORS_PER_COMMITTEE: 2048 +SHUFFLE_ROUND_COUNT: 10 +HYSTERESIS_QUOTIENT: 4 +HYSTERESIS_DOWNWARD_MULTIPLIER: 1 +HYSTERESIS_UPWARD_MULTIPLIER: 5 + +# Misc +MIN_SEED_LOOKAHEAD: 1 +MAX_SEED_LOOKAHEAD: 4 +EPOCHS_PER_ETH1_VOTING_PERIOD: 4 +SLOTS_PER_HISTORICAL_ROOT: 64 +MIN_EPOCHS_TO_INACTIVITY_PENALTY: 4 +EPOCHS_PER_HISTORICAL_VECTOR: 64 +EPOCHS_PER_SLASHINGS_VECTOR: 64 +HISTORICAL_ROOTS_LIMIT: 16777216 +VALIDATOR_REGISTRY_LIMIT: 1099511627776 +GAS_LIMIT_ADJUSTMENT_FACTOR: 1024 + +# Domain Types +DOMAIN_BEACON_PROPOSER: "0x00000000" +DOMAIN_BEACON_ATTESTER: "0x01000000" +DOMAIN_RANDAO: "0x02000000" +DOMAIN_DEPOSIT: "0x03000000" +DOMAIN_VOLUNTARY_EXIT: "0x04000000" +DOMAIN_SELECTION_PROOF: "0x05000000" +DOMAIN_AGGREGATE_AND_PROOF: "0x06000000" +DOMAIN_SYNC_COMMITTEE: "0x07000000" +DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF: "0x08000000" +DOMAIN_CONTRIBUTION_AND_PROOF: "0x09000000" +DOMAIN_APPLICATION_MASK: "0x00000001" +UNSET_DEPOSIT_REQUESTS_START_INDEX: 18446744073709551615 diff --git a/anchor/integration/sim-config/deposit_contract_block.txt b/anchor/integration/sim-config/deposit_contract_block.txt new file mode 100644 index 000000000..c22708346 --- /dev/null +++ b/anchor/integration/sim-config/deposit_contract_block.txt @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/anchor/integration/sim-config/key b/anchor/integration/sim-config/key new file mode 100644 index 000000000..e44e46487 --- /dev/null +++ b/anchor/integration/sim-config/key @@ -0,0 +1 @@ +‘oõ®ô7eéÉs:‹šãÙn1`š¯ƒÓ¿’ÿR¿Š \ No newline at end of file diff --git a/anchor/integration/sim-config/ssv_boot_enr.yaml b/anchor/integration/sim-config/ssv_boot_enr.yaml new file mode 100644 index 000000000..e69de29bb diff --git a/anchor/integration/sim-config/ssv_contract_address.txt b/anchor/integration/sim-config/ssv_contract_address.txt new file mode 100644 index 000000000..fc8a179f6 --- /dev/null +++ b/anchor/integration/sim-config/ssv_contract_address.txt @@ -0,0 +1 @@ +0xBFfF570853d97636b78ebf262af953308924D3D8 \ No newline at end of file diff --git a/anchor/integration/sim-config/ssv_contract_block.txt b/anchor/integration/sim-config/ssv_contract_block.txt new file mode 100644 index 000000000..56a6051ca --- /dev/null +++ b/anchor/integration/sim-config/ssv_contract_block.txt @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/anchor/integration/sim-config/ssv_domain_type.txt b/anchor/integration/sim-config/ssv_domain_type.txt new file mode 100644 index 000000000..85b926674 --- /dev/null +++ b/anchor/integration/sim-config/ssv_domain_type.txt @@ -0,0 +1 @@ +00000038 \ No newline at end of file diff --git a/anchor/integration/src/basic_sim.rs b/anchor/integration/src/basic_sim.rs new file mode 100644 index 000000000..6dad18ca0 --- /dev/null +++ b/anchor/integration/src/basic_sim.rs @@ -0,0 +1,143 @@ +use crate::checks::*; +use crate::local_network::{SsvLocalNetwork, SsvNetworkParams}; +use crate::util::parse_cli; +use clap::ArgMatches; +use environment::tracing_common; +use node_test_rig::{ + environment::{EnvironmentBuilder, LoggerConfig}, + eth2::types::Epoch, +}; +use std::cmp::max; +use std::sync::Arc; +use tokio::time::sleep; +use tracing::info; + +const GENESIS_DELAY: u64 = 32; +pub const ALTAIR_FORK_EPOCH: u64 = 0; +pub const BELLATRIX_FORK_EPOCH: u64 = 0; +pub const CAPELLA_FORK_EPOCH: u64 = 1; +pub const DENEB_FORK_EPOCH: u64 = 2; + +pub struct SimConfig { + pub node_count: usize, + pub proposer_nodes: usize, + pub validators_per_node: usize, + pub speed_up_factor: u64, + pub log_level: String, + pub committee_size: usize, + pub continue_after_checks: bool + +} + +pub struct BasicSim {} + +impl BasicSim { + pub fn run(matches: &ArgMatches) -> Result<(), String> { + let sim_config = parse_cli(matches); + info!("Basic Simulator:"); + println!(" nodes: {}", sim_config.node_count); + println!(" proposer-nodes: {}", sim_config.proposer_nodes); + println!(" validators-per-node: {}", sim_config.validators_per_node); + println!(" speed-up-factor: {}", sim_config.speed_up_factor); + println!(" continue-after-checks: {}", sim_config.continue_after_checks); + + let ( + env_builder, + _filter_layer, + _, + _file_logging_layer, + _stdout_logging_layer, + _, + _logger_config, + _, + ) = tracing_common::construct_logger( + LoggerConfig { + path: None, + debug_level: tracing_common::parse_level(&sim_config.log_level.clone()), + logfile_debug_level: tracing_common::parse_level(&sim_config.log_level.clone()), + log_format: None, + logfile_format: None, + log_color: true, + logfile_color: true, + disable_log_timestamp: false, + max_log_size: 0, + max_log_number: 0, + compression: false, + is_restricted: true, + sse_logging: false, + extra_info: false, + }, + matches, + EnvironmentBuilder::minimal(), + ); + + let mut env = env_builder.multi_threaded_tokio_runtime()?.build()?; + let mut spec = (*env.eth2_config.spec).clone(); + let total_validator_count = sim_config.validators_per_node * sim_config.node_count; + let genesis_delay = GENESIS_DELAY; + spec.seconds_per_slot /= sim_config.speed_up_factor; + spec.seconds_per_slot = max(1, spec.seconds_per_slot); + spec.genesis_delay = genesis_delay; + spec.min_genesis_time = 0; + spec.min_genesis_active_validator_count = total_validator_count as u64; + spec.altair_fork_epoch = Some(Epoch::new(ALTAIR_FORK_EPOCH)); + spec.bellatrix_fork_epoch = Some(Epoch::new(BELLATRIX_FORK_EPOCH)); + spec.capella_fork_epoch = Some(Epoch::new(CAPELLA_FORK_EPOCH)); + spec.deneb_fork_epoch = Some(Epoch::new(DENEB_FORK_EPOCH)); + env.eth2_config.spec = Arc::new(spec); + + // Setup a future that will perform all simulation checks on the network + let main_future = async { + // Create the local_network + let (network, beacon_config, execution_config, anchor_config) = + Box::pin(SsvLocalNetwork::create_local_network( + SsvNetworkParams { + num_validators: sim_config.validators_per_node * sim_config.node_count, + num_nodes: sim_config.node_count, + num_proposers: sim_config.proposer_nodes, + genesis_delay: GENESIS_DELAY, + }, + env.core_context() + )) + .await?; + + // Add beacon + execution node to the network + for _ in 0..sim_config.node_count { + network + .add_beacon_node(beacon_config.clone(), execution_config.clone(), false) + .await?; + } + + // Add operator nodes to the network + for index in 0..(sim_config.committee_size) { + network + .add_anchor_node(index, anchor_config.clone()) + .await?; + } + + // Set all payloads as valid. This effectively assumes the EL is infalliable. + network.execution_nodes.write().expect("Failed to get write lock").iter().for_each(|node| { + node.server.all_payloads_valid(); + }); + + // Sleep until we hit genesis + let duration_to_genesis = network.duration_to_genesis().await?; + info!("Duration to genesis: {}", duration_to_genesis.as_secs()); + sleep(duration_to_genesis).await; + + // Run all checks and verify their success + let test1 = futures::join!(mock_verify()); + test1.0?; + + futures::future::pending::<()>().await; + + Ok::<(), String>(()) + }; + + env.runtime().block_on(main_future).unwrap(); + env.fire_signal(); + env.shutdown_on_idle(); + + Ok(()) + } +} diff --git a/anchor/integration/src/checks.rs b/anchor/integration/src/checks.rs new file mode 100644 index 000000000..498e912aa --- /dev/null +++ b/anchor/integration/src/checks.rs @@ -0,0 +1,6 @@ +// All checks to run on the simulation to ensure that is +// operating in an expected manner + +pub async fn mock_verify() -> Result<(), String> { + Ok(()) +} diff --git a/anchor/integration/src/cli.rs b/anchor/integration/src/cli.rs new file mode 100644 index 000000000..a5a00f816 --- /dev/null +++ b/anchor/integration/src/cli.rs @@ -0,0 +1,67 @@ +use clap::{crate_version, Arg, ArgAction, Command}; + +pub fn cli_app() -> Command { + Command::new("simulator") + .version(crate_version!()) + .author("Sigma Prime ") + .about("Options for interacting with simulator") + .subcommand( + Command::new("basic-sim") + .about("Runs a ssv validator simulation") + .arg( + Arg::new("nodes") + .short('n') + .long("nodes") + .action(ArgAction::Set) + .default_value("4") + .help("Number of beacon nodes"), + ) + .arg( + Arg::new("proposer-nodes") + .short('p') + .long("proposer-nodes") + .action(ArgAction::Set) + .default_value("4") + .help("Number of proposer-only beacon nodes"), + ) + .arg( + Arg::new("validators-per-node") + .short('v') + .long("validators-per-node") + .action(ArgAction::Set) + .default_value("20") + .help("Number of validators"), + ) + .arg( + Arg::new("speed-up-factor") + .short('s') + .long("speed-up-factor") + .action(ArgAction::Set) + .default_value("3") + .help("Speed up factor. Please use a divisor of 12."), + ) + .arg( + Arg::new("committee-size") + .short('c') + .long("committee-size") + .action(ArgAction::Set) + .default_value("4") + .help("The size of committee. Use 4,7,10,13"), + ) + .arg( + Arg::new("debug-level") + .short('d') + .long("debug-level") + .action(ArgAction::Set) + .default_value("debug") + .help("Set the severity level of the logs."), + ) + .arg( + Arg::new("continue-after-checks") + .short('c') + .long("continue_after_checks") + .action(ArgAction::SetTrue) + .help("Continue after checks (default false)"), + ), + ) +} diff --git a/anchor/integration/src/local_anchor_node.rs b/anchor/integration/src/local_anchor_node.rs new file mode 100644 index 000000000..51faac7af --- /dev/null +++ b/anchor/integration/src/local_anchor_node.rs @@ -0,0 +1,70 @@ +use client::config::Config; +use client::Client; +use lighthouse_network::{ListenAddr, ListenAddress}; +use std::path::PathBuf; +use task_executor::TaskExecutor; +use tracing::{info, warn}; + +use network::{DEFAULT_DISC_PORT, DEFAULT_IPV4_ADDRESS, DEFAULT_QUIC_PORT, DEFAULT_TCP_PORT}; + +pub struct LocalAnchorNode { + pub config: Config, +} + +impl LocalAnchorNode { + // Create a new local anchor node + pub fn new(index: u16, mut anchor_config: Config) -> Self { + // Access pre-populated database for the operator + // The data dir for each operator is stored in mock-data/operator-{index} + let data_path = PathBuf::from("mock-data"); + let data_dir = format!("operator-{}", index); + anchor_config.data_dir = data_path.join(data_dir); + + // Configure ports + // subtract index to prevent collision with quic port + // index == 0 defines boot node + let libp2p_tcp_port = DEFAULT_TCP_PORT - index; + let discv5_port = DEFAULT_DISC_PORT - index; + + anchor_config.network.listen_addresses = ListenAddress::V4(ListenAddr { + addr: DEFAULT_IPV4_ADDRESS, + disc_port: discv5_port, + quic_port: DEFAULT_QUIC_PORT + index, + tcp_port: libp2p_tcp_port, + }); + + anchor_config.network.enr_udp4_port = Some(discv5_port.try_into().unwrap()); + anchor_config.network.enr_tcp4_port = Some(libp2p_tcp_port.try_into().unwrap()); + + Self { + config: anchor_config, + } + } + + pub fn _get_enr(&self) -> String { + String::from("") + } + + // Run the anchor node with the given executor + pub fn run(&mut self, executor: TaskExecutor) -> Result<(), String> { + // Clone necessary data for the async task + let config = self.config.clone(); + + let executor_clone = executor.clone(); + executor.spawn( + async move { + match Client::run::(executor_clone, config).await { + Ok(_) => { + info!("Anchor node completed successfully"); + } + Err(e) => { + warn!("Anchor node failed: {}", e); + } + } + }, + "anchor node", + ); + + Ok(()) + } +} diff --git a/anchor/integration/src/local_network.rs b/anchor/integration/src/local_network.rs new file mode 100644 index 000000000..3ecce982f --- /dev/null +++ b/anchor/integration/src/local_network.rs @@ -0,0 +1,330 @@ +use crate::local_anchor_node::LocalAnchorNode; +use crate::basic_sim::{ALTAIR_FORK_EPOCH, BELLATRIX_FORK_EPOCH, CAPELLA_FORK_EPOCH, DENEB_FORK_EPOCH}; +use types::Epoch; +use crate::util::{default_anchor_config, default_client_config, default_mock_execution_config}; +use client::config::Config as AnchorConfig; +use ssv_network_config::SsvNetworkConfig; +use node_test_rig::{ + environment::RuntimeContext, + eth2::{types::EthSpec, BeaconNodeHttpClient, SensitiveUrl as Eth2SensitiveUrl}, + ClientConfig, LocalBeaconNode, LocalExecutionNode, MockExecutionConfig, +}; +use serde_utils::quoted_u64::MaybeQuoted; +use sensitive_url::SensitiveUrl; +use std::ops::Deref; +use std::sync::{Arc, RwLock}; +use std::time::{Duration, SystemTime, UNIX_EPOCH}; + +const BOOTNODE_PORT: u16 = 42424; +const QUIC_PORT: u16 = 43424; +pub const EXECUTION_PORT: u16 = 4000; + +pub struct SsvLocalNetwork { + pub inner: Arc>, +} + +impl Clone for SsvLocalNetwork { + fn clone(&self) -> Self { + Self { + inner: self.inner.clone(), + } + } +} + +impl Deref for SsvLocalNetwork { + type Target = Inner; + + fn deref(&self) -> &Self::Target { + self.inner.deref() + } +} + +pub struct Inner { + pub context: RuntimeContext, + pub beacon_nodes: RwLock>>, + pub proposer_nodes: RwLock>>, + pub execution_nodes: RwLock>>, + pub anchor_nodes: RwLock>, +} + +pub struct SsvNetworkParams { + pub num_validators: usize, + pub num_nodes: usize, + pub num_proposers: usize, + pub genesis_delay: u64, +} + +impl SsvLocalNetwork { + pub async fn create_local_network( + network_params: SsvNetworkParams, + context: RuntimeContext, + ) -> Result< + ( + SsvLocalNetwork, + ClientConfig, + MockExecutionConfig, + AnchorConfig, + ), + String, + > { + let genesis_time: u64 = (SystemTime::now() + .duration_since(UNIX_EPOCH) + .map_err(|_| "should get system time")? + + Duration::from_secs(network_params.genesis_delay)) + .as_secs(); + + let beacon_config = default_client_config(network_params, genesis_time); + let execution_config = + default_mock_execution_config::(&context.eth2_config().spec, genesis_time); + let anchor_config = default_anchor_config(); + + let network = Self { + inner: Arc::new(Inner { + context, + beacon_nodes: RwLock::new(Vec::new()), + proposer_nodes: RwLock::new(Vec::new()), + execution_nodes: RwLock::new(Vec::new()), + anchor_nodes: RwLock::new(Vec::new()), + }), + }; + + Ok((network, beacon_config, execution_config, anchor_config)) + } + + pub async fn add_anchor_node( + &self, + index: usize, + mut anchor_config: AnchorConfig, + ) -> Result<(), String> { + // Make sure we do not sync the database + anchor_config.skip_sync = true; + anchor_config.allow_unsynced_beacon_node = true; + anchor_config.ssv_network = SsvNetworkConfig::load("sim-config".into()).unwrap(); + + //network_config.genesis_fork_version = [0, 0, 0, 1]; + + let mut network_config = anchor_config.ssv_network.eth2_network.config.clone(); + network_config.altair_fork_epoch = Some(MaybeQuoted { value: Epoch::new(ALTAIR_FORK_EPOCH) }); + network_config.bellatrix_fork_epoch = Some(MaybeQuoted { value :Epoch::new(BELLATRIX_FORK_EPOCH) }); + network_config.capella_fork_epoch = Some(MaybeQuoted { value: Epoch::new(CAPELLA_FORK_EPOCH) }); + network_config.deneb_fork_epoch = Some(MaybeQuoted { value: Epoch::new(DENEB_FORK_EPOCH) }); + anchor_config.ssv_network.eth2_network.config = network_config; + + { // scope so read lock is ddropped + let read_lock = self.anchor_nodes.read().expect("Failed to get read lock"); + let _boot_node = read_lock.first(); + // If we have a bootnode, add the enr + + /*if let Some(boot_node) = boot_node { + let enr = Enr::from_str(&boot_node.get_enr()).unwrap(); + anchor_config.network.boot_nodes_enr.push(enr) + }*/ + } + + // Add a beacon node endpoint + let beacon_node = { + let read_lock = self.beacon_nodes.read().expect("Failed to get read lock"); + let beacon_node = read_lock + .get(index) + .ok_or_else(|| format!("No beacon node for index {}", index))?; + let beacon_node = beacon_node + .client + .http_api_listen_addr() + .expect("Must have http started"); + SensitiveUrl::parse( + format!("http://{}:{}", beacon_node.ip(), beacon_node.port()).as_str(), + ) + .unwrap() + }; + anchor_config.beacon_nodes = vec![beacon_node]; + + // Add a execution node endpoint + let execution_addr = + SensitiveUrl::parse(&format!("http://localhost:{}", EXECUTION_PORT)).unwrap(); + anchor_config.execution_nodes.push(execution_addr); + + // Construct and run a new local anchor node + let mut anchor_node = LocalAnchorNode::new(index as u16, anchor_config); + anchor_node.run(self.context.executor.clone())?; + + // Add node to the network + self.anchor_nodes + .write() + .expect("Failed to get write lock") + .push(anchor_node); + + Ok(()) + } + + // Add a new beacon node to the local network + pub async fn add_beacon_node( + &self, + mut beacon_config: ClientConfig, + execution_config: MockExecutionConfig, + is_proposer: bool, + ) -> Result<(), String> { + let first_bn_exists: bool; + { + // Add ENR of the bootnode if it exists + let read_lock = self.beacon_nodes.read().expect("Failed to get read lock"); + let boot_node = read_lock.first(); + first_bn_exists = boot_node.is_some(); + if let Some(boot_node) = boot_node { + // Modify beacon_config to add boot node details. + beacon_config.network.boot_nodes_enr.push( + boot_node + .client + .enr() + .expect("Bootnode must have a network."), + ); + } + } + let (beacon_node, execution_node) = if first_bn_exists { + // Network already exists. We construct a new node. + self.construct_beacon_node(beacon_config, execution_config, is_proposer) + .await? + } else { + // Network does not exist. We construct a boot node. + self.construct_boot_node(beacon_config, execution_config) + .await? + }; + + // Add nodes to the network. + self.execution_nodes + .write() + .expect("Failed to get write lock") + .push(execution_node); + if is_proposer { + self.proposer_nodes + .write() + .expect("Failed to get write lock") + .push(beacon_node); + } else { + self.beacon_nodes + .write() + .expect("Failed to get write lock") + .push(beacon_node); + } + Ok(()) + } + + async fn construct_boot_node( + &self, + mut beacon_config: ClientConfig, + mock_execution_config: MockExecutionConfig, + ) -> Result<(LocalBeaconNode, LocalExecutionNode), String> { + beacon_config.network.set_ipv4_listening_address( + std::net::Ipv4Addr::UNSPECIFIED, + BOOTNODE_PORT, + BOOTNODE_PORT, + QUIC_PORT, + ); + + beacon_config.network.enr_udp4_port = Some(BOOTNODE_PORT.try_into().expect("non zero")); + beacon_config.network.enr_tcp4_port = Some(BOOTNODE_PORT.try_into().expect("non zero")); + beacon_config.network.discv5_config.table_filter = |_| true; + + let execution_node = LocalExecutionNode::new( + self.context.service_context("boot_node_el".into()), + mock_execution_config, + ); + + beacon_config.execution_layer = Some(execution_layer::Config { + execution_endpoint: Some( + Eth2SensitiveUrl::parse(&execution_node.server.url()).unwrap(), + ), + default_datadir: execution_node.datadir.path().to_path_buf(), + secret_file: Some(execution_node.datadir.path().join("jwt.hex")), + ..Default::default() + }); + + let beacon_node = LocalBeaconNode::production( + self.context.service_context("boot_node".into()), + beacon_config, + ) + .await?; + + Ok((beacon_node, execution_node)) + } + + async fn construct_beacon_node( + &self, + mut beacon_config: ClientConfig, + mut mock_execution_config: MockExecutionConfig, + is_proposer: bool, + ) -> Result<(LocalBeaconNode, LocalExecutionNode), String> { + let beacon_node_count = self.beacon_nodes.read().unwrap().len(); + let proposer_node_count = self.proposer_nodes.read().unwrap().len(); + let count = (beacon_node_count + proposer_node_count) as u16; + + // Set config. + let libp2p_tcp_port = BOOTNODE_PORT + count; + let discv5_port = BOOTNODE_PORT + count; + beacon_config.network.set_ipv4_listening_address( + std::net::Ipv4Addr::UNSPECIFIED, + libp2p_tcp_port, + discv5_port, + QUIC_PORT + count, + ); + beacon_config.network.enr_udp4_port = Some(discv5_port.try_into().unwrap()); + beacon_config.network.enr_tcp4_port = Some(libp2p_tcp_port.try_into().unwrap()); + beacon_config.network.discv5_config.table_filter = |_| true; + beacon_config.network.proposer_only = is_proposer; + + mock_execution_config.server_config.listen_port = EXECUTION_PORT + count; + + // Construct execution node. + let execution_node = LocalExecutionNode::new( + self.context.service_context(format!("node_{}_el", count)), + mock_execution_config, + ); + + // Pair the beacon node and execution node. + beacon_config.execution_layer = Some(execution_layer::Config { + execution_endpoint: Some( + Eth2SensitiveUrl::parse(&execution_node.server.url()).unwrap(), + ), + default_datadir: execution_node.datadir.path().to_path_buf(), + secret_file: Some(execution_node.datadir.path().join("jwt.hex")), + ..Default::default() + }); + + // Construct beacon node using the config, + let beacon_node = LocalBeaconNode::production( + self.context.service_context(format!("node_{}", count)), + beacon_config, + ) + .await?; + + Ok((beacon_node, execution_node)) + } + + pub fn remote_nodes(&self) -> Result, String> { + let beacon_nodes = self.beacon_nodes.read().expect("Failed to get read lock"); + let proposer_nodes = self.proposer_nodes.read().expect("Failed to get read lock"); + + beacon_nodes + .iter() + .chain(proposer_nodes.iter()) + .map(|beacon_node| beacon_node.remote_node()) + .collect() + } + + pub async fn duration_to_genesis(&self) -> Result { + let nodes = self.remote_nodes().expect("Failed to get remote nodes"); + let bootnode = nodes.first().expect("Should contain bootnode"); + let now = SystemTime::now().duration_since(UNIX_EPOCH).unwrap(); + let genesis_time = Duration::from_secs( + bootnode + .get_beacon_genesis() + .await + .unwrap() + .data + .genesis_time, + ); + genesis_time.checked_sub(now).ok_or( + "The genesis time has already passed since all nodes started. The node startup time \ + may have regressed, and the current `GENESIS_DELAY` is no longer sufficient.", + ) + } +} diff --git a/anchor/integration/src/main.rs b/anchor/integration/src/main.rs new file mode 100644 index 000000000..ce077caf2 --- /dev/null +++ b/anchor/integration/src/main.rs @@ -0,0 +1,34 @@ +use crate::basic_sim::BasicSim; +use crate::cli::cli_app; +use env_logger::{Builder, Env}; +use tracing::error; + +mod basic_sim; +mod checks; +mod cli; +mod local_anchor_node; +mod local_network; +mod util; + +fn main() -> Result<(), String> { + if std::env::var("RUST_LOG").is_err() { + std::env::set_var( + "RUST_LOG", + "integration=debug,execution=debug,client=debug,beacon_node_fallback=debug", + ); + } + Builder::from_env(Env::default()).init(); + + let matches = cli_app().get_matches(); + match matches.subcommand() { + Some(("basic-sim", matches)) => { + BasicSim::run(matches)?; + } + _ => { + error!("Invalid subcommand. Use --help to see available options"); + std::process::exit(1) + } + } + + Ok(()) +} diff --git a/anchor/integration/src/util.rs b/anchor/integration/src/util.rs new file mode 100644 index 000000000..f3b3bdcc2 --- /dev/null +++ b/anchor/integration/src/util.rs @@ -0,0 +1,135 @@ +use crate::local_network::{SsvNetworkParams, EXECUTION_PORT}; +use clap::ArgMatches; +use crate::basic_sim::SimConfig; +use clap::Parser; +use client::config::Config; +use client::DebugLevel; +use client::Node; +use kzg::trusted_setup::get_trusted_setup; +use node_test_rig::{ + eth2::{types::ChainSpec, types::EthSpec, SensitiveUrl}, + testing_client_config, ClientConfig, ClientGenesis, MockExecutionConfig, MockServerConfig, +}; +use std::net::Ipv4Addr; + +pub fn default_mock_execution_config( + spec: &ChainSpec, + genesis_time: u64, +) -> MockExecutionConfig { + let mut mock_execution_config = MockExecutionConfig { + server_config: MockServerConfig { + listen_port: EXECUTION_PORT, + ..Default::default() + }, + ..Default::default() + }; + + if let Some(capella_fork_epoch) = spec.capella_fork_epoch { + mock_execution_config.shanghai_time = Some( + genesis_time + + spec.seconds_per_slot * E::slots_per_epoch() * capella_fork_epoch.as_u64(), + ) + } + if let Some(deneb_fork_epoch) = spec.deneb_fork_epoch { + mock_execution_config.cancun_time = Some( + genesis_time + spec.seconds_per_slot * E::slots_per_epoch() * deneb_fork_epoch.as_u64(), + ) + } + if let Some(electra_fork_epoch) = spec.electra_fork_epoch { + mock_execution_config.prague_time = Some( + genesis_time + + spec.seconds_per_slot * E::slots_per_epoch() * electra_fork_epoch.as_u64(), + ) + } + + mock_execution_config +} + +// Create a default beaco node config +pub fn default_client_config(network_params: SsvNetworkParams, genesis_time: u64) -> ClientConfig { + let mut beacon_config = testing_client_config(); + + beacon_config.genesis = ClientGenesis::InteropMerge { + validator_count: network_params.num_validators, + genesis_time, + }; + beacon_config.network.target_peers = network_params.num_nodes + network_params.num_proposers; + beacon_config.network.enr_address = (Some(Ipv4Addr::LOCALHOST), None); + beacon_config.network.enable_light_client_server = true; + beacon_config.network.discv5_config.enable_packet_filter = false; + beacon_config.chain.enable_light_client_server = true; + beacon_config.chain.optimistic_finalized_sync = false; + beacon_config.trusted_setup = serde_json::from_reader(get_trusted_setup().as_slice()) + .expect("Trusted setup bytes should be valid"); + + let el_config = execution_layer::Config { + execution_endpoint: Some( + SensitiveUrl::parse(&format!("http://localhost:{}", EXECUTION_PORT)).unwrap(), + ), + ..Default::default() + }; + beacon_config.execution_layer = Some(el_config); + beacon_config +} + +// Create a default anchor operator configuration +pub fn default_anchor_config() -> Config { + let mut node = Node::parse_from::, String>(vec![]); + node.debug_level = DebugLevel::Debug; + client::config::from_cli(&node).unwrap() +} + +// Parse the cli arguments into a simulation config +pub fn parse_cli(matches: &ArgMatches) -> SimConfig { + // Extract out confirguration options + let node_count = matches + .get_one::("nodes") + .expect("missing nodes default") + .parse::() + .expect("missing nodes default"); + let proposer_nodes = matches + .get_one::("proposer-nodes") + .unwrap_or(&String::from("0")) + .parse::() + .unwrap_or(0); + let validators_per_node = matches + .get_one::("validators-per-node") + .expect("missing validators-per-node default") + .parse::() + .expect("missing validators-per-node default"); + let speed_up_factor = matches + .get_one::("speed-up-factor") + .expect("missing speed-up-factor default") + .parse::() + .expect("missing speed-up-factor default"); + let log_level = matches + .get_one::("debug-level") + .expect("missing debug-level"); + let committee_size = matches + .get_one::("committee-size") + .expect("missing committee-size default") + .parse::() + .expect("committee-size must be a number"); + let continue_after_checks = matches.get_flag("continue-after-checks"); + SimConfig { + node_count, + proposer_nodes, + validators_per_node, + speed_up_factor, + log_level: log_level.to_string(), + committee_size, + continue_after_checks + } +} + + + + + + + + + + + + diff --git a/anchor/network/src/lib.rs b/anchor/network/src/lib.rs index 018be65fe..f3dc97fb4 100644 --- a/anchor/network/src/lib.rs +++ b/anchor/network/src/lib.rs @@ -8,7 +8,7 @@ mod keypair_utils; mod network; mod peer_manager; mod transport; -pub use config::Config; +pub use config::{Config, DEFAULT_DISC_PORT, DEFAULT_IPV4_ADDRESS, DEFAULT_QUIC_PORT, DEFAULT_TCP_PORT}; pub use lighthouse_network::{ListenAddr, ListenAddress}; pub use network::Network; diff --git a/anchor/subnet_tracker/Cargo.toml b/anchor/subnet_tracker/Cargo.toml index 26beb5192..adb119c61 100644 --- a/anchor/subnet_tracker/Cargo.toml +++ b/anchor/subnet_tracker/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Sigma Prime "] [dependencies] alloy = { workspace = true } database = { workspace = true } -ethereum_serde_utils = "0.7.0" +ethereum_serde_utils = { workspace = true } serde = { workspace = true } ssv_types = { workspace = true } task_executor = { workspace = true } From 0e0bd343310d67a2ea52242cb6e6b404e69f0c48 Mon Sep 17 00:00:00 2001 From: Zachary Holme Date: Tue, 18 Mar 2025 08:30:42 -0500 Subject: [PATCH 02/52] ci nits --- Cargo.toml | 8 +-- anchor/client/src/config.rs | 4 +- anchor/client/src/lib.rs | 2 +- anchor/eth/src/sync.rs | 5 +- anchor/integration/Cargo.toml | 16 +++--- anchor/integration/src/basic_sim.rs | 21 ++++--- anchor/integration/src/local_network.rs | 29 +++++++--- anchor/integration/src/util.rs | 76 +++++++++++-------------- anchor/network/src/lib.rs | 4 +- 9 files changed, 87 insertions(+), 78 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 2f220ccfb..1e1201d26 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,13 +56,13 @@ ssv_types = { path = "anchor/common/ssv_types" } subnet_tracker = { path = "anchor/subnet_tracker" } version = { path = "anchor/common/version" } -beacon_node_fallback = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} +beacon_node_fallback = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } bls = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } eth2 = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } -eth2_config = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} +eth2_config = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } eth2_network_config = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } health_metrics = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } -lighthouse_network = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} +lighthouse_network = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } metrics = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } safe_arith = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } sensitive_url = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } @@ -75,7 +75,6 @@ validator_metrics = { git = "https://github.com/zacholme7/lighthouse", branch = validator_services = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } validator_store = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } - alloy = { version = "0.12.0", features = [ "sol-types", "transports", @@ -138,7 +137,6 @@ vsss-rs = "5.1.0" zeroize = "1.8.1" ethereum_serde_utils = "0.7.0" - # todo: remove when there is a proper release for peer-store. [patch.'https://github.com/libp2p/rust-libp2p.git'] libp2p-core = "0.43.0" diff --git a/anchor/client/src/config.rs b/anchor/client/src/config.rs index b77416552..1a79a27c1 100644 --- a/anchor/client/src/config.rs +++ b/anchor/client/src/config.rs @@ -55,7 +55,7 @@ pub struct Config { /// Configuration for the processor pub processor: processor::Config, /// If database sync should be skipped - pub skip_sync: bool + pub skip_sync: bool, } impl Config { @@ -98,7 +98,7 @@ impl Config { beacon_nodes_tls_certs: None, execution_nodes_tls_certs: None, processor: <_>::default(), - skip_sync: false + skip_sync: false, } } } diff --git a/anchor/client/src/lib.rs b/anchor/client/src/lib.rs index 1ece428fa..9377b1a5b 100644 --- a/anchor/client/src/lib.rs +++ b/anchor/client/src/lib.rs @@ -8,8 +8,8 @@ use anchor_validator_store::AnchorValidatorStore; use beacon_node_fallback::{ start_fallback_updater_service, ApiTopic, BeaconNodeFallback, CandidateBeaconNode, }; -pub use cli::Node; pub use cli::DebugLevel; +pub use cli::Node; use config::Config; use database::NetworkDatabase; use eth2::reqwest::{Certificate, ClientBuilder}; diff --git a/anchor/eth/src/sync.rs b/anchor/eth/src/sync.rs index 542ce56a0..eef25170a 100644 --- a/anchor/eth/src/sync.rs +++ b/anchor/eth/src/sync.rs @@ -208,7 +208,10 @@ impl SsvEventSyncer { deployment_block, "Using contract configuration" ); loop { - match self.try_sync(contract_address, deployment_block, skip).await { + match self + .try_sync(contract_address, deployment_block, skip) + .await + { Ok(_) => unreachable!("Sync should never finish successfully"), Err(e) => { error!(?e, "Sync failed, attempting recovery"); diff --git a/anchor/integration/Cargo.toml b/anchor/integration/Cargo.toml index c02cee68b..8992b96fe 100644 --- a/anchor/integration/Cargo.toml +++ b/anchor/integration/Cargo.toml @@ -9,19 +9,19 @@ client = { workspace = true } discv5 = { workspace = true } env_logger = "0.11.6" -environment = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} -execution_layer = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} -kzg = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} -logging = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} -node_test_rig = { git = "https://github.com/zacholme7/lighthouse" , branch = "anchor"} - -sensitive_url = { workspace = true } +environment = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } ethereum_serde_utils = { workspace = true } -ssv_network_config = { workspace = true } +execution_layer = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } futures = { workspace = true } +kzg = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } lighthouse_network = { workspace = true } +logging = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } network = { workspace = true } +node_test_rig = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } + +sensitive_url = { workspace = true } serde_json = { workspace = true } +ssv_network_config = { workspace = true } task_executor = { workspace = true } tokio = { workspace = true } tracing = { workspace = true } diff --git a/anchor/integration/src/basic_sim.rs b/anchor/integration/src/basic_sim.rs index 6dad18ca0..e4d5d7f5e 100644 --- a/anchor/integration/src/basic_sim.rs +++ b/anchor/integration/src/basic_sim.rs @@ -25,8 +25,7 @@ pub struct SimConfig { pub speed_up_factor: u64, pub log_level: String, pub committee_size: usize, - pub continue_after_checks: bool - + pub continue_after_checks: bool, } pub struct BasicSim {} @@ -39,7 +38,10 @@ impl BasicSim { println!(" proposer-nodes: {}", sim_config.proposer_nodes); println!(" validators-per-node: {}", sim_config.validators_per_node); println!(" speed-up-factor: {}", sim_config.speed_up_factor); - println!(" continue-after-checks: {}", sim_config.continue_after_checks); + println!( + " continue-after-checks: {}", + sim_config.continue_after_checks + ); let ( env_builder, @@ -97,7 +99,7 @@ impl BasicSim { num_proposers: sim_config.proposer_nodes, genesis_delay: GENESIS_DELAY, }, - env.core_context() + env.core_context(), )) .await?; @@ -116,9 +118,14 @@ impl BasicSim { } // Set all payloads as valid. This effectively assumes the EL is infalliable. - network.execution_nodes.write().expect("Failed to get write lock").iter().for_each(|node| { - node.server.all_payloads_valid(); - }); + network + .execution_nodes + .write() + .expect("Failed to get write lock") + .iter() + .for_each(|node| { + node.server.all_payloads_valid(); + }); // Sleep until we hit genesis let duration_to_genesis = network.duration_to_genesis().await?; diff --git a/anchor/integration/src/local_network.rs b/anchor/integration/src/local_network.rs index 3ecce982f..dbdd9f1a5 100644 --- a/anchor/integration/src/local_network.rs +++ b/anchor/integration/src/local_network.rs @@ -1,19 +1,21 @@ +use crate::basic_sim::{ + ALTAIR_FORK_EPOCH, BELLATRIX_FORK_EPOCH, CAPELLA_FORK_EPOCH, DENEB_FORK_EPOCH, +}; use crate::local_anchor_node::LocalAnchorNode; -use crate::basic_sim::{ALTAIR_FORK_EPOCH, BELLATRIX_FORK_EPOCH, CAPELLA_FORK_EPOCH, DENEB_FORK_EPOCH}; -use types::Epoch; use crate::util::{default_anchor_config, default_client_config, default_mock_execution_config}; use client::config::Config as AnchorConfig; -use ssv_network_config::SsvNetworkConfig; use node_test_rig::{ environment::RuntimeContext, eth2::{types::EthSpec, BeaconNodeHttpClient, SensitiveUrl as Eth2SensitiveUrl}, ClientConfig, LocalBeaconNode, LocalExecutionNode, MockExecutionConfig, }; -use serde_utils::quoted_u64::MaybeQuoted; use sensitive_url::SensitiveUrl; +use serde_utils::quoted_u64::MaybeQuoted; +use ssv_network_config::SsvNetworkConfig; use std::ops::Deref; use std::sync::{Arc, RwLock}; use std::time::{Duration, SystemTime, UNIX_EPOCH}; +use types::Epoch; const BOOTNODE_PORT: u16 = 42424; const QUIC_PORT: u16 = 43424; @@ -104,13 +106,22 @@ impl SsvLocalNetwork { //network_config.genesis_fork_version = [0, 0, 0, 1]; let mut network_config = anchor_config.ssv_network.eth2_network.config.clone(); - network_config.altair_fork_epoch = Some(MaybeQuoted { value: Epoch::new(ALTAIR_FORK_EPOCH) }); - network_config.bellatrix_fork_epoch = Some(MaybeQuoted { value :Epoch::new(BELLATRIX_FORK_EPOCH) }); - network_config.capella_fork_epoch = Some(MaybeQuoted { value: Epoch::new(CAPELLA_FORK_EPOCH) }); - network_config.deneb_fork_epoch = Some(MaybeQuoted { value: Epoch::new(DENEB_FORK_EPOCH) }); + network_config.altair_fork_epoch = Some(MaybeQuoted { + value: Epoch::new(ALTAIR_FORK_EPOCH), + }); + network_config.bellatrix_fork_epoch = Some(MaybeQuoted { + value: Epoch::new(BELLATRIX_FORK_EPOCH), + }); + network_config.capella_fork_epoch = Some(MaybeQuoted { + value: Epoch::new(CAPELLA_FORK_EPOCH), + }); + network_config.deneb_fork_epoch = Some(MaybeQuoted { + value: Epoch::new(DENEB_FORK_EPOCH), + }); anchor_config.ssv_network.eth2_network.config = network_config; - { // scope so read lock is ddropped + { + // scope so read lock is ddropped let read_lock = self.anchor_nodes.read().expect("Failed to get read lock"); let _boot_node = read_lock.first(); // If we have a bootnode, add the enr diff --git a/anchor/integration/src/util.rs b/anchor/integration/src/util.rs index f3b3bdcc2..e606b0333 100644 --- a/anchor/integration/src/util.rs +++ b/anchor/integration/src/util.rs @@ -1,6 +1,6 @@ +use crate::basic_sim::SimConfig; use crate::local_network::{SsvNetworkParams, EXECUTION_PORT}; use clap::ArgMatches; -use crate::basic_sim::SimConfig; use clap::Parser; use client::config::Config; use client::DebugLevel; @@ -81,36 +81,36 @@ pub fn default_anchor_config() -> Config { // Parse the cli arguments into a simulation config pub fn parse_cli(matches: &ArgMatches) -> SimConfig { - // Extract out confirguration options - let node_count = matches - .get_one::("nodes") - .expect("missing nodes default") - .parse::() - .expect("missing nodes default"); - let proposer_nodes = matches - .get_one::("proposer-nodes") - .unwrap_or(&String::from("0")) - .parse::() - .unwrap_or(0); - let validators_per_node = matches - .get_one::("validators-per-node") - .expect("missing validators-per-node default") - .parse::() - .expect("missing validators-per-node default"); - let speed_up_factor = matches - .get_one::("speed-up-factor") - .expect("missing speed-up-factor default") - .parse::() - .expect("missing speed-up-factor default"); - let log_level = matches - .get_one::("debug-level") - .expect("missing debug-level"); - let committee_size = matches - .get_one::("committee-size") - .expect("missing committee-size default") - .parse::() - .expect("committee-size must be a number"); - let continue_after_checks = matches.get_flag("continue-after-checks"); + // Extract out confirguration options + let node_count = matches + .get_one::("nodes") + .expect("missing nodes default") + .parse::() + .expect("missing nodes default"); + let proposer_nodes = matches + .get_one::("proposer-nodes") + .unwrap_or(&String::from("0")) + .parse::() + .unwrap_or(0); + let validators_per_node = matches + .get_one::("validators-per-node") + .expect("missing validators-per-node default") + .parse::() + .expect("missing validators-per-node default"); + let speed_up_factor = matches + .get_one::("speed-up-factor") + .expect("missing speed-up-factor default") + .parse::() + .expect("missing speed-up-factor default"); + let log_level = matches + .get_one::("debug-level") + .expect("missing debug-level"); + let committee_size = matches + .get_one::("committee-size") + .expect("missing committee-size default") + .parse::() + .expect("committee-size must be a number"); + let continue_after_checks = matches.get_flag("continue-after-checks"); SimConfig { node_count, proposer_nodes, @@ -118,18 +118,6 @@ pub fn parse_cli(matches: &ArgMatches) -> SimConfig { speed_up_factor, log_level: log_level.to_string(), committee_size, - continue_after_checks + continue_after_checks, } } - - - - - - - - - - - - diff --git a/anchor/network/src/lib.rs b/anchor/network/src/lib.rs index f3dc97fb4..77c4fab16 100644 --- a/anchor/network/src/lib.rs +++ b/anchor/network/src/lib.rs @@ -8,7 +8,9 @@ mod keypair_utils; mod network; mod peer_manager; mod transport; -pub use config::{Config, DEFAULT_DISC_PORT, DEFAULT_IPV4_ADDRESS, DEFAULT_QUIC_PORT, DEFAULT_TCP_PORT}; +pub use config::{ + Config, DEFAULT_DISC_PORT, DEFAULT_IPV4_ADDRESS, DEFAULT_QUIC_PORT, DEFAULT_TCP_PORT, +}; pub use lighthouse_network::{ListenAddr, ListenAddress}; pub use network::Network; From 58601e3f082302ba54a1ea96b0f456684ed3e062 Mon Sep 17 00:00:00 2001 From: Zachary Holme Date: Tue, 18 Mar 2025 08:42:30 -0500 Subject: [PATCH 03/52] move anchor config --- anchor/integration/src/local_network.rs | 30 +------------------------ anchor/integration/src/util.rs | 29 +++++++++++++++++++++++- 2 files changed, 29 insertions(+), 30 deletions(-) diff --git a/anchor/integration/src/local_network.rs b/anchor/integration/src/local_network.rs index dbdd9f1a5..8b1feea92 100644 --- a/anchor/integration/src/local_network.rs +++ b/anchor/integration/src/local_network.rs @@ -1,6 +1,3 @@ -use crate::basic_sim::{ - ALTAIR_FORK_EPOCH, BELLATRIX_FORK_EPOCH, CAPELLA_FORK_EPOCH, DENEB_FORK_EPOCH, -}; use crate::local_anchor_node::LocalAnchorNode; use crate::util::{default_anchor_config, default_client_config, default_mock_execution_config}; use client::config::Config as AnchorConfig; @@ -10,12 +7,9 @@ use node_test_rig::{ ClientConfig, LocalBeaconNode, LocalExecutionNode, MockExecutionConfig, }; use sensitive_url::SensitiveUrl; -use serde_utils::quoted_u64::MaybeQuoted; -use ssv_network_config::SsvNetworkConfig; use std::ops::Deref; use std::sync::{Arc, RwLock}; use std::time::{Duration, SystemTime, UNIX_EPOCH}; -use types::Epoch; const BOOTNODE_PORT: u16 = 42424; const QUIC_PORT: u16 = 43424; @@ -98,30 +92,8 @@ impl SsvLocalNetwork { index: usize, mut anchor_config: AnchorConfig, ) -> Result<(), String> { - // Make sure we do not sync the database - anchor_config.skip_sync = true; - anchor_config.allow_unsynced_beacon_node = true; - anchor_config.ssv_network = SsvNetworkConfig::load("sim-config".into()).unwrap(); - - //network_config.genesis_fork_version = [0, 0, 0, 1]; - - let mut network_config = anchor_config.ssv_network.eth2_network.config.clone(); - network_config.altair_fork_epoch = Some(MaybeQuoted { - value: Epoch::new(ALTAIR_FORK_EPOCH), - }); - network_config.bellatrix_fork_epoch = Some(MaybeQuoted { - value: Epoch::new(BELLATRIX_FORK_EPOCH), - }); - network_config.capella_fork_epoch = Some(MaybeQuoted { - value: Epoch::new(CAPELLA_FORK_EPOCH), - }); - network_config.deneb_fork_epoch = Some(MaybeQuoted { - value: Epoch::new(DENEB_FORK_EPOCH), - }); - anchor_config.ssv_network.eth2_network.config = network_config; - { - // scope so read lock is ddropped + // Add ENR of bootnode let read_lock = self.anchor_nodes.read().expect("Failed to get read lock"); let _boot_node = read_lock.first(); // If we have a bootnode, add the enr diff --git a/anchor/integration/src/util.rs b/anchor/integration/src/util.rs index e606b0333..ab7c5a0a9 100644 --- a/anchor/integration/src/util.rs +++ b/anchor/integration/src/util.rs @@ -1,4 +1,7 @@ use crate::basic_sim::SimConfig; +use crate::basic_sim::{ + ALTAIR_FORK_EPOCH, BELLATRIX_FORK_EPOCH, CAPELLA_FORK_EPOCH, DENEB_FORK_EPOCH, +}; use crate::local_network::{SsvNetworkParams, EXECUTION_PORT}; use clap::ArgMatches; use clap::Parser; @@ -10,7 +13,9 @@ use node_test_rig::{ eth2::{types::ChainSpec, types::EthSpec, SensitiveUrl}, testing_client_config, ClientConfig, ClientGenesis, MockExecutionConfig, MockServerConfig, }; +use serde_utils::quoted_u64::MaybeQuoted; use std::net::Ipv4Addr; +use types::Epoch; pub fn default_mock_execution_config( spec: &ChainSpec, @@ -76,7 +81,29 @@ pub fn default_client_config(network_params: SsvNetworkParams, genesis_time: u64 pub fn default_anchor_config() -> Config { let mut node = Node::parse_from::, String>(vec![]); node.debug_level = DebugLevel::Debug; - client::config::from_cli(&node).unwrap() + + let mut anchor_config = client::config::from_cli(&node).unwrap(); + + //anchor_config.ssv_network = SsvNetworkConfig::load("sim-config".into()).unwrap(); + //network_config.genesis_fork_version = [0, 0, 0, 1]; + anchor_config.skip_sync = true; + + let mut network_config = anchor_config.ssv_network.eth2_network.config.clone(); + network_config.altair_fork_epoch = Some(MaybeQuoted { + value: Epoch::new(ALTAIR_FORK_EPOCH), + }); + network_config.bellatrix_fork_epoch = Some(MaybeQuoted { + value: Epoch::new(BELLATRIX_FORK_EPOCH), + }); + network_config.capella_fork_epoch = Some(MaybeQuoted { + value: Epoch::new(CAPELLA_FORK_EPOCH), + }); + network_config.deneb_fork_epoch = Some(MaybeQuoted { + value: Epoch::new(DENEB_FORK_EPOCH), + }); + anchor_config.ssv_network.eth2_network.config = network_config; + + anchor_config } // Parse the cli arguments into a simulation config From a855236dfda1d6deb2f545f5c8d8705e1eb79cb0 Mon Sep 17 00:00:00 2001 From: Zachary Holme Date: Tue, 18 Mar 2025 09:48:14 -0500 Subject: [PATCH 04/52] mainnet spec --- anchor/integration/sim-config/config.yaml | 193 ------------------ .../sim-config/deposit_contract_block.txt | 1 - anchor/integration/sim-config/key | 1 - .../integration/sim-config/ssv_boot_enr.yaml | 0 .../sim-config/ssv_contract_address.txt | 1 - .../sim-config/ssv_contract_block.txt | 1 - .../sim-config/ssv_domain_type.txt | 1 - anchor/integration/src/basic_sim.rs | 12 +- anchor/integration/src/cli.rs | 2 +- anchor/integration/src/local_anchor_node.rs | 2 +- anchor/integration/src/local_network.rs | 1 + anchor/integration/src/util.rs | 4 +- 12 files changed, 11 insertions(+), 208 deletions(-) delete mode 100644 anchor/integration/sim-config/config.yaml delete mode 100644 anchor/integration/sim-config/deposit_contract_block.txt delete mode 100644 anchor/integration/sim-config/key delete mode 100644 anchor/integration/sim-config/ssv_boot_enr.yaml delete mode 100644 anchor/integration/sim-config/ssv_contract_address.txt delete mode 100644 anchor/integration/sim-config/ssv_contract_block.txt delete mode 100644 anchor/integration/sim-config/ssv_domain_type.txt diff --git a/anchor/integration/sim-config/config.yaml b/anchor/integration/sim-config/config.yaml deleted file mode 100644 index 843df2b63..000000000 --- a/anchor/integration/sim-config/config.yaml +++ /dev/null @@ -1,193 +0,0 @@ -# Testnet Configuration - -# Network Configuration -CONFIG_NAME: testnet -PRESET_BASE: minimal - -# Genesis Parameters -MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 64 -MIN_GENESIS_TIME: 1741039586 -GENESIS_FORK_VERSION: "0x10000038" -GENESIS_DELAY: 0 - -# Fork Schedule -ALTAIR_FORK_VERSION: "0x20000038" -ALTAIR_FORK_EPOCH: 0 -BELLATRIX_FORK_VERSION: "0x30000038" -BELLATRIX_FORK_EPOCH: 0 -CAPELLA_FORK_VERSION: "0x40000038" -CAPELLA_FORK_EPOCH: 0 -DENEB_FORK_VERSION: "0x50000038" -DENEB_FORK_EPOCH: 0 -ELECTRA_FORK_VERSION: "0x60000038" -ELECTRA_FORK_EPOCH: 999999 -FULU_FORK_VERSION: "0x70000038" -FULU_FORK_EPOCH: 100000001 - -# Time Parameters -SECONDS_PER_SLOT: 6 -SECONDS_PER_ETH1_BLOCK: 6 -SLOTS_PER_EPOCH: 8 - -# Validator Parameters -MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256 -SHARD_COMMITTEE_PERIOD: 64 -ETH1_FOLLOW_DISTANCE: 16 -EJECTION_BALANCE: 16000000000 -MIN_PER_EPOCH_CHURN_LIMIT: 2 -MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT: 4 -CHURN_LIMIT_QUOTIENT: 32 -MIN_ACTIVATION_BALANCE: 32000000000 -MAX_EFFECTIVE_BALANCE: 32000000000 -EFFECTIVE_BALANCE_INCREMENT: 1000000000 - -# Deposit Contract -DEPOSIT_CHAIN_ID: 3151908 -DEPOSIT_NETWORK_ID: 3151908 -DEPOSIT_CONTRACT_ADDRESS: "0x4242424242424242424242424242424242424242" - -# Terminal Conditions -TERMINAL_TOTAL_DIFFICULTY: "0" -TERMINAL_BLOCK_HASH: "0x0000000000000000000000000000000000000000000000000000000000000000" -TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH: 18446744073709551615 - -# Gwei Values -MIN_DEPOSIT_AMOUNT: 1000000000 -MAX_EFFECTIVE_BALANCE: 32000000000 -EFFECTIVE_BALANCE_INCREMENT: 1000000000 - -# Initial Values -INACTIVITY_SCORE_BIAS: 4 -INACTIVITY_SCORE_RECOVERY_RATE: 16 -PROPOSER_SCORE_BOOST: 40 - -# Rewards and Penalties -BASE_REWARD_FACTOR: 64 -WHISTLEBLOWER_REWARD_QUOTIENT: 512 -PROPOSER_REWARD_QUOTIENT: 8 -INACTIVITY_PENALTY_QUOTIENT: 33554432 -MIN_SLASHING_PENALTY_QUOTIENT: 64 -PROPORTIONAL_SLASHING_MULTIPLIER: 2 -INACTIVITY_PENALTY_QUOTIENT_ALTAIR: 50331648 -MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: 64 -PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: 2 -INACTIVITY_PENALTY_QUOTIENT_BELLATRIX: 16777216 -MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX: 32 -PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX: 3 - -# State List Lengths -MAX_PROPOSER_SLASHINGS: 16 -MAX_ATTESTER_SLASHINGS: 2 -MAX_ATTESTATIONS: 128 -MAX_DEPOSITS: 16 -MAX_VOLUNTARY_EXITS: 16 - -# Sync Committee -SYNC_COMMITTEE_SIZE: 32 -EPOCHS_PER_SYNC_COMMITTEE_PERIOD: 8 -MIN_SYNC_COMMITTEE_PARTICIPANTS: 1 -SYNC_COMMITTEE_SUBNET_COUNT: 4 -TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE: 16 - -# Execution Layer -MAX_BYTES_PER_TRANSACTION: 1073741824 -MAX_TRANSACTIONS_PER_PAYLOAD: 1048576 -BYTES_PER_LOGS_BLOOM: 256 -MAX_EXTRA_DATA_BYTES: 32 -MAX_BLS_TO_EXECUTION_CHANGES: 16 -MAX_WITHDRAWALS_PER_PAYLOAD: 4 -MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP: 16 - -# Networking -SUBNETS_PER_NODE: 2 -ATTESTATION_SUBNET_PREFIX_BITS: 6 -ATTESTATION_PROPAGATION_SLOT_RANGE: 32 -MAXIMUM_GOSSIP_CLOCK_DISPARITY_MILLIS: 500 -GOSSIP_MAX_SIZE: 10485760 -MAX_REQUEST_BLOCKS: 1024 -MIN_EPOCHS_FOR_BLOCK_REQUESTS: 272 -MAX_CHUNK_SIZE: 10485760 -TTFB_TIMEOUT: 5 -RESP_TIMEOUT: 10 -MESSAGE_DOMAIN_INVALID_SNAPPY: "0x00000000" -MESSAGE_DOMAIN_VALID_SNAPPY: "0x01000000" - -# Deneb Parameters -MAX_REQUEST_BLOCKS_DENEB: 128 -MAX_REQUEST_BLOB_SIDECARS: 768 -MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384 -MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096 -BLOB_SIDECAR_SUBNET_COUNT: 6 -MAX_BLOBS_PER_BLOCK: 6 -FIELD_ELEMENTS_PER_BLOB: 4096 -VERSIONED_HASH_VERSION_KZG: 1 - -# Electra Parameters -MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: 64000000000 -MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT: 128000000000 -MAX_BLOBS_PER_BLOCK_ELECTRA: 9 -BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 9 -MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152 -MAX_EFFECTIVE_BALANCE_ELECTRA: 2048000000000 -MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA: 4096 -WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA: 4096 -MAX_ATTESTER_SLASHINGS_ELECTRA: 1 -MAX_ATTESTATIONS_ELECTRA: 8 - -# Withdrawal Parameters -MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP: 2 -PENDING_DEPOSITS_LIMIT: 134217728 -PENDING_PARTIAL_WITHDRAWALS_LIMIT: 64 -PENDING_CONSOLIDATIONS_LIMIT: 64 -MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD: 2 -MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: 4 -MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: 2 -FULL_EXIT_REQUEST_AMOUNT: 0 -ETH1_ADDRESS_WITHDRAWAL_PREFIX: "0x01" -COMPOUNDING_WITHDRAWAL_PREFIX: "0x02" -BLS_WITHDRAWAL_PREFIX: "0x00" - -# Custody Parameters -NUMBER_OF_COLUMNS: 128 -NUMBER_OF_CUSTODY_GROUPS: 128 -DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128 -SAMPLES_PER_SLOT: 8 -CUSTODY_REQUIREMENT: 4 -FIELD_ELEMENTS_PER_CELL: 64 -FIELD_ELEMENTS_PER_EXT_BLOB: 8192 -KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: 4 - -# Committee Parameters -MAX_COMMITTEES_PER_SLOT: 4 -TARGET_COMMITTEE_SIZE: 4 -MAX_VALIDATORS_PER_COMMITTEE: 2048 -SHUFFLE_ROUND_COUNT: 10 -HYSTERESIS_QUOTIENT: 4 -HYSTERESIS_DOWNWARD_MULTIPLIER: 1 -HYSTERESIS_UPWARD_MULTIPLIER: 5 - -# Misc -MIN_SEED_LOOKAHEAD: 1 -MAX_SEED_LOOKAHEAD: 4 -EPOCHS_PER_ETH1_VOTING_PERIOD: 4 -SLOTS_PER_HISTORICAL_ROOT: 64 -MIN_EPOCHS_TO_INACTIVITY_PENALTY: 4 -EPOCHS_PER_HISTORICAL_VECTOR: 64 -EPOCHS_PER_SLASHINGS_VECTOR: 64 -HISTORICAL_ROOTS_LIMIT: 16777216 -VALIDATOR_REGISTRY_LIMIT: 1099511627776 -GAS_LIMIT_ADJUSTMENT_FACTOR: 1024 - -# Domain Types -DOMAIN_BEACON_PROPOSER: "0x00000000" -DOMAIN_BEACON_ATTESTER: "0x01000000" -DOMAIN_RANDAO: "0x02000000" -DOMAIN_DEPOSIT: "0x03000000" -DOMAIN_VOLUNTARY_EXIT: "0x04000000" -DOMAIN_SELECTION_PROOF: "0x05000000" -DOMAIN_AGGREGATE_AND_PROOF: "0x06000000" -DOMAIN_SYNC_COMMITTEE: "0x07000000" -DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF: "0x08000000" -DOMAIN_CONTRIBUTION_AND_PROOF: "0x09000000" -DOMAIN_APPLICATION_MASK: "0x00000001" -UNSET_DEPOSIT_REQUESTS_START_INDEX: 18446744073709551615 diff --git a/anchor/integration/sim-config/deposit_contract_block.txt b/anchor/integration/sim-config/deposit_contract_block.txt deleted file mode 100644 index c22708346..000000000 --- a/anchor/integration/sim-config/deposit_contract_block.txt +++ /dev/null @@ -1 +0,0 @@ -0 \ No newline at end of file diff --git a/anchor/integration/sim-config/key b/anchor/integration/sim-config/key deleted file mode 100644 index e44e46487..000000000 --- a/anchor/integration/sim-config/key +++ /dev/null @@ -1 +0,0 @@ -‘oõ®ô7eéÉs:‹šãÙn1`š¯ƒÓ¿’ÿR¿Š \ No newline at end of file diff --git a/anchor/integration/sim-config/ssv_boot_enr.yaml b/anchor/integration/sim-config/ssv_boot_enr.yaml deleted file mode 100644 index e69de29bb..000000000 diff --git a/anchor/integration/sim-config/ssv_contract_address.txt b/anchor/integration/sim-config/ssv_contract_address.txt deleted file mode 100644 index fc8a179f6..000000000 --- a/anchor/integration/sim-config/ssv_contract_address.txt +++ /dev/null @@ -1 +0,0 @@ -0xBFfF570853d97636b78ebf262af953308924D3D8 \ No newline at end of file diff --git a/anchor/integration/sim-config/ssv_contract_block.txt b/anchor/integration/sim-config/ssv_contract_block.txt deleted file mode 100644 index 56a6051ca..000000000 --- a/anchor/integration/sim-config/ssv_contract_block.txt +++ /dev/null @@ -1 +0,0 @@ -1 \ No newline at end of file diff --git a/anchor/integration/sim-config/ssv_domain_type.txt b/anchor/integration/sim-config/ssv_domain_type.txt deleted file mode 100644 index 85b926674..000000000 --- a/anchor/integration/sim-config/ssv_domain_type.txt +++ /dev/null @@ -1 +0,0 @@ -00000038 \ No newline at end of file diff --git a/anchor/integration/src/basic_sim.rs b/anchor/integration/src/basic_sim.rs index e4d5d7f5e..6cc73cdc6 100644 --- a/anchor/integration/src/basic_sim.rs +++ b/anchor/integration/src/basic_sim.rs @@ -34,11 +34,11 @@ impl BasicSim { pub fn run(matches: &ArgMatches) -> Result<(), String> { let sim_config = parse_cli(matches); info!("Basic Simulator:"); - println!(" nodes: {}", sim_config.node_count); - println!(" proposer-nodes: {}", sim_config.proposer_nodes); - println!(" validators-per-node: {}", sim_config.validators_per_node); - println!(" speed-up-factor: {}", sim_config.speed_up_factor); - println!( + info!(" nodes: {}", sim_config.node_count); + info!(" proposer-nodes: {}", sim_config.proposer_nodes); + info!(" validators-per-node: {}", sim_config.validators_per_node); + info!(" speed-up-factor: {}", sim_config.speed_up_factor); + info!( " continue-after-checks: {}", sim_config.continue_after_checks ); @@ -70,7 +70,7 @@ impl BasicSim { extra_info: false, }, matches, - EnvironmentBuilder::minimal(), + EnvironmentBuilder::mainnet(), ); let mut env = env_builder.multi_threaded_tokio_runtime()?.build()?; diff --git a/anchor/integration/src/cli.rs b/anchor/integration/src/cli.rs index a5a00f816..42618d54b 100644 --- a/anchor/integration/src/cli.rs +++ b/anchor/integration/src/cli.rs @@ -42,7 +42,7 @@ pub fn cli_app() -> Command { ) .arg( Arg::new("committee-size") - .short('c') + .short('m') .long("committee-size") .action(ArgAction::Set) .default_value("4") diff --git a/anchor/integration/src/local_anchor_node.rs b/anchor/integration/src/local_anchor_node.rs index 51faac7af..63dd02613 100644 --- a/anchor/integration/src/local_anchor_node.rs +++ b/anchor/integration/src/local_anchor_node.rs @@ -53,7 +53,7 @@ impl LocalAnchorNode { let executor_clone = executor.clone(); executor.spawn( async move { - match Client::run::(executor_clone, config).await { + match Client::run::(executor_clone, config).await { Ok(_) => { info!("Anchor node completed successfully"); } diff --git a/anchor/integration/src/local_network.rs b/anchor/integration/src/local_network.rs index 8b1feea92..01f8b4d7a 100644 --- a/anchor/integration/src/local_network.rs +++ b/anchor/integration/src/local_network.rs @@ -220,6 +220,7 @@ impl SsvLocalNetwork { secret_file: Some(execution_node.datadir.path().join("jwt.hex")), ..Default::default() }); + println!("{:?}", beacon_config); let beacon_node = LocalBeaconNode::production( self.context.service_context("boot_node".into()), diff --git a/anchor/integration/src/util.rs b/anchor/integration/src/util.rs index ab7c5a0a9..d32700a50 100644 --- a/anchor/integration/src/util.rs +++ b/anchor/integration/src/util.rs @@ -5,6 +5,7 @@ use crate::basic_sim::{ use crate::local_network::{SsvNetworkParams, EXECUTION_PORT}; use clap::ArgMatches; use clap::Parser; +use ssv_network_config::SsvNetworkConfig; use client::config::Config; use client::DebugLevel; use client::Node; @@ -84,8 +85,7 @@ pub fn default_anchor_config() -> Config { let mut anchor_config = client::config::from_cli(&node).unwrap(); - //anchor_config.ssv_network = SsvNetworkConfig::load("sim-config".into()).unwrap(); - //network_config.genesis_fork_version = [0, 0, 0, 1]; + anchor_config.ssv_network = SsvNetworkConfig::constant("mainnet").unwrap().unwrap(); anchor_config.skip_sync = true; let mut network_config = anchor_config.ssv_network.eth2_network.config.clone(); From f34ad41f14bf2fd0f2049fc82d6c8929223acb32 Mon Sep 17 00:00:00 2001 From: Zachary Holme Date: Tue, 18 Mar 2025 10:48:33 -0500 Subject: [PATCH 05/52] mock websocket --- Cargo.lock | 58 +++++++++++++++++++++++- Cargo.toml | 2 +- anchor/integration/Cargo.toml | 3 ++ anchor/integration/src/basic_sim.rs | 10 +++- anchor/integration/src/local_network.rs | 10 ++-- anchor/integration/src/main.rs | 1 + anchor/integration/src/mock_websocket.rs | 39 ++++++++++++++++ anchor/integration/src/util.rs | 2 +- 8 files changed, 117 insertions(+), 8 deletions(-) create mode 100644 anchor/integration/src/mock_websocket.rs diff --git a/Cargo.lock b/Cargo.lock index 272d82b7c..6fd680028 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -751,7 +751,7 @@ dependencies = [ "rustls 0.23.23", "serde_json", "tokio", - "tokio-tungstenite", + "tokio-tungstenite 0.26.2", "tracing", "ws_stream_wasm", ] @@ -5171,6 +5171,7 @@ dependencies = [ "ethereum_serde_utils", "execution_layer", "futures", + "futures-util", "kzg", "lighthouse_network", "logging", @@ -5181,9 +5182,11 @@ dependencies = [ "ssv_network_config", "task_executor", "tokio", + "tokio-tungstenite 0.26.2", "tracing", "tracing-subscriber", "types", + "warp", ] [[package]] @@ -6560,6 +6563,24 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fafa6961cabd9c63bcd77a45d7e3b7f3b552b70417831fb0f56db717e72407e" +[[package]] +name = "multer" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" +dependencies = [ + "bytes", + "encoding_rs", + "futures-util", + "http 0.2.12", + "httparse", + "log", + "memchr", + "mime", + "spin", + "version_check", +] + [[package]] name = "multiaddr" version = "0.18.2" @@ -9915,6 +9936,18 @@ dependencies = [ "tokio-util", ] +[[package]] +name = "tokio-tungstenite" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" +dependencies = [ + "futures-util", + "log", + "tokio", + "tungstenite 0.21.0", +] + [[package]] name = "tokio-tungstenite" version = "0.26.2" @@ -9927,7 +9960,7 @@ dependencies = [ "rustls-pki-types", "tokio", "tokio-rustls 0.26.2", - "tungstenite", + "tungstenite 0.26.2", "webpki-roots 0.26.8", ] @@ -10154,6 +10187,25 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "tungstenite" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 1.3.1", + "httparse", + "log", + "rand 0.8.5", + "sha1", + "thiserror 1.0.69", + "url", + "utf-8", +] + [[package]] name = "tungstenite" version = "0.26.2" @@ -10659,6 +10711,7 @@ dependencies = [ "log", "mime", "mime_guess", + "multer", "percent-encoding", "pin-project", "rustls-pemfile 2.2.0", @@ -10668,6 +10721,7 @@ dependencies = [ "serde_urlencoded", "tokio", "tokio-rustls 0.25.0", + "tokio-tungstenite 0.21.0", "tokio-util", "tower-service", "tracing", diff --git a/Cargo.toml b/Cargo.toml index 1e1201d26..656d8b178 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -98,6 +98,7 @@ dirs = "6.0.0" discv5 = "0.9.0" either = "1.13.0" enr = "0.13.0" +ethereum_serde_utils = "0.7.0" ethereum_ssz = "0.8" ethereum_ssz_derive = "0.8" futures = "0.3.30" @@ -135,7 +136,6 @@ tree_hash = "0.9" tree_hash_derive = "0.9" vsss-rs = "5.1.0" zeroize = "1.8.1" -ethereum_serde_utils = "0.7.0" # todo: remove when there is a proper release for peer-store. [patch.'https://github.com/libp2p/rust-libp2p.git'] diff --git a/anchor/integration/Cargo.toml b/anchor/integration/Cargo.toml index 8992b96fe..c59a7747a 100644 --- a/anchor/integration/Cargo.toml +++ b/anchor/integration/Cargo.toml @@ -13,6 +13,7 @@ environment = { git = "https://github.com/zacholme7/lighthouse", branch = "ancho ethereum_serde_utils = { workspace = true } execution_layer = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } futures = { workspace = true } +futures-util = "0.3.31" kzg = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } lighthouse_network = { workspace = true } logging = { git = "https://github.com/zacholme7/lighthouse", branch = "anchor" } @@ -24,6 +25,8 @@ serde_json = { workspace = true } ssv_network_config = { workspace = true } task_executor = { workspace = true } tokio = { workspace = true } +tokio-tungstenite = "0.26.2" tracing = { workspace = true } tracing-subscriber = { workspace = true } types = { workspace = true } +warp = "0.3.7" diff --git a/anchor/integration/src/basic_sim.rs b/anchor/integration/src/basic_sim.rs index 6cc73cdc6..a84ec5f51 100644 --- a/anchor/integration/src/basic_sim.rs +++ b/anchor/integration/src/basic_sim.rs @@ -1,5 +1,6 @@ use crate::checks::*; use crate::local_network::{SsvLocalNetwork, SsvNetworkParams}; +use crate::mock_websocket::MockServer; use crate::util::parse_cli; use clap::ArgMatches; use environment::tracing_common; @@ -88,6 +89,13 @@ impl BasicSim { spec.deneb_fork_epoch = Some(Epoch::new(DENEB_FORK_EPOCH)); env.eth2_config.spec = Arc::new(spec); + // Start the mock server + let server = env + .runtime() + .block_on(async { MockServer::start().await })?; + + info!("Mock server available at: {}", server.url); + // Setup a future that will perform all simulation checks on the network let main_future = async { // Create the local_network @@ -113,7 +121,7 @@ impl BasicSim { // Add operator nodes to the network for index in 0..(sim_config.committee_size) { network - .add_anchor_node(index, anchor_config.clone()) + .add_anchor_node(index, anchor_config.clone(), server.url.clone()) .await?; } diff --git a/anchor/integration/src/local_network.rs b/anchor/integration/src/local_network.rs index 01f8b4d7a..a37c1afb7 100644 --- a/anchor/integration/src/local_network.rs +++ b/anchor/integration/src/local_network.rs @@ -69,10 +69,10 @@ impl SsvLocalNetwork { + Duration::from_secs(network_params.genesis_delay)) .as_secs(); + let anchor_config = default_anchor_config(); let beacon_config = default_client_config(network_params, genesis_time); let execution_config = default_mock_execution_config::(&context.eth2_config().spec, genesis_time); - let anchor_config = default_anchor_config(); let network = Self { inner: Arc::new(Inner { @@ -91,6 +91,7 @@ impl SsvLocalNetwork { &self, index: usize, mut anchor_config: AnchorConfig, + server_url: String, ) -> Result<(), String> { { // Add ENR of bootnode @@ -121,10 +122,14 @@ impl SsvLocalNetwork { }; anchor_config.beacon_nodes = vec![beacon_node]; - // Add a execution node endpoint + // Add execution node endpoints + anchor_config.execution_nodes = vec![]; let execution_addr = SensitiveUrl::parse(&format!("http://localhost:{}", EXECUTION_PORT)).unwrap(); anchor_config.execution_nodes.push(execution_addr); + anchor_config + .execution_nodes + .push(SensitiveUrl::parse(&server_url).unwrap()); // Construct and run a new local anchor node let mut anchor_node = LocalAnchorNode::new(index as u16, anchor_config); @@ -220,7 +225,6 @@ impl SsvLocalNetwork { secret_file: Some(execution_node.datadir.path().join("jwt.hex")), ..Default::default() }); - println!("{:?}", beacon_config); let beacon_node = LocalBeaconNode::production( self.context.service_context("boot_node".into()), diff --git a/anchor/integration/src/main.rs b/anchor/integration/src/main.rs index ce077caf2..0ade58959 100644 --- a/anchor/integration/src/main.rs +++ b/anchor/integration/src/main.rs @@ -8,6 +8,7 @@ mod checks; mod cli; mod local_anchor_node; mod local_network; +mod mock_websocket; mod util; fn main() -> Result<(), String> { diff --git a/anchor/integration/src/mock_websocket.rs b/anchor/integration/src/mock_websocket.rs new file mode 100644 index 000000000..ab9907674 --- /dev/null +++ b/anchor/integration/src/mock_websocket.rs @@ -0,0 +1,39 @@ +use std::net::SocketAddr; +use tracing::info; +use warp::Filter; + +pub struct MockServer { + pub url: String, + _server_handle: tokio::task::JoinHandle<()>, +} + +impl MockServer { + pub async fn start() -> Result { + // Create a simple WebSocket route that just accepts connections + let ws_route = warp::ws().map(|ws: warp::ws::Ws| { + ws.on_upgrade(|_websocket| async { + // Connection established, but we don't need to do anything with it + }) + }); + + // Find an available port + let socket: SocketAddr = ([127, 0, 0, 1], 0).into(); + + // Bind to the socket + let (addr, server) = warp::serve(ws_route).bind_with_graceful_shutdown(socket, async { + // This future is never completed, so shutdown only happens when handle is dropped + std::future::pending::<()>().await; + }); + + let url = format!("ws://localhost:{}", addr.port()); + info!("Mock server started at {}", url); + + // Spawn the server in the background + let handle = tokio::spawn(server); + + Ok(Self { + url, + _server_handle: handle, + }) + } +} diff --git a/anchor/integration/src/util.rs b/anchor/integration/src/util.rs index d32700a50..a2cc00aa1 100644 --- a/anchor/integration/src/util.rs +++ b/anchor/integration/src/util.rs @@ -5,7 +5,6 @@ use crate::basic_sim::{ use crate::local_network::{SsvNetworkParams, EXECUTION_PORT}; use clap::ArgMatches; use clap::Parser; -use ssv_network_config::SsvNetworkConfig; use client::config::Config; use client::DebugLevel; use client::Node; @@ -15,6 +14,7 @@ use node_test_rig::{ testing_client_config, ClientConfig, ClientGenesis, MockExecutionConfig, MockServerConfig, }; use serde_utils::quoted_u64::MaybeQuoted; +use ssv_network_config::SsvNetworkConfig; use std::net::Ipv4Addr; use types::Epoch; From ced58b6b1f0e59bdaf594479119a4bf94ca3ffdc Mon Sep 17 00:00:00 2001 From: Zachary Holme Date: Tue, 18 Mar 2025 12:11:02 -0500 Subject: [PATCH 06/52] check for op id right away --- anchor/client/src/lib.rs | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/anchor/client/src/lib.rs b/anchor/client/src/lib.rs index 9377b1a5b..9a748e798 100644 --- a/anchor/client/src/lib.rs +++ b/anchor/client/src/lib.rs @@ -706,24 +706,40 @@ async fn wait_for_operator_id_and_sync( ) -> Option { let sleep_duration = Duration::from_secs(spec.seconds_per_slot); let mut state = database.watch(); - let id = loop { - select! { - result = state.changed() => { - result.ok()?; - if let Some(id) = state.borrow().get_own_id() { - break id; + + // First check if ID exists, ensuring the borrow is dropped immediately + let id = if let Some(id) = { + let current_state = state.borrow(); + current_state.get_own_id() + } { + // ID already exists + id + } else { + // Wait for an ID to appear + loop { + select! { + result = state.changed() => { + result.ok()?; + if let Some(id) = state.borrow().get_own_id() { + break id; + } } + _ = sleep(sleep_duration) => info!("Waiting for operator id"), } - _ = sleep(sleep_duration) => info!("Waiting for operator id"), } }; + info!(id = *id, "Operator found on chain"); + + // Wait for sync to finish loop { select! { result = &mut sync_notification => return result.ok().map(|_| id), _ = sleep(sleep_duration) => info!("Waiting for historical sync to finish"), } } + + } pub fn load_pem_certificate>(pem_path: P) -> Result { From 77d0dab8f8da27e15f7a84194cfb9cfcb630ba68 Mon Sep 17 00:00:00 2001 From: Zachary Holme Date: Tue, 18 Mar 2025 13:31:48 -0500 Subject: [PATCH 07/52] bump --- anchor/integration/src/basic_sim.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/anchor/integration/src/basic_sim.rs b/anchor/integration/src/basic_sim.rs index a84ec5f51..4e9a13047 100644 --- a/anchor/integration/src/basic_sim.rs +++ b/anchor/integration/src/basic_sim.rs @@ -10,6 +10,7 @@ use node_test_rig::{ }; use std::cmp::max; use std::sync::Arc; +use std::sync::LazyLock; use tokio::time::sleep; use tracing::info; @@ -29,6 +30,16 @@ pub struct SimConfig { pub continue_after_checks: bool, } +// Validators registered to the operators in the SSV database +static REGISTERED_VALIDATORS: LazyLock> = LazyLock::new(|| { + vec![ + String::from("0x8de7ec501d574152f52a962bf588573df2fc3563fd0c6077651208ed20f24f3d8572425706b343117b48bdca56808416"), + String::from("0x95833097520df43a5cb013e97f80041a7a0b7d84a4ec79e2f16baeeb6edfbcf62ede97becfde73883831bb65e1415dc0"), + String::from("0x966c488d807b3208bb1b10a1af422bac8d363c8015cda4e24d214549ced019cd3dd575545dd887461cae3f70d95cb061"), + String::from("0xb3faeebfbebd085b9123ae0e09af9cd15d3b1db6a25f3e82d8b48b68e53522b41b342a3a3c8b008897df356048862d98") + ] +}); + pub struct BasicSim {} impl BasicSim { @@ -118,6 +129,9 @@ impl BasicSim { .await?; } + // Register the validators... + // todo!() + // Add operator nodes to the network for index in 0..(sim_config.committee_size) { network From 455e783b5141451210b9c9e30a9ad7f52c47f814 Mon Sep 17 00:00:00 2001 From: Zachary Holme Date: Mon, 24 Mar 2025 12:06:00 -0500 Subject: [PATCH 08/52] add in enr --- anchor/client/src/lib.rs | 1 - anchor/integration/src/local_anchor_node.rs | 7 +++++-- anchor/integration/src/local_network.rs | 9 ++++----- anchor/integration/src/util.rs | 4 +--- anchor/network/src/lib.rs | 1 + 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/anchor/client/src/lib.rs b/anchor/client/src/lib.rs index cc261a640..7696638c9 100644 --- a/anchor/client/src/lib.rs +++ b/anchor/client/src/lib.rs @@ -8,7 +8,6 @@ use anchor_validator_store::AnchorValidatorStore; use beacon_node_fallback::{ start_fallback_updater_service, ApiTopic, BeaconNodeFallback, CandidateBeaconNode, }; -pub use cli::DebugLevel; pub use cli::Node; use config::Config; use database::NetworkDatabase; diff --git a/anchor/integration/src/local_anchor_node.rs b/anchor/integration/src/local_anchor_node.rs index 63dd02613..d75dc0f1a 100644 --- a/anchor/integration/src/local_anchor_node.rs +++ b/anchor/integration/src/local_anchor_node.rs @@ -4,6 +4,8 @@ use lighthouse_network::{ListenAddr, ListenAddress}; use std::path::PathBuf; use task_executor::TaskExecutor; use tracing::{info, warn}; +use network::load_enr_from_disk; +use network::Enr; use network::{DEFAULT_DISC_PORT, DEFAULT_IPV4_ADDRESS, DEFAULT_QUIC_PORT, DEFAULT_TCP_PORT}; @@ -36,13 +38,14 @@ impl LocalAnchorNode { anchor_config.network.enr_udp4_port = Some(discv5_port.try_into().unwrap()); anchor_config.network.enr_tcp4_port = Some(libp2p_tcp_port.try_into().unwrap()); + Self { config: anchor_config, } } - pub fn _get_enr(&self) -> String { - String::from("") + pub fn get_enr(&self) -> Enr { + load_enr_from_disk(&self.config.network.network_dir).expect("Dir exists") } // Run the anchor node with the given executor diff --git a/anchor/integration/src/local_network.rs b/anchor/integration/src/local_network.rs index a37c1afb7..aa3306929 100644 --- a/anchor/integration/src/local_network.rs +++ b/anchor/integration/src/local_network.rs @@ -96,13 +96,12 @@ impl SsvLocalNetwork { { // Add ENR of bootnode let read_lock = self.anchor_nodes.read().expect("Failed to get read lock"); - let _boot_node = read_lock.first(); - // If we have a bootnode, add the enr + let boot_node = read_lock.first(); - /*if let Some(boot_node) = boot_node { - let enr = Enr::from_str(&boot_node.get_enr()).unwrap(); + if let Some(boot_node) = boot_node { + let enr = boot_node.get_enr(); anchor_config.network.boot_nodes_enr.push(enr) - }*/ + } } // Add a beacon node endpoint diff --git a/anchor/integration/src/util.rs b/anchor/integration/src/util.rs index a2cc00aa1..133e06f25 100644 --- a/anchor/integration/src/util.rs +++ b/anchor/integration/src/util.rs @@ -6,7 +6,6 @@ use crate::local_network::{SsvNetworkParams, EXECUTION_PORT}; use clap::ArgMatches; use clap::Parser; use client::config::Config; -use client::DebugLevel; use client::Node; use kzg::trusted_setup::get_trusted_setup; use node_test_rig::{ @@ -80,8 +79,7 @@ pub fn default_client_config(network_params: SsvNetworkParams, genesis_time: u64 // Create a default anchor operator configuration pub fn default_anchor_config() -> Config { - let mut node = Node::parse_from::, String>(vec![]); - node.debug_level = DebugLevel::Debug; + let node = Node::parse_from::, String>(vec![]); let mut anchor_config = client::config::from_cli(&node).unwrap(); diff --git a/anchor/network/src/lib.rs b/anchor/network/src/lib.rs index 77c4fab16..1cd94a337 100644 --- a/anchor/network/src/lib.rs +++ b/anchor/network/src/lib.rs @@ -13,6 +13,7 @@ pub use config::{ }; pub use lighthouse_network::{ListenAddr, ListenAddress}; pub use network::Network; +pub use discovery::load_enr_from_disk; pub type Enr = discv5::enr::Enr; From 2e9219c9c35fb4200a4ed3f5314b03e6f59c62f1 Mon Sep 17 00:00:00 2001 From: Zachary Holme Date: Mon, 24 Mar 2025 13:06:17 -0500 Subject: [PATCH 09/52] setup validator enable and enrs --- anchor/client/src/lib.rs | 4 +--- anchor/integration/src/basic_sim.rs | 11 ----------- anchor/integration/src/local_anchor_node.rs | 5 ++--- anchor/integration/src/main.rs | 2 +- anchor/network/src/lib.rs | 2 +- anchor/validator_store/src/lib.rs | 8 +++++++- 6 files changed, 12 insertions(+), 20 deletions(-) diff --git a/anchor/client/src/lib.rs b/anchor/client/src/lib.rs index 7696638c9..2953feb77 100644 --- a/anchor/client/src/lib.rs +++ b/anchor/client/src/lib.rs @@ -725,7 +725,7 @@ async fn wait_for_operator_id_and_sync( let sleep_duration = Duration::from_secs(spec.seconds_per_slot); let mut state = database.watch(); - // First check if ID exists, ensuring the borrow is dropped immediately + // First check if ID exists, ensuring the borrow is dropped immediately let id = if let Some(id) = { let current_state = state.borrow(); current_state.get_own_id() @@ -756,8 +756,6 @@ async fn wait_for_operator_id_and_sync( _ = sleep(sleep_duration) => info!("Waiting for historical sync to finish"), } } - - } pub fn load_pem_certificate>(pem_path: P) -> Result { diff --git a/anchor/integration/src/basic_sim.rs b/anchor/integration/src/basic_sim.rs index 4e9a13047..4aa4f1899 100644 --- a/anchor/integration/src/basic_sim.rs +++ b/anchor/integration/src/basic_sim.rs @@ -10,7 +10,6 @@ use node_test_rig::{ }; use std::cmp::max; use std::sync::Arc; -use std::sync::LazyLock; use tokio::time::sleep; use tracing::info; @@ -30,16 +29,6 @@ pub struct SimConfig { pub continue_after_checks: bool, } -// Validators registered to the operators in the SSV database -static REGISTERED_VALIDATORS: LazyLock> = LazyLock::new(|| { - vec![ - String::from("0x8de7ec501d574152f52a962bf588573df2fc3563fd0c6077651208ed20f24f3d8572425706b343117b48bdca56808416"), - String::from("0x95833097520df43a5cb013e97f80041a7a0b7d84a4ec79e2f16baeeb6edfbcf62ede97becfde73883831bb65e1415dc0"), - String::from("0x966c488d807b3208bb1b10a1af422bac8d363c8015cda4e24d214549ced019cd3dd575545dd887461cae3f70d95cb061"), - String::from("0xb3faeebfbebd085b9123ae0e09af9cd15d3b1db6a25f3e82d8b48b68e53522b41b342a3a3c8b008897df356048862d98") - ] -}); - pub struct BasicSim {} impl BasicSim { diff --git a/anchor/integration/src/local_anchor_node.rs b/anchor/integration/src/local_anchor_node.rs index d75dc0f1a..5cc6cdcd9 100644 --- a/anchor/integration/src/local_anchor_node.rs +++ b/anchor/integration/src/local_anchor_node.rs @@ -1,11 +1,11 @@ use client::config::Config; use client::Client; use lighthouse_network::{ListenAddr, ListenAddress}; +use network::load_enr_from_disk; +use network::Enr; use std::path::PathBuf; use task_executor::TaskExecutor; use tracing::{info, warn}; -use network::load_enr_from_disk; -use network::Enr; use network::{DEFAULT_DISC_PORT, DEFAULT_IPV4_ADDRESS, DEFAULT_QUIC_PORT, DEFAULT_TCP_PORT}; @@ -38,7 +38,6 @@ impl LocalAnchorNode { anchor_config.network.enr_udp4_port = Some(discv5_port.try_into().unwrap()); anchor_config.network.enr_tcp4_port = Some(libp2p_tcp_port.try_into().unwrap()); - Self { config: anchor_config, } diff --git a/anchor/integration/src/main.rs b/anchor/integration/src/main.rs index 0ade58959..ac1f5c24b 100644 --- a/anchor/integration/src/main.rs +++ b/anchor/integration/src/main.rs @@ -15,7 +15,7 @@ fn main() -> Result<(), String> { if std::env::var("RUST_LOG").is_err() { std::env::set_var( "RUST_LOG", - "integration=debug,execution=debug,client=debug,beacon_node_fallback=debug", + "integration=debug,execution=debug,client=debug,beacon_node_fallback=debug,anchor=debug", ); } Builder::from_env(Env::default()).init(); diff --git a/anchor/network/src/lib.rs b/anchor/network/src/lib.rs index 1cd94a337..c0c31b382 100644 --- a/anchor/network/src/lib.rs +++ b/anchor/network/src/lib.rs @@ -11,9 +11,9 @@ mod transport; pub use config::{ Config, DEFAULT_DISC_PORT, DEFAULT_IPV4_ADDRESS, DEFAULT_QUIC_PORT, DEFAULT_TCP_PORT, }; +pub use discovery::load_enr_from_disk; pub use lighthouse_network::{ListenAddr, ListenAddress}; pub use network::Network; -pub use discovery::load_enr_from_disk; pub type Enr = discv5::enr::Enr; diff --git a/anchor/validator_store/src/lib.rs b/anchor/validator_store/src/lib.rs index 05bd2441a..bf046ef57 100644 --- a/anchor/validator_store/src/lib.rs +++ b/anchor/validator_store/src/lib.rs @@ -130,8 +130,14 @@ impl AnchorValidatorStore { } async fn updater(self: Arc, mut database_state: watch::Receiver) { - while database_state.changed().await.is_ok() { + // Process initial state and then watch for changes + loop { self.load_validators(&database_state.borrow()); + + // Exit when the sender is dropped + if database_state.changed().await.is_err() { + break; + } } } From 8b2e5788628aa4227ec687c36c57adca14bdf62d Mon Sep 17 00:00:00 2001 From: ThreeHrSleep Date: Tue, 25 Mar 2025 11:47:04 +0530 Subject: [PATCH 10/52] make networking logs appear --- anchor/integration/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/anchor/integration/src/main.rs b/anchor/integration/src/main.rs index ac1f5c24b..47be3d8e2 100644 --- a/anchor/integration/src/main.rs +++ b/anchor/integration/src/main.rs @@ -15,7 +15,7 @@ fn main() -> Result<(), String> { if std::env::var("RUST_LOG").is_err() { std::env::set_var( "RUST_LOG", - "integration=debug,execution=debug,client=debug,beacon_node_fallback=debug,anchor=debug", + "integration=debug,execution=debug,client=debug,beacon_node_fallback=debug,anchor=debug,network=debug", ); } Builder::from_env(Env::default()).init(); From ce6273a8d0d06f146419af7ab29b5f7f11fbcb5a Mon Sep 17 00:00:00 2001 From: Zacholme7 Date: Tue, 25 Mar 2025 15:09:42 +0000 Subject: [PATCH 11/52] setup enrs --- anchor/integration/mock-data/operator-0/network/enr.dat | 1 + anchor/integration/mock-data/operator-1/network/enr.dat | 1 + anchor/integration/mock-data/operator-2/network/enr.dat | 1 + anchor/integration/mock-data/operator-3/network/enr.dat | 1 + anchor/integration/src/local_anchor_node.rs | 5 +++++ 5 files changed, 9 insertions(+) create mode 100644 anchor/integration/mock-data/operator-0/network/enr.dat create mode 100644 anchor/integration/mock-data/operator-1/network/enr.dat create mode 100644 anchor/integration/mock-data/operator-2/network/enr.dat create mode 100644 anchor/integration/mock-data/operator-3/network/enr.dat diff --git a/anchor/integration/mock-data/operator-0/network/enr.dat b/anchor/integration/mock-data/operator-0/network/enr.dat new file mode 100644 index 000000000..adb245304 --- /dev/null +++ b/anchor/integration/mock-data/operator-0/network/enr.dat @@ -0,0 +1 @@ +enr:-Lm4QGnIFs17EPlcrWAdSDpeZhnQBIiQKqWaB0pCrum4AlwdZJ5z-fzgE0HJ4C53NOIWfA5bkaYzC3hw0A-RTNNEdXIGimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIQAAAAAiXNlY3AyNTZrMaECaPlPg6llvSR72agpjDRQT5OO4AXeeN5FE6NCvFjJJA2Dc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOMg3VkcIIjjA \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-1/network/enr.dat b/anchor/integration/mock-data/operator-1/network/enr.dat new file mode 100644 index 000000000..035f82e68 --- /dev/null +++ b/anchor/integration/mock-data/operator-1/network/enr.dat @@ -0,0 +1 @@ +enr:-Lm4QNyhSSgG3NUSwXrtwEsjaumWgZT9foYP_XvUmoUy_yUAGL6OGOZNECbTcxMnXgQEYFYHacU7PD48j1KNObXJ_zEGimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIQAAAAAiXNlY3AyNTZrMaED2Co9yNAVB_HzvgLyBGluB_P3sTNQEBL3jFui1g09e2KDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOLg3VkcIIjiw \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-2/network/enr.dat b/anchor/integration/mock-data/operator-2/network/enr.dat new file mode 100644 index 000000000..16f00788c --- /dev/null +++ b/anchor/integration/mock-data/operator-2/network/enr.dat @@ -0,0 +1 @@ +enr:-Lm4QIfdMHmaH7_7EFNJLd3Z_Gp1F-bR9wFuvrrd9U44wHxeasICIE580ygXq8IzYvFXoVDS2P-pWRwacv6pgSSlNmEGimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIQAAAAAiXNlY3AyNTZrMaEDjar53KDREPVxc-NN-ZqpkZwA3m9pFzyo3Sq40axfVUqDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOKg3VkcIIjig \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-3/network/enr.dat b/anchor/integration/mock-data/operator-3/network/enr.dat new file mode 100644 index 000000000..eb0bab7eb --- /dev/null +++ b/anchor/integration/mock-data/operator-3/network/enr.dat @@ -0,0 +1 @@ +enr:-Lm4QD_bNJWlBnGAI2XABdznm4qsLi9k04EEiHLqf9bXkusoIDjpt7fya8x4bgf41a6CArl3G4TFAzN8IUraIXccOdwGimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIQAAAAAiXNlY3AyNTZrMaECOPl0gmoUPh-D_Rk9G2jptU4xFaOlzPLtgDJ8h9guVx6Dc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOJg3VkcIIjiQ \ No newline at end of file diff --git a/anchor/integration/src/local_anchor_node.rs b/anchor/integration/src/local_anchor_node.rs index 5cc6cdcd9..3b01a685d 100644 --- a/anchor/integration/src/local_anchor_node.rs +++ b/anchor/integration/src/local_anchor_node.rs @@ -22,6 +22,9 @@ impl LocalAnchorNode { let data_dir = format!("operator-{}", index); anchor_config.data_dir = data_path.join(data_dir); + // Setup the network dir + anchor_config.network.network_dir = anchor_config.data_dir.join("network"); + // Configure ports // subtract index to prevent collision with quic port // index == 0 defines boot node @@ -37,6 +40,8 @@ impl LocalAnchorNode { anchor_config.network.enr_udp4_port = Some(discv5_port.try_into().unwrap()); anchor_config.network.enr_tcp4_port = Some(libp2p_tcp_port.try_into().unwrap()); + anchor_config.network.enr_address = (Some(DEFAULT_IPV4_ADDRESS), None); + anchor_config.network.disable_quic_support = true; Self { config: anchor_config, From 7fa093280932ef45a5c51ec5940be4884814a7ad Mon Sep 17 00:00:00 2001 From: Zacholme7 Date: Tue, 25 Mar 2025 15:22:20 +0000 Subject: [PATCH 12/52] cleanup lock --- Cargo.lock | 426 ++++++++++++++++++++++++----------------------------- 1 file changed, 192 insertions(+), 234 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6193b0641..3674f5448 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -113,14 +113,14 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b4ae82946772d69f868b9ef81fc66acb1b149ef9b4601849bec4bcf5da6552e" +checksum = "89ec9b8795b2083585293bd3d19033e9d67e725917c95c44cb154e3400529ccd" dependencies = [ - "alloy-consensus 0.12.6", + "alloy-consensus 0.12.5", "alloy-contract", "alloy-core", - "alloy-eips 0.12.6", + "alloy-eips 0.12.5", "alloy-genesis", "alloy-network", "alloy-provider", @@ -137,9 +137,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.66" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8e42c54af787e3521229df1787d7b8300910dc6d9d04d378eb593b26388bd11" +checksum = "963fc7ac17f25d92c237448632330eb87b39ba8aa0209d4b517069a05b57db62" dependencies = [ "alloy-primitives", "num_enum", @@ -160,11 +160,11 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fbf458101ed6c389e9bb70a34ebc56039868ad10472540614816cdedc8f5265" +checksum = "a84efb7b8ddb9223346bfad9d8094e1a100c254037a3b5913243bfa8e04be266" dependencies = [ - "alloy-eips 0.12.6", + "alloy-eips 0.12.5", "alloy-primitives", "alloy-rlp", "alloy-serde", @@ -183,12 +183,12 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc982af629e511292310fe85b433427fd38cb3105147632b574abc997db44c91" +checksum = "fafded0c1ff8f0275c4a484239058e1c01c0c2589f8a16e03669ef7094a06f9b" dependencies = [ - "alloy-consensus 0.12.6", - "alloy-eips 0.12.6", + "alloy-consensus 0.12.5", + "alloy-eips 0.12.5", "alloy-primitives", "alloy-rlp", "alloy-serde", @@ -197,11 +197,11 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0a0c1ddee20ecc14308aae21c2438c994df7b39010c26d70f86e1d8fdb8db0" +checksum = "7a0fa0584d13dd0c4e79288d411222c4d7c3411c71b7fa637cefda9dcf9bb1f9" dependencies = [ - "alloy-consensus 0.12.6", + "alloy-consensus 0.12.5", "alloy-dyn-abi", "alloy-json-abi", "alloy-network", @@ -219,9 +219,9 @@ dependencies = [ [[package]] name = "alloy-core" -version = "0.8.24" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23ccdb29eedfa1d83f32efbc958d0944e6928e252295dd5eafc516ed57f3a0a" +checksum = "ca1380cc3c81b83d5234865779494970c83b5893b423c59cdd68c3cd1ed0b671" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -232,9 +232,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.8.24" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ada55b5ab26624766bb8c65f72516dee93eaf28d5d87fc18ff4324cd8c2a948d" +checksum = "7078bef2bc353c1d1a97b44981d0186198be320038fbfbb0b37d1dd822a555d3" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -312,9 +312,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e86967eb559920e4b9102e4cb825fe30f2e9467988353ce4809f0d3f2c90cd4" +checksum = "5f4bffedaddc627520eabdcbfe27a2d2c2f716e15295e2ed1010df3feae67040" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -333,11 +333,11 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a40de6f5b53ecf5fd7756072942f41335426d9a3704cd961f77d854739933bcf" +checksum = "96b11774716152a5204aff0e86a8c841df499ea81464e2b1f82b3f72d6a2ef32" dependencies = [ - "alloy-eips 0.12.6", + "alloy-eips 0.12.5", "alloy-primitives", "alloy-serde", "alloy-trie", @@ -346,9 +346,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.24" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df4054f177d1600f17e2bc152f6a927592641b19861e6005cc51bdf7d4fa27a6" +checksum = "ec80745c33797e8baf547a8cfeb850e60d837fe9b9e67b3f579c1fcd26f527e9" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -358,9 +358,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27434beae2514d4a2aa90f53832cbdf6f23e4b5e2656d95eaf15f9276e2418b6" +checksum = "6929e607b0a56803c69c68adc6e8aae1644c94e37ea458aa2d0713fc77490e70" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -372,13 +372,13 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26a33a38c7486b1945f8d093ff027add2f3a8f83c7300dbad6165cc49150085e" +checksum = "c2b14524c3605ed5ee173b966333089474415416a8cfd80ceb003c18fd6d1736" dependencies = [ - "alloy-consensus 0.12.6", + "alloy-consensus 0.12.5", "alloy-consensus-any", - "alloy-eips 0.12.6", + "alloy-eips 0.12.5", "alloy-json-rpc", "alloy-network-primitives", "alloy-primitives", @@ -398,12 +398,12 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db973a7a23cbe96f2958e5687c51ce2d304b5c6d0dc5ccb3de8667ad8476f50b" +checksum = "4c06932646544ea341f0fda48d2c0fe4fda75bc132379cb84019cdfb6ddcb0fb" dependencies = [ - "alloy-consensus 0.12.6", - "alloy-eips 0.12.6", + "alloy-consensus 0.12.5", + "alloy-eips 0.12.5", "alloy-primitives", "alloy-serde", "serde", @@ -411,9 +411,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.24" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7283185baefbe66136649dc316c9dcc6f0e9f1d635ae19783615919f83bc298a" +checksum = "eacedba97e65cdc7ab592f2b22ef5d3ab8d60b2056bc3a6e6363577e8270ec6f" dependencies = [ "alloy-rlp", "arbitrary", @@ -442,13 +442,13 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b03bde77ad73feae14aa593bcabb932c8098c0f0750ead973331cfc0003a4e1" +checksum = "ff1ec2eabd9b3acc46e59247c35f75545960372431c68f7fdbfcfb970a486c30" dependencies = [ "alloy-chains", - "alloy-consensus 0.12.6", - "alloy-eips 0.12.6", + "alloy-consensus 0.12.5", + "alloy-eips 0.12.5", "alloy-json-rpc", "alloy-network", "alloy-network-primitives", @@ -469,7 +469,7 @@ dependencies = [ "lru 0.13.0", "parking_lot", "pin-project", - "reqwest 0.12.15", + "reqwest 0.12.14", "serde", "serde_json", "thiserror 2.0.12", @@ -481,9 +481,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721aca709a9231815ad5903a2d284042cc77e7d9d382696451b30c9ee0950001" +checksum = "b1cf194abddb88b034d22ab41449ed8532e5113e58699cd055bf21d98a0991ab" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -522,9 +522,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445a3298c14fae7afb5b9f2f735dead989f3dd83020c2ab8e48ed95d7b6d1acb" +checksum = "6213829d8eabc239c2f9572452a5993ebdf78b04c020abc450ae48c54261d4ce" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -532,26 +532,24 @@ dependencies = [ "alloy-transport", "alloy-transport-http", "alloy-transport-ws", - "async-stream", "futures", "pin-project", - "reqwest 0.12.15", + "reqwest 0.12.14", "serde", "serde_json", "tokio", "tokio-stream", "tower", "tracing", - "tracing-futures", "url", "wasmtimer", ] [[package]] name = "alloy-rpc-types" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9157deaec6ba2ad7854f16146e4cd60280e76593eed79fdcb06e0fa8b6c60f77" +checksum = "a153db94cf231b03238fe4da48f59dc6f36e01b5e4d5a2e30de33b95395380fa" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -561,9 +559,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604dea1f00fd646debe8033abe8e767c732868bf8a5ae9df6321909ccbc99c56" +checksum = "2cd4ceea38ea27eeb26f021df34ed5b7b793704ad7a2a009f16137a19461e7ca" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -572,13 +570,13 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e13d71eac04513a71af4b3df580f52f2b4dcbff9d971cc9a52519acf55514cb" +checksum = "8e18d94b1036302720b987564560e4a5b85035a17553c53a50afa2bd8762b487" dependencies = [ - "alloy-consensus 0.12.6", + "alloy-consensus 0.12.5", "alloy-consensus-any", - "alloy-eips 0.12.6", + "alloy-eips 0.12.5", "alloy-network-primitives", "alloy-primitives", "alloy-rlp", @@ -592,9 +590,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a1cd73fc054de6353c7f22ff9b846b0f0f145cd0112da07d4119e41e9959207" +checksum = "9824e1bf92cd7848ca6fabb01c9aca15c9c5fb0ab96da5514ef0543f021c69f6" dependencies = [ "alloy-primitives", "serde", @@ -603,9 +601,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c96fbde54bee943cd94ebacc8a62c50b38c7dfd2552dcd79ff61aea778b1bfcc" +checksum = "81755ed6a6a33061302ac95e9bb7b40ebf7078e4568397168024242bc31a3e58" dependencies = [ "alloy-primitives", "async-trait", @@ -618,11 +616,11 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6e72002cc1801d8b41e9892165e3a6551b7bd382bd9d0414b21e90c0c62551" +checksum = "aa857621a5c95c13e640e18bb9c4720f4338a666d6276f55446477a6bc3912ff" dependencies = [ - "alloy-consensus 0.12.6", + "alloy-consensus 0.12.5", "alloy-network", "alloy-primitives", "alloy-signer", @@ -634,9 +632,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.24" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f99b007e002f1082b28827cc47d9c72562d412a98c06f29aa438118ff3036c43" +checksum = "3637022e781bc73a9e300689cd91105a0e6be00391dd4e2110a71cc7e9f20a94" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -648,9 +646,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.24" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c0a9cb9b1afbcd3325e0fff9fdf98e6d095643fae9e5584e80597f0b79b6d6e" +checksum = "3b9bd22d0bba90e40f40c625c33d39afb7d62b22192476a2ce1dcf8409dce880" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", @@ -667,9 +665,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.8.24" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "530c4863e707b95f99b37792cdfa94d30004ec552aed41e200a1d9264d44e669" +checksum = "05ae4646e8123ec2fd10f9c22e361ffe4365c42811431829c2eabae528546bcc" dependencies = [ "alloy-json-abi", "const-hex", @@ -685,9 +683,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.8.24" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74b210dd863afa9da93c488601a1f23bee1e3ce47e15519582320c205645a7a0" +checksum = "488a747fdcefeec5c1ed5aa9e08becd775106777fdeae2a35730729fc8a95910" dependencies = [ "serde", "winnow 0.7.4", @@ -695,9 +693,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.24" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5ff802859e2797d022dc812b5b4ee40d829e0fb446c269a87826c7f0021976" +checksum = "767957235807b021126dca1598ac3ef477007eace07961607dc5f490550909c7" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -708,16 +706,13 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec325c2af8562ef355c02aeb527c755a07e9d8cf6a1e65dda8d0bf23e29b2c" +checksum = "6c74598eb65cefa886be6ba624c14a6856d9d84339ec720520f3efcc03311716" dependencies = [ "alloy-json-rpc", "base64 0.22.1", - "derive_more 2.0.1", - "futures", "futures-utils-wasm", - "parking_lot", "serde", "serde_json", "thiserror 2.0.12", @@ -730,13 +725,13 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a082c9473c6642cce8b02405a979496126a03b096997888e86229afad05db06c" +checksum = "cfcd2f8ab2f053cd848ead5d625cb1b63716562951101588c1fa49300e3c6418" dependencies = [ "alloy-json-rpc", "alloy-transport", - "reqwest 0.12.15", + "reqwest 0.12.14", "serde_json", "tower", "tracing", @@ -745,15 +740,15 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae865917bdabaae21f418010fe7e8837c6daa6611fde25f8d78a1778d6ecb523" +checksum = "67ddcf4b98b3448eb998e057dc5a27345997863d6544ee7f0f79957616768dd3" dependencies = [ "alloy-pubsub", "alloy-transport", "futures", "http 1.3.1", - "rustls 0.23.25", + "rustls 0.23.23", "serde_json", "tokio", "tokio-tungstenite 0.26.2", @@ -1270,9 +1265,9 @@ dependencies = [ [[package]] name = "async-std" -version = "1.13.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730294c1c08c2e0f85759590518f6333f0d5a0a766a27d519c1b244c3dfd8a24" +checksum = "c634475f29802fde2b8f0b505b1bd00dfe4df7d4a000f0b36f7671197d5c3615" dependencies = [ "async-channel 1.9.0", "async-global-executor", @@ -1324,9 +1319,9 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97" dependencies = [ "proc-macro2", "quote", @@ -1478,6 +1473,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + [[package]] name = "base64" version = "0.21.7" @@ -1492,9 +1493,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.7.3" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" +checksum = "bb97d56060ee67d285efb8001fec9d2a4c710c32efd2e14b5cbb5ba71930fc2d" [[package]] name = "beacon_chain" @@ -1651,7 +1652,7 @@ dependencies = [ "bitflags 2.9.0", "cexpr", "clang-sys", - "itertools 0.12.1", + "itertools 0.10.5", "lazy_static", "lazycell", "log", @@ -1933,9 +1934,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.17" +version = "1.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" dependencies = [ "jobserver", "libc", @@ -2690,9 +2691,9 @@ checksum = "b72465f46d518f6015d9cf07f7f3013a95dd6b9c2747c3d65ae0cce43929d14f" [[package]] name = "delay_map" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88e365f083a5cb5972d50ce8b1b2c9f125dc5ec0f50c0248cfb568ae59efcf0b" +checksum = "df941644b671f05f59433e481ba0d31ac10e3667de725236a4c0d587c496fba1" dependencies = [ "futures", "tokio", @@ -2751,9 +2752,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.1" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cfac68e08048ae1883171632c2aef3ebc555621ae56fbccce1cbf22dd7f058" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", "serde", @@ -3244,7 +3245,7 @@ dependencies = [ "indexmap 2.8.0", "openssl", "rand 0.9.0", - "reqwest 0.12.15", + "reqwest 0.12.14", "serde", "ssv_network_config", "ssv_types", @@ -3813,9 +3814,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foldhash" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" [[package]] name = "foreign-types" @@ -3968,7 +3969,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f2f12607f92c69b12ed746fabf9ca4f5c482cba46679c1a75b874ed7c26adb" dependencies = [ "futures-io", - "rustls 0.23.25", + "rustls 0.23.23", "rustls-pki-types", ] @@ -4083,16 +4084,14 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" dependencies = [ "cfg-if", - "js-sys", "libc", - "r-efi", - "wasi 0.14.2+wasi-0.2.4", - "wasm-bindgen", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", ] [[package]] @@ -4730,7 +4729,7 @@ dependencies = [ "http 1.3.1", "hyper 1.6.0", "hyper-util", - "rustls 0.23.25", + "rustls 0.23.23", "rustls-pki-types", "tokio", "tokio-rustls 0.26.2", @@ -4787,15 +4786,14 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.62" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2fd658b06e56721792c5df4475705b6cda790e9298d19d2f8af083457bcd127" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", - "log", "wasm-bindgen", "windows-core 0.52.0", ] @@ -5210,7 +5208,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ "socket2", - "widestring 1.2.0", + "widestring 1.1.0", "windows-sys 0.48.0", "winreg", ] @@ -5236,15 +5234,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.13.0" @@ -5617,8 +5606,8 @@ dependencies = [ [[package]] name = "libp2p-gossipsub" -version = "0.49.0" -source = "git+https://github.com/sigp/rust-libp2p.git?branch=sigp-gossipsub#25008894e3717e9db9a000ea403c581d303902e4" +version = "0.48.1" +source = "git+https://github.com/sigp/rust-libp2p.git?branch=sigp-gossipsub#3e24b1bbec5fae182595aee0958f823be87afaad" dependencies = [ "async-channel 2.3.1", "asynchronous-codec", @@ -5854,7 +5843,7 @@ dependencies = [ "quinn", "rand 0.8.5", "ring", - "rustls 0.23.25", + "rustls 0.23.23", "socket2", "thiserror 2.0.12", "tokio", @@ -5961,7 +5950,7 @@ dependencies = [ "libp2p-identity", "rcgen", "ring", - "rustls 0.23.25", + "rustls 0.23.23", "rustls-webpki 0.101.7", "thiserror 2.0.12", "x509-parser", @@ -6010,12 +5999,12 @@ dependencies = [ [[package]] name = "libsecp256k1" -version = "0.7.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" +checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" dependencies = [ "arrayref", - "base64 0.22.1", + "base64 0.13.1", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", @@ -6099,7 +6088,7 @@ dependencies = [ "hex", "itertools 0.10.5", "libp2p", - "libp2p-gossipsub 0.49.0 (git+https://github.com/sigp/rust-libp2p.git?rev=7a36e4c)", + "libp2p-gossipsub 0.49.0", "libp2p-mplex", "lighthouse_version", "local-ip-address", @@ -6179,9 +6168,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.3" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" +checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" [[package]] name = "litemap" @@ -6221,9 +6210,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.27" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" dependencies = [ "value-bag", ] @@ -6388,7 +6377,7 @@ version = "0.1.0" dependencies = [ "database", "libp2p", - "libp2p-gossipsub 0.49.0 (git+https://github.com/sigp/rust-libp2p.git?branch=sigp-gossipsub)", + "libp2p-gossipsub 0.48.1", "message_validator", "processor", "qbft_manager", @@ -6423,7 +6412,7 @@ dependencies = [ "database", "ethereum_ssz", "hex", - "libp2p-gossipsub 0.49.0 (git+https://github.com/sigp/rust-libp2p.git?branch=sigp-gossipsub)", + "libp2p-gossipsub 0.48.1", "once_cell", "processor", "sha2 0.10.8", @@ -6547,7 +6536,7 @@ dependencies = [ "smallvec", "tagptr", "thiserror 1.0.69", - "uuid 1.16.0", + "uuid 1.15.1", ] [[package]] @@ -6780,7 +6769,7 @@ dependencies = [ "futures", "hex", "libp2p", - "libp2p-gossipsub 0.49.0 (git+https://github.com/sigp/rust-libp2p.git?branch=sigp-gossipsub)", + "libp2p-gossipsub 0.48.1", "libp2p-peer-store", "libp2p-swarm-test", "lighthouse_network", @@ -7093,9 +7082,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.1" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" +checksum = "cde51589ab56b20a6f686b2c68f7a0bd6add753d697abf720d63f8db3ab7b1ad" [[package]] name = "oneshot_broadcast" @@ -7412,9 +7401,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.8.0" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", "thiserror 2.0.12", @@ -7571,7 +7560,7 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.8.24", + "zerocopy 0.8.23", ] [[package]] @@ -7876,37 +7865,35 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.7" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ "bytes", - "cfg_aliases", "futures-io", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls 0.23.25", + "rustls 0.23.23", "socket2", "thiserror 2.0.12", "tokio", "tracing", - "web-time", ] [[package]] name = "quinn-proto" -version = "0.11.10" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b820744eb4dc9b57a3398183639c511b5a26d2ed702cedd3febaa1393caa22cc" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ "bytes", - "getrandom 0.3.2", - "rand 0.9.0", + "getrandom 0.2.15", + "rand 0.8.5", "ring", "rustc-hash 2.1.1", - "rustls 0.23.25", + "rustls 0.23.23", "rustls-pki-types", "slab", "thiserror 2.0.12", @@ -7917,9 +7904,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.11" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "541d0f57c6ec747a90738a52741d3221f7960e8ac2f0ff4b1a63680e033b4ab5" +checksum = "e46f3055866785f6b92bc6164b76be02ca8f2eb4b002c0354b28cf4c119e5944" dependencies = [ "cfg_aliases", "libc", @@ -7938,12 +7925,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "r-efi" -version = "5.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" - [[package]] name = "r2d2" version = "0.8.10" @@ -7997,7 +7978,7 @@ checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", - "zerocopy 0.8.24", + "zerocopy 0.8.23", ] [[package]] @@ -8035,7 +8016,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.1", ] [[package]] @@ -8203,9 +8184,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.15" +version = "0.12.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" +checksum = "989e327e510263980e231de548a33e63d34962d29ae61b467389a1a09627a254" dependencies = [ "base64 0.22.1", "bytes", @@ -8366,9 +8347,9 @@ dependencies = [ [[package]] name = "ruint" -version = "1.14.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78a46eb779843b2c4f21fac5773e25d6d5b7c8f0922876c91541790d2ca27eef" +checksum = "825df406ec217a8116bd7b06897c6cc8f65ffefc15d030ae2c9540acc9ed50b6" dependencies = [ "alloy-rlp", "arbitrary", @@ -8384,7 +8365,6 @@ dependencies = [ "primitive-types 0.12.2", "proptest", "rand 0.8.5", - "rand 0.9.0", "rlp", "ruint-macro", "serde", @@ -8506,14 +8486,14 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" +checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" dependencies = [ "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys 0.9.3", + "linux-raw-sys 0.9.2", "windows-sys 0.59.0", ] @@ -8545,14 +8525,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.25" +version = "0.23.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" +checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.103.1", + "rustls-webpki 0.102.8", "subtle", "zeroize", ] @@ -8605,17 +8585,6 @@ dependencies = [ "untrusted", ] -[[package]] -name = "rustls-webpki" -version = "0.103.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - [[package]] name = "rustversion" version = "1.0.20" @@ -9555,9 +9524,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.24" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36dbbf0d465ab9fdfea3093e755ae8839bdc1263dbe18d35064d02d6060f949e" +checksum = "d975606bae72d8aad5b07d9342465e123a2cccf53a5a735aedf81ca92a709ecb" dependencies = [ "paste", "proc-macro2", @@ -9692,14 +9661,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.19.1" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" +checksum = "2c317e0a526ee6120d8dabad239c8dadca62b24b6f168914bbbc8e2fb1f0e567" dependencies = [ + "cfg-if", "fastrand", - "getrandom 0.3.2", + "getrandom 0.3.1", "once_cell", - "rustix 1.0.3", + "rustix 1.0.2", "windows-sys 0.59.0", ] @@ -9709,7 +9679,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" dependencies = [ - "rustix 1.0.3", + "rustix 1.0.2", "windows-sys 0.59.0", ] @@ -9783,9 +9753,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.41" +version = "0.3.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "dad298b01a40a23aac4580b67e3dbedb7cc8402f3592d7f49469de2ea4aecdd8" dependencies = [ "deranged", "itoa", @@ -9798,15 +9768,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "765c97a5b985b7c11d7bc27fa927dc4fe6af3a6dfb021d28deb60d3bf51e76ef" [[package]] name = "time-macros" -version = "0.2.22" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +checksum = "e8093bc3e81c3bc5f7879de09619d06c9a5a5e45ca44dfeeb7225bae38005c5c" dependencies = [ "num-conv", "time-core", @@ -9952,7 +9922,7 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls 0.23.25", + "rustls 0.23.23", "tokio", ] @@ -9988,7 +9958,7 @@ checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" dependencies = [ "futures-util", "log", - "rustls 0.23.25", + "rustls 0.23.23", "rustls-pki-types", "tokio", "tokio-rustls 0.26.2", @@ -10126,18 +10096,6 @@ dependencies = [ "valuable", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "futures", - "futures-task", - "pin-project", - "tracing", -] - [[package]] name = "tracing-log" version = "0.2.0" @@ -10262,7 +10220,7 @@ dependencies = [ "httparse", "log", "rand 0.9.0", - "rustls 0.23.25", + "rustls 0.23.23", "rustls-pki-types", "sha1", "thiserror 2.0.12", @@ -10493,11 +10451,11 @@ dependencies = [ [[package]] name = "uuid" -version = "1.16.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.1", ] [[package]] @@ -10796,9 +10754,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.13.3+wasi-0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" dependencies = [ "wit-bindgen-rt", ] @@ -10956,9 +10914,9 @@ checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c" [[package]] name = "widestring" -version = "1.2.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" [[package]] name = "winapi" @@ -11080,9 +11038,9 @@ dependencies = [ [[package]] name = "windows-link" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" [[package]] name = "windows-registry" @@ -11090,7 +11048,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" dependencies = [ - "windows-result 0.3.2", + "windows-result 0.3.1", "windows-strings 0.3.1", "windows-targets 0.53.0", ] @@ -11115,9 +11073,9 @@ dependencies = [ [[package]] name = "windows-result" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" +checksum = "06374efe858fab7e4f881500e6e86ec8bc28f9462c47e5a9941a0142ad86b189" dependencies = [ "windows-link", ] @@ -11449,9 +11407,9 @@ dependencies = [ [[package]] name = "wit-bindgen-rt" -version = "0.39.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" dependencies = [ "bitflags 2.9.0", ] @@ -11635,11 +11593,11 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.24" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" +checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" dependencies = [ - "zerocopy-derive 0.8.24", + "zerocopy-derive 0.8.23", ] [[package]] @@ -11655,9 +11613,9 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.8.24" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" +checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" dependencies = [ "proc-macro2", "quote", From ff2d17d47bb4464bc51cbd270aed87205fd77bab Mon Sep 17 00:00:00 2001 From: Zacholme7 Date: Tue, 25 Mar 2025 17:17:22 +0000 Subject: [PATCH 13/52] fix enrs --- anchor/integration/mock-data/operator-0/network/enr.dat | 2 +- anchor/integration/mock-data/operator-1/network/enr.dat | 2 +- anchor/integration/mock-data/operator-2/network/enr.dat | 2 +- anchor/integration/mock-data/operator-3/network/enr.dat | 2 +- anchor/integration/src/cli.rs | 2 +- anchor/integration/src/local_anchor_node.rs | 3 ++- 6 files changed, 7 insertions(+), 6 deletions(-) diff --git a/anchor/integration/mock-data/operator-0/network/enr.dat b/anchor/integration/mock-data/operator-0/network/enr.dat index adb245304..3e58900f9 100644 --- a/anchor/integration/mock-data/operator-0/network/enr.dat +++ b/anchor/integration/mock-data/operator-0/network/enr.dat @@ -1 +1 @@ -enr:-Lm4QGnIFs17EPlcrWAdSDpeZhnQBIiQKqWaB0pCrum4AlwdZJ5z-fzgE0HJ4C53NOIWfA5bkaYzC3hw0A-RTNNEdXIGimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIQAAAAAiXNlY3AyNTZrMaECaPlPg6llvSR72agpjDRQT5OO4AXeeN5FE6NCvFjJJA2Dc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOMg3VkcIIjjA \ No newline at end of file +enr:-Lm4QFcWW0UiRxHf9axnexheYYQY2gzFllq1S-MSHBY280qmEn96RHdzH_lnLT0_ABSjF-sCMhwgMjy66kYNMZbLiZ8EimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaECaPlPg6llvSR72agpjDRQT5OO4AXeeN5FE6NCvFjJJA2Dc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOMg3VkcIIjjA \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-1/network/enr.dat b/anchor/integration/mock-data/operator-1/network/enr.dat index 035f82e68..287639c40 100644 --- a/anchor/integration/mock-data/operator-1/network/enr.dat +++ b/anchor/integration/mock-data/operator-1/network/enr.dat @@ -1 +1 @@ -enr:-Lm4QNyhSSgG3NUSwXrtwEsjaumWgZT9foYP_XvUmoUy_yUAGL6OGOZNECbTcxMnXgQEYFYHacU7PD48j1KNObXJ_zEGimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIQAAAAAiXNlY3AyNTZrMaED2Co9yNAVB_HzvgLyBGluB_P3sTNQEBL3jFui1g09e2KDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOLg3VkcIIjiw \ No newline at end of file +enr:-Lm4QAKCB7sfITcCqWexd1GnjkDNo2Fn9K0A8ypuix0RkztJNGcyAxStS6xY_amzyQqAmieipUZJAwe9UfS9dhZZ934EimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaED2Co9yNAVB_HzvgLyBGluB_P3sTNQEBL3jFui1g09e2KDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOLg3VkcIIjiw \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-2/network/enr.dat b/anchor/integration/mock-data/operator-2/network/enr.dat index 16f00788c..38bb4ed3a 100644 --- a/anchor/integration/mock-data/operator-2/network/enr.dat +++ b/anchor/integration/mock-data/operator-2/network/enr.dat @@ -1 +1 @@ -enr:-Lm4QIfdMHmaH7_7EFNJLd3Z_Gp1F-bR9wFuvrrd9U44wHxeasICIE580ygXq8IzYvFXoVDS2P-pWRwacv6pgSSlNmEGimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIQAAAAAiXNlY3AyNTZrMaEDjar53KDREPVxc-NN-ZqpkZwA3m9pFzyo3Sq40axfVUqDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOKg3VkcIIjig \ No newline at end of file +enr:-Lm4QCNJtyFI75gt7pGlLKS04szYBUcJLutqmIY1ZMUGesUqTSTLT26DQSBvgo3O2zonpgGIIaHm_t0Vx-kFLfLv7HgEimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaEDjar53KDREPVxc-NN-ZqpkZwA3m9pFzyo3Sq40axfVUqDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOKg3VkcIIjig \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-3/network/enr.dat b/anchor/integration/mock-data/operator-3/network/enr.dat index eb0bab7eb..d90a0fb8d 100644 --- a/anchor/integration/mock-data/operator-3/network/enr.dat +++ b/anchor/integration/mock-data/operator-3/network/enr.dat @@ -1 +1 @@ -enr:-Lm4QD_bNJWlBnGAI2XABdznm4qsLi9k04EEiHLqf9bXkusoIDjpt7fya8x4bgf41a6CArl3G4TFAzN8IUraIXccOdwGimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIQAAAAAiXNlY3AyNTZrMaECOPl0gmoUPh-D_Rk9G2jptU4xFaOlzPLtgDJ8h9guVx6Dc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOJg3VkcIIjiQ \ No newline at end of file +enr:-Lm4QBkZgkL75p8QlUQeGa_QzSwtn8EVEbpzEZDE4jeQ_X9_Cvw1H-OMjnoUu_GZWa-ckBYyKJL4-vlhvPvp031cJLwEimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaECOPl0gmoUPh-D_Rk9G2jptU4xFaOlzPLtgDJ8h9guVx6Dc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOJg3VkcIIjiQ \ No newline at end of file diff --git a/anchor/integration/src/cli.rs b/anchor/integration/src/cli.rs index 42618d54b..85ef1a17e 100644 --- a/anchor/integration/src/cli.rs +++ b/anchor/integration/src/cli.rs @@ -29,7 +29,7 @@ pub fn cli_app() -> Command { .short('v') .long("validators-per-node") .action(ArgAction::Set) - .default_value("20") + .default_value("10") .help("Number of validators"), ) .arg( diff --git a/anchor/integration/src/local_anchor_node.rs b/anchor/integration/src/local_anchor_node.rs index 3b01a685d..5f25c2fe8 100644 --- a/anchor/integration/src/local_anchor_node.rs +++ b/anchor/integration/src/local_anchor_node.rs @@ -2,6 +2,7 @@ use client::config::Config; use client::Client; use lighthouse_network::{ListenAddr, ListenAddress}; use network::load_enr_from_disk; +use std::net::Ipv4Addr; use network::Enr; use std::path::PathBuf; use task_executor::TaskExecutor; @@ -40,7 +41,7 @@ impl LocalAnchorNode { anchor_config.network.enr_udp4_port = Some(discv5_port.try_into().unwrap()); anchor_config.network.enr_tcp4_port = Some(libp2p_tcp_port.try_into().unwrap()); - anchor_config.network.enr_address = (Some(DEFAULT_IPV4_ADDRESS), None); + anchor_config.network.enr_address = (Some(Ipv4Addr::LOCALHOST), None); anchor_config.network.disable_quic_support = true; Self { From c5da0b882530de0ce572bfb022736b98dd1bf3b8 Mon Sep 17 00:00:00 2001 From: Zacholme7 Date: Tue, 25 Mar 2025 23:05:34 +0000 Subject: [PATCH 14/52] hardcode validators into database --- .../mock-data/operator-0/anchor_db.sqlite | Bin 86016 -> 86016 bytes .../mock-data/operator-0/network/enr.dat | 2 +- .../operator-0/slashing_protection.sqlite | Bin 28672 -> 28672 bytes .../slashing_protection.sqlite-journal | Bin 0 -> 12824 bytes .../mock-data/operator-1/anchor_db.sqlite | Bin 86016 -> 86016 bytes .../mock-data/operator-1/network/enr.dat | 2 +- .../operator-1/slashing_protection.sqlite | Bin 28672 -> 28672 bytes .../slashing_protection.sqlite-journal | Bin 0 -> 12824 bytes .../mock-data/operator-2/anchor_db.sqlite | Bin 86016 -> 86016 bytes .../mock-data/operator-2/network/enr.dat | 2 +- .../operator-2/slashing_protection.sqlite | Bin 28672 -> 28672 bytes .../slashing_protection.sqlite-journal | Bin 0 -> 12824 bytes .../mock-data/operator-3/anchor_db.sqlite | Bin 86016 -> 86016 bytes .../mock-data/operator-3/network/enr.dat | 2 +- .../operator-3/slashing_protection.sqlite | Bin 28672 -> 28672 bytes .../slashing_protection.sqlite-journal | Bin 0 -> 12824 bytes anchor/integration/src/main.rs | 2 +- 17 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 anchor/integration/mock-data/operator-0/slashing_protection.sqlite-journal create mode 100644 anchor/integration/mock-data/operator-1/slashing_protection.sqlite-journal create mode 100644 anchor/integration/mock-data/operator-2/slashing_protection.sqlite-journal create mode 100644 anchor/integration/mock-data/operator-3/slashing_protection.sqlite-journal diff --git a/anchor/integration/mock-data/operator-0/anchor_db.sqlite b/anchor/integration/mock-data/operator-0/anchor_db.sqlite index 159147d7039ac49ea35cc750aa618f33aa0514c8..2eff6e46be5b9ac53bf4a493332e3ddc2b1d62f8 100644 GIT binary patch delta 10847 zcmchdOKeBNUSVD)<&XARUwQ@+wV?%$5wQmNyc-pXEo!w^E==3 z+M^`yjA}+?gs&Uoly=5|g-%DJqH@+)W!x@rA?Il=WyDTdNincF=L$1nqgBG0V2EIp zMe4Yc%5tSG{1!5dIE}du6717HqQH<6L<>idMHqV$qyiH>EOYG0&wd4tw8%niP*glB zMk1rw2IE}Bgd+>S^U@lQEkp%H4_LvhU?IV?kAEffnfI%G2^5<}S- z^wzI?%L+qESZN3f*cm2JuwGm1C9IZ%fs#t(jI}sw!&u}LIR-Bw2t`pySe=jHOGgw| zieqCWTxt|t!woY$?0T@3dr&EdA-qva=e1W}8i|eMP7&c4HX8g7Q4kPrixrAsgW@C# z1CB&m``{^9&6O7-2#9f1fdN_=<`pcCjCre{uY(66(TN2ITIM16G(r-AZ>U$;dq@=@ z1DDdX$Q*_L2S`rh0$f2va7HnOxr3EK9%=%=9;la@H>ib#VMg1r2Y>l?Z`neegLMLO zLug5ap;$S%N=s~^8YCuKI)NcQm=Rn;3K|wQvz$o}X~wN_uzsa6QdU@Da12yv?jgY> zGiVHgoUi8|G+G-e0=QX=C~bhs;TG1(eF#=MC}DU5)q`@8|(~C@7mz2!$0+(>AyGn*Jr+;u?L`0cx$Bi+>+{M|WP-5CD$ zrO|V>V?S&I9GXSh+w?uJU46OyK72LZx6ys?$MtGRJAbH(w0)^6($?kY>&tUX#RD>N zHH*`g_ra!0NSlAIinRWhsz_`9-mWi~ey29Br)ywSC8V8?t0HZGQWa_IKUqB;yjjg< zuex4O|IKo*3ex8Psv@m_S`}&SGpMK1AL*c;E_Cbl%&0Q%{Px}WWhrrCr%@SdyHy!# zt5b)XD*KLh?7%DC%&JOIn@g3U*87#A)`s=0u5RtYZRY2;ajd#W#~D}!YUhs1P}|2U zLv0<;>Z)Igwda32O81%24a4DnqT^o7Gj>Cp_2d>i)4+WuH%v_p1jgLv24) z8EWg1tgdc6C7bsl+4cSEbY@j0sLiichFbr6WvI0?byxr9@KWtW`|;Y+&zJP#hr=KA zzuUXod!g4~_EYZalWsXuvjwX4P>w3z!_)lqw$`beqY6oBCTXvEat2f(DNR!m8+T8V z;!s+{0a8QSCs=+tH>&K%nC6!zq*StG*|;NjU$IeXe(LDaiBY#9i>6t0(bkb!P=%y4 zMS^XP=7uUHr9HK`F`R_zHXK-JRUvARG{|i-G?gnXxB7diLQtlC30 v?wz0tHH$RAk+;@~o1+RzX{PDA=3O(O3Q1|&AYbEn-kC}fefs-UpF6(*8VK?< delta 918 zcmYk4O=uHA6vs2^PIj`hAB{$l8YGIeQ8c6=(vu$uf{;tS^CLyhwwKj;SAlRyi>qm5ElC86+|L^_Zytnh_r6yo%0^Z&U zN}13JSn@>A^gT^F4@t3-AdAz-$e&3}+EuRo=?Lto(iv=DAeZFH-)1 zNVzC5fkt0;D~foGyGB$m5xp`sI~M~)vf|4p6?N#);9;+K4AN!b+YnP|dQhJC7K@9h$i+)w_ z-a6;}&i|a(bt>04*LTNxQ12~+}=KqXKKR05MEaPO7w z-0Io0-TT+aA@1eRhrL}2z%mwywT9t2h+901?J`Q(AdHjKwH=gd^ z8tvTK-ya|6_vBk&-q;#my>hKd!%L6*zBbqzULI}@uU#5me=Mgj?b6yY`b~l#CS`DJ z|M|h=P9NX1Hk_SZy(zn$-CLC3IQZNiK4k5LyW{-_&v#A$y~9sUyZY+6|B;M` zupXu1;nSIwe|EnApgHuO*54_##on34A1q#6`2E7|g}M3f&TA~JMU3ig< zL{d3f?z|AB7|SfmWGx)XE@Pu%#R|oFU^#OZ?CAN{kRt`-!dkC`71|pvxy>-9Ww1<& zOop7a(o=MiWrsylOX7H@l=Mp2g5^OZ=Tis>E%_o`aVduALK;2SqVv`ko?Nt&2S-|K z$CZgCI+H>U!YHYVOxjr&wet~g!h#aXbM3Q5M4k%Eia8^^NrFYjIf-l?d?)xfI^9MT zSwuEiak@Aqijq9$kW%47vj|#bW6(Sz53CT(8WoLVcs)2BBV)!#nJw3F!*Oq%%C;mH z8*Cy-HCj0|~29bkMYjAQu%O-LgP0fFj9pB8Y=Z*4C0LDoI?= z(4j~fJA}z8IOVub@C=gk0`HzB*#?7*kcbLCj+PD$MI<=KWW2Y=TVaCaE@79qJVN-E z3vZL*(1i*{TZk^G;#Jhj5`?8=Nbuiz&RjIn1YWW^k*>-SWuSaikRfp`i%}liwUpYI?4nnw^sH1GEw&MP zn^DiWn6!vKCQ1Ri)o2S4wSn?1lE5TvT81W)1N>Hsmm&orEyg6xC_rc+mJNzuN0BqU zOEF5HM+--WD1s)D3mLr!`>YPAj?6vcPujB>EqPIdga;~fE>ZiICv*{+ig9quDAbwH zC4#6SjZ8KI6-JU7&9{aeq-wwfO-$NYn3G^aO{qfi9H~xCs5WsOplQS&q*PKjzGV)b z$Aol3$O)_!8lGfL6*@@FMiIhjt~CU=Qe+x=Pa?vmvMfZQdG^i{T7=|9=YTVv2?3VO zm?eU-kWI=c0Fi}C+-Du4bSM&sexzkI5+qz2&9;VQ2}pZ^^oXI>JqMzUUg<;e33(6!K{5(2$2d5hgiiqZFvRh+e}24@H4YNRFfd76w&NP)G*}uC($g6XReji6B$m z+$SAM)SzKz$dZwV@67Pgsn(Eo5)N8;LTKGk4;sD9-WE8BW@k~|mYjl-1OB~i z8ZVHb!Tk!0V@`##l@3tQ{-e=QB=VcssC#J0;d(~RfgWy?=$Bdq4;dG9ee^6UqTtSL zWFeLev({*ixHAb>1a4G>MM4P_vw zU(db0@S)|f_|y5T^FQi+ZQ)-3U;Q`xYrV5eKVQ1p`}5J z0{Vw`COryRYU7#kB%s&EGvPtN;*p(+&H)x$I};uQ%(r$XJO!9*?M!$GFnefc(ldaW z*3N`S0MmzdCOrX|YVAyT0C1|{zKv1-q(A>R-~Z!3{nw)ss01p3N}v*`1S)|_pc1GA zDuGI%5~u{8VFJzf|Mm0#Go0WWS|v~kR05SiB~S@e0+m1|Pzh85l|Ur`0?qgT-Id>U z@KcXUpc1GADuGI%5~u_!fl8nfs01p3N}v+>KO^wb?o4-ne!c(B58v8+?IXV}-}&mt z-u&?&{`k(NU;gLCKfS2CfBweLX6?;y-fzDD@2>p2gP(d-0+m1|Pzh85l|Us>2~+}= VKqXKKR05U2Ge=-%x;wwn|1VDc6IK8K delta 94 zcmZp8z}WDBae_1>%S0JxMwX2UOZX+YxSuibPv_U;JIWWs`Iw!Nj&ZZ5mnXQb_EH&@xuC2y2-dJ-X^E zc=h0Oc=G0Zc=G}DCbaTzVb{HwY_>lVQf3&M`F*}*5{BdO*l_{zAOg6z;|f?l3ZMWA zpa2S>01BW03ZMWApa2Toa)D1@8%9{7P>brseSlk@HkOA1D1ZVefC4Ch0w{n2D1ZVe zuKKS_Jir*^tz`S3p11Cro zPO8+u)jr?-A$_ksyW$zVg#svm0w{n2D1ZVefCB$h;N1}~%8dqpK4sS2rLQg5u`TAW zg7j){ppl+VK=1Vx0%78ne=af(!MBnyZpyTn=%4t=~3IX z7^4BRnB#jvNtci-tYkn*g-Q8lT5GYsz+bNx)TC$r;zc477g-$6tksgTYY&fR>Uc|Y z<@+q}SN!YYL?h#o8pY7c&bpB=Yvym-W(l-;Skft;4=SSEZ1NvSHq^Q6FHYk)w~cC9klS0=j4*kv zih_X~D#vg26R2;*T@kdK@H2xE(t#ISAd*MD(eHj9IFQx}JJcTbQgOs^~9f_f)fRDUx1`wxV?c^3cx literal 0 HcmV?d00001 diff --git a/anchor/integration/mock-data/operator-1/anchor_db.sqlite b/anchor/integration/mock-data/operator-1/anchor_db.sqlite index d154149dce5c425c86b1345b1a0e3349adfd43c3..2eff6e46be5b9ac53bf4a493332e3ddc2b1d62f8 100644 GIT binary patch delta 10853 zcmchdONd=}9mnr`?#z89HBDoaw&~MUH2mKWbRk&qK{o}vs8E>yvr0F1Vd?IlETnel zbig9QQ0S`aRMHXRVj``EU>i{pTn*H$r_hoj;z+Ij&dr=VLpYP0+_~q>UEMqP+|U2_ z{Gapx{?5JLKKFY2CnxJyR!)7reWiBx#aAx)pFdE4kyAjBW|2@OjEP^&ac0= z`rkKu%SL#Lk+(J)s|_KHqsX<^G%9JB3*1{l2#wV8h$BUwI2N45N)zH4LIGLoq=W?o z72raFq9hDsgF?W_$PD!S`7_5IsHmJZRvEX;TgZ7@OBu0KR#FUX&bh)& z*l3k-CKw_ZWsy3rq_SLT3%`X7BTi$kg9Q7uk0>yt1ku6~WD&-m1gXFT56c`o^0Qxp zBQ3HJ8x$3fijl}Dw!t_TG2zI9@4U2zV+&D1(F0a6D;R>$jpEiKB($YLVh+ntSPR91 zj1Jk%iNsJg2EF;K-m=1w5>^_50(OQ86s*_QdI_uLV4$QDIb$u3+AtP5MUKHs2trX5 z5?1FU_|g%DmEzbK36~lL*KorO54#?0SE% zz&F$@>^-E4kAX|+S!9mF{{ti^aRII%A~>U%!rZ~iAP+TxUk}vF%p24~!Z4%l*n_`# ztG8?+&cQkXxgoS9!ceRnT%{$pPz@3jEuFxS9?S?XAq5SKnpw`Ihcx5XI9R{Z7%3~P zFgOM(H208Tk{L7xLC)864;rnF6an0ll>P47xyIEX(tq?vn3H}~A3dPthyL>6+3%IG0!UlZx< zg39h8?VJO>BbC`aTDj*A?j30^&7-*sy7S(V?yPwJR26CMqwV@~>33@5db$oaRYKbNq$<+(KdT~b z{VS`dgEy{U1F>EBuIRYBVPPgSJ#PpcxWeFpVZ`Xe3G)5UJRo*7lfo!`D2zbqv# z?ldYxZMP~zZFTBUQ)S=LjvaWln^{!}YICVF)Ox=%)Y`C~)z$4ixXt|BHjY*I=r{wb zK<(UB8EX4jWvH#=SzVQWewH<+t0yw6DnV`DTN!HoRAs2O`?I<#`-JC4T|GFqs_gUW z@qYDCWvJ~(Dno5OmetkGr)2X!B)hR+oyn}K1hx6a%24ZHstmPuw(ja*8D6fPXg^U~ zdSgj1{$=>x{ zLKTwIKIN_PSnj{WT2+YJM|w23$)wwk)NFxjJ(8n}_wY17y{&cX)~G^Knn~Jgo}2+y zNJ`UG#Kygoq&Sq;aDdd1_6e4s&y6bkF{b&s2`QBnx8s)bYj#U$f9W$ zU9@#%7E~cAO_5-mqq(69Noh~*Z44)&x&sFmT2+YJBMow!3{B+<%dP$%s*sfCreQaG zQ&5GZG>cr`Sjr=H=u^ZrMVVjBjVdnRLs#!;GThKQ271@uR#yJ}+NE#QyQ%CgxOHY} z;ZkkXIbIulJowSzWPhXot=>O+KODU_`ttA(!;{Y}e5bSBIoCP9aOvjPg_RH5*&-KH z$@~ delta 924 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 VKqXKKR05U2Ge=-%x;wwn|1VDc6IK8K delta 94 zcmZp8z}WDBae_1>%S0JxMwX2UOZX+YxSuibPv_U;JIWWs`npd(Y)X1OJ2fb7(BLIfUm>=_qJRC%SQne zKmim$0Te(16hHwKKmim$fm<%{rSkh>R3cZ6>%@J4Tb?$ShXN>o0w{n2D1ZVefC4Ch z0w}QU0)O`b*zuw4P#a$Q!Ldo99c>A)Eb|l~@+n6rzu^?O<8yVetBWgs%gh7gezgV+ zCzKeWRQp!_boZz5z53#cXYdvZpa2S>01BW03ZMWA{7-?m`z$Zk>+JcMnp4+4HC@Lt zsUL*vtDT-oIvN43)0GLV`=MEZ3x{LDP|?VMsPJ4J9(2?RJR_4N+#y$bJJ| zdDI1Eq=BN#GU&?iP$!x3EwH_KY8G@yBY8b^pY%JrtbwNLM0zLe@?yKqet5DhBXs7T zZ5bw|c1TU?_+D7h#bpXB7*J4QTE4NaHD6!oFM^qE*eCw%RVuP7GC!P}!Q7_T9v;us z@#aS0`!ws9|LgupCBuOd$I#rIy96rf6O|}EGTz9v=~z-mKMptv1v1aKU~|&hXC%UL z;-t+oj%V3t;cGYg$TG|Y^_Oj<0NU6q=;Y6PC0=Ya*!N^J)T!&wj#hCdjdD?t$*pTf zn7&qd!O)GAS8w&@8QzRg;>lhJ<58It4;udnBf&~zNSeE~U(Dy_;vn4A#X)NCaN?kT ZS#{|f9~yh>>r%9!-ia60$6tSZ`~yb$c@+Qv literal 0 HcmV?d00001 diff --git a/anchor/integration/mock-data/operator-2/anchor_db.sqlite b/anchor/integration/mock-data/operator-2/anchor_db.sqlite index 46ccb7edbeb44fb02e92df13f0adfa0c8dfc7904..2eff6e46be5b9ac53bf4a493332e3ddc2b1d62f8 100644 GIT binary patch delta 10853 zcmchdONd=}9mnr`?#z89HBDoaw&~MUH2mKWbRk&qK{o}vs8E>yvr0F1Vd?IlETnel zbig9QQ0S`aRMHXRVj``EU>i{pTn*H$r_hoj;z+Ij&dr=VLpYP0+_~q>UEMqP+|U2_ z{Gapx{?5JLKKFY2CnxJyR!)7reWiBx#aAx)pFdE4kyAjBW|2@OjEP^&ac0= z`rkKu%SL#Lk+(J)s|_KHqsX<^G%9JB3*1{l2#wV8h$BUwI2N45N)zH4LIGLoq=W?o z72raFq9hDsgF?W_$PD!S`7_5IsHmJZRvEX;TgZ7@OBu0KR#FUX&bh)& z*l3k-CKw_ZWsy3rq_SLT3%`X7BTi$kg9Q7uk0>yt1ku6~WD&-m1gXFT56c`o^0Qxp zBQ3HJ8x$3fijl}Dw!t_TG2zI9@4U2zV+&D1(F0a6D;R>$jpEiKB($YLVh+ntSPR91 zj1Jk%iNsJg2EF;K-m=1w5>^_50(OQ86s*_QdI_uLV4$QDIb$u3+AtP5MUKHs2trX5 z5?1FU_|g%DmEzbK36~lL*KorO54#?0SE% zz&F$@>^-E4kAX|+S!9mF{{ti^aRII%A~>U%!rZ~iAP+TxUk}vF%p24~!Z4%l*n_`# ztG8?+&cQkXxgoS9!ceRnT%{$pPz@3jEuFxS9?S?XAq5SKnpw`Ihcx5XI9R{Z7%3~P zFgOM(H208Tk{L7xLC)864;rnF6an0ll>P47xyIEX(tq?vn3H}~A3dPthyL>6+3%IG0!UlZx< zg39h8?VJO>BbC`aTDj*A?j30^&7-*sy7S(V?yPwJR26CMqwV@~>33@5db$oaRYKbNq$<+(KdT~b z{VS`dgEy{U1F>EBuIRYBVPPgSJ#PpcxWeFpVZ`Xe3G)5UJRo*7lfo!`D2zbqv# z?ldYxZMP~zZFTBUQ)S=LjvaWln^{!}YICVF)Ox=%)Y`C~)z$4ixXt|BHjY*I=r{wb zK<(UB8EX4jWvH#=SzVQWewH<+t0yw6DnV`DTN!HoRAs2O`?I<#`-JC4T|GFqs_gUW z@qYDCWvJ~(Dno5OmetkGr)2X!B)hR+oyn}K1hx6a%24ZHstmPuw(ja*8D6fPXg^U~ zdSgj1{$=>x{ zLKTwIKIN_PSnj{WT2+YJM|w23$)wwk)NFxjJ(8n}_wY17y{&cX)~G^Knn~Jgo}2+y zNJ`UG#Kygoq&Sq;aDdd1_6e4s&y6bkF{b&s2`QBnx8s)bYj#U$f9W$ zU9@#%7E~cAO_5-mqq(69Noh~*Z44)&x&sFmT2+YJBMow!3{B+<%dP$%s*sfCreQaG zQ&5GZG>cr`Sjr=H=u^ZrMVVjBjVdnRLs#!;GThKQ271@uR#yJ}+NE#QyQ%CgxOHY} z;ZkkXIbIulJowSzWPhXot=>O+KODU_`ttA(!;{Y}e5bSBIoCP9aOvjPg_RH5*&-KH z$@~ delta 924 zcmYk4O=uHA6vs2^PIj`hAB{$l8Z=62qi9G$q$fWR1Rp_g&U};Z!@T$qh4^T9j zgNhQ1w_0N{dnm=UBv=F~#3ZCu6KjKb3WBYQ7(b#jlWd(m{eSQO=DnRaFE#;V6Y$n{ zkW2WE!JH#_y60*1-cIl!<3DwcM&lnJl#uJ8kOQhWWH!Zg{wr#gl?`1WfLNadwG$o>={ z{ab)ks{#0sY1#||fLd(ijG9i78j?sg7ofe^gRsm+#5|j_ib!cyq?8V5zf!q<4tbbo zQ*)C@4X;SGt*qaNN~hm8=Gm0(5h?8xDYb+3V++Xdw~Ki;HFt~D=oP8f$NI5l<@XCP z&!+5Nk<$A_N(F%lH2SieQNUr`F@pL6(Th_vvmrnvE4*}EQ3nqU9CSKIAzcQ(4Izc5 zd*wNYaogChKi7w~HSMzIQ#0xbyoxVitUOc(-350P{Xz-UFVE36y&=OfS^%&;m8HOc P-POOLoz6aMwg}~a>jaH2 diff --git a/anchor/integration/mock-data/operator-2/network/enr.dat b/anchor/integration/mock-data/operator-2/network/enr.dat index 38bb4ed3a..380f23a36 100644 --- a/anchor/integration/mock-data/operator-2/network/enr.dat +++ b/anchor/integration/mock-data/operator-2/network/enr.dat @@ -1 +1 @@ -enr:-Lm4QCNJtyFI75gt7pGlLKS04szYBUcJLutqmIY1ZMUGesUqTSTLT26DQSBvgo3O2zonpgGIIaHm_t0Vx-kFLfLv7HgEimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaEDjar53KDREPVxc-NN-ZqpkZwA3m9pFzyo3Sq40axfVUqDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOKg3VkcIIjig \ No newline at end of file +enr:-Lm4QMlH8qsSmFZuCnuPDv1PvnHPq5-u462E_iA_gr-5VB9qYa_-Lj_GjVBxqXNgt5EAq0Uo_9CkOo0HrnYEStEFEkgIimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaEDjar53KDREPVxc-NN-ZqpkZwA3m9pFzyo3Sq40axfVUqDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOKg3VkcIIjig \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-2/slashing_protection.sqlite b/anchor/integration/mock-data/operator-2/slashing_protection.sqlite index 245de54de7ca5c77894ee77c651ee7e79c731b21..cd78444e94ec5c2af152becd4595da6d6645702c 100644 GIT binary patch literal 28672 zcmeI2O^94s700X6-(6kZnVCSNtBMR}8sc!jKNf;XrV@fZX}i+_1447}J@?i$)23s( zBICkEqJp{*1_aTCE?l}0!G*3w)P*u@QE=hl2jf!Qs0;D`l78v*q-UH>K@9h$i+)w_ z-a6;}&i|a(bt>04*LTNxQ12~+}=KqXKKR05MEaPO7w z-0Io0-TT+aA@1eRhrL}2z%mwywT9t2h+901?J`Q(AdHjKwH=gd^ z8tvTK-ya|6_vBk&-q;#my>hKd!%L6*zBbqzULI}@uU#5me=Mgj?b6yY`b~l#CS`DJ z|M|h=P9NX1Hk_SZy(zn$-CLC3IQZNiK4k5LyW{-_&v#A$y~9sUyZY+6|B;M` zupXu1;nSIwe|EnApgHuO*54_##on34A1q#6`2E7|g}M3f&TA~JMU3ig< zL{d3f?z|AB7|SfmWGx)XE@Pu%#R|oFU^#OZ?CAN{kRt`-!dkC`71|pvxy>-9Ww1<& zOop7a(o=MiWrsylOX7H@l=Mp2g5^OZ=Tis>E%_o`aVduALK;2SqVv`ko?Nt&2S-|K z$CZgCI+H>U!YHYVOxjr&wet~g!h#aXbM3Q5M4k%Eia8^^NrFYjIf-l?d?)xfI^9MT zSwuEiak@Aqijq9$kW%47vj|#bW6(Sz53CT(8WoLVcs)2BBV)!#nJw3F!*Oq%%C;mH z8*Cy-HCj0|~29bkMYjAQu%O-LgP0fFj9pB8Y=Z*4C0LDoI?= z(4j~fJA}z8IOVub@C=gk0`HzB*#?7*kcbLCj+PD$MI<=KWW2Y=TVaCaE@79qJVN-E z3vZL*(1i*{TZk^G;#Jhj5`?8=Nbuiz&RjIn1YWW^k*>-SWuSaikRfp`i%}liwUpYI?4nnw^sH1GEw&MP zn^DiWn6!vKCQ1Ri)o2S4wSn?1lE5TvT81W)1N>Hsmm&orEyg6xC_rc+mJNzuN0BqU zOEF5HM+--WD1s)D3mLr!`>YPAj?6vcPujB>EqPIdga;~fE>ZiICv*{+ig9quDAbwH zC4#6SjZ8KI6-JU7&9{aeq-wwfO-$NYn3G^aO{qfi9H~xCs5WsOplQS&q*PKjzGV)b z$Aol3$O)_!8lGfL6*@@FMiIhjt~CU=Qe+x=Pa?vmvMfZQdG^i{T7=|9=YTVv2?3VO zm?eU-kWI=c0Fi}C+-Du4bSM&sexzkI5+qz2&9;VQ2}pZ^^oXI>JqMzUUg<;e33(6!K{5(2$2d5hgiiqZFvRh+e}24@H4YNRFfd76w&NP)G*}uC($g6XReji6B$m z+$SAM)SzKz$dZwV@67Pgsn(Eo5)N8;LTKGk4;sD9-WE8BW@k~|mYjl-1OB~i z8ZVHb!Tk!0V@`##l@3tQ{-e=QB=VcssC#J0;d(~RfgWy?=$Bdq4;dG9ee^6UqTtSL zWFeLev({*ixHAb>1a4G>MM4P_vw zU(db0@S)|f_|y5T^FQi+ZQ)-3U;Q`xYrV5eKVQ1p`}5J z0{Vw`COryRYU7#kB%s&EGvPtN;*p(+&H)x$I};uQ%(r$XJO!9*?M!$GFnefc(ldaW z*3N`S0MmzdCOrX|YVAyT0C1|{zKv1-q(A>R-~Z!3{nw)ss01p3N}v*`1S)|_pc1GA zDuGI%5~u{8VFJzf|Mm0#Go0WWS|v~kR05SiB~S@e0+m1|Pzh85l|Ur`0?qgT-Id>U z@KcXUpc1GADuGI%5~u_!fl8nfs01p3N}v+>KO^wb?o4-ne!c(B58v8+?IXV}-}&mt z-u&?&{`k(NU;gLCKfS2CfBweLX6?;y-fzDD@2>p2gP(d-0+m1|Pzh85l|Us>2~+}= VKqXKKR05U2Ge=-%x;wwn|1VDc6IK8K delta 94 zcmZp8z}WDBae_1>%S0JxMwX2UOZX+YxSuibPv_U;JIWWs`#$-c0n7D~;ciJ?v)TNNv6QKnwS%kGrjUHX~ z9lUw)l!J|;*-_`L{Vf6EoHd=x+d z6hHwKKmim$0Te(16hHwKxa9)-hu?pOC35wsPTU8$)Sq4P4BkQk6hHwKKmim$0Te)i|0(e9h~Mw)rYNxM~u0}xX_GAKCKeYGY!r@pjQZzCoDm+z3$6a*_Psp^hG45|HKpO`oo&0&f!V9ey`+?*`ow@$}G>J2ARLg>lZ(TFO z^tIX)4BSvTd8;qa@MeS(P4+?<538JT-1yvr0F1Vd?IlETnel zbig9QQ0S`aRMHXRVj``EU>i{pTn*H$r_hoj;z+Ij&dr=VLpYP0+_~q>UEMqP+|U2_ z{Gapx{?5JLKKFY2CnxJyR!)7reWiBx#aAx)pFdE4kyAjBW|2@OjEP^&ac0= z`rkKu%SL#Lk+(J)s|_KHqsX<^G%9JB3*1{l2#wV8h$BUwI2N45N)zH4LIGLoq=W?o z72raFq9hDsgF?W_$PD!S`7_5IsHmJZRvEX;TgZ7@OBu0KR#FUX&bh)& z*l3k-CKw_ZWsy3rq_SLT3%`X7BTi$kg9Q7uk0>yt1ku6~WD&-m1gXFT56c`o^0Qxp zBQ3HJ8x$3fijl}Dw!t_TG2zI9@4U2zV+&D1(F0a6D;R>$jpEiKB($YLVh+ntSPR91 zj1Jk%iNsJg2EF;K-m=1w5>^_50(OQ86s*_QdI_uLV4$QDIb$u3+AtP5MUKHs2trX5 z5?1FU_|g%DmEzbK36~lL*KorO54#?0SE% zz&F$@>^-E4kAX|+S!9mF{{ti^aRII%A~>U%!rZ~iAP+TxUk}vF%p24~!Z4%l*n_`# ztG8?+&cQkXxgoS9!ceRnT%{$pPz@3jEuFxS9?S?XAq5SKnpw`Ihcx5XI9R{Z7%3~P zFgOM(H208Tk{L7xLC)864;rnF6an0ll>P47xyIEX(tq?vn3H}~A3dPthyL>6+3%IG0!UlZx< zg39h8?VJO>BbC`aTDj*A?j30^&7-*sy7S(V?yPwJR26CMqwV@~>33@5db$oaRYKbNq$<+(KdT~b z{VS`dgEy{U1F>EBuIRYBVPPgSJ#PpcxWeFpVZ`Xe3G)5UJRo*7lfo!`D2zbqv# z?ldYxZMP~zZFTBUQ)S=LjvaWln^{!}YICVF)Ox=%)Y`C~)z$4ixXt|BHjY*I=r{wb zK<(UB8EX4jWvH#=SzVQWewH<+t0yw6DnV`DTN!HoRAs2O`?I<#`-JC4T|GFqs_gUW z@qYDCWvJ~(Dno5OmetkGr)2X!B)hR+oyn}K1hx6a%24ZHstmPuw(ja*8D6fPXg^U~ zdSgj1{$=>x{ zLKTwIKIN_PSnj{WT2+YJM|w23$)wwk)NFxjJ(8n}_wY17y{&cX)~G^Knn~Jgo}2+y zNJ`UG#Kygoq&Sq;aDdd1_6e4s&y6bkF{b&s2`QBnx8s)bYj#U$f9W$ zU9@#%7E~cAO_5-mqq(69Noh~*Z44)&x&sFmT2+YJBMow!3{B+<%dP$%s*sfCreQaG zQ&5GZG>cr`Sjr=H=u^ZrMVVjBjVdnRLs#!;GThKQ271@uR#yJ}+NE#QyQ%CgxOHY} z;ZkkXIbIulJowSzWPhXot=>O+KODU_`ttA(!;{Y}e5bSBIoCP9aOvjPg_RH5*&-KH z$@~ delta 924 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 VKqXKKR05U2Ge=-%x;wwn|1VDc6IK8K delta 94 zcmZp8z}WDBae_1>%S0JxMwX2UOZX+YxSuibPv_U;JIWWs`7Wx>FcQt6k*9pP_XSzOEH_eX)5+Kq)n`GW3t;!MUSp} z_7ObzB7!&HW8cA}nZ`EFHoNXcShimvG&7l$`F{T}kP!qtwp>8o;{f-zTmj2R0Te(1 z6hHwKKmim$0Te(16hMJnF7Wv4{nNNasm$xdeSlk@HkOA1D1ZVefC4Ch0w{n2D1ZVe zu01Et1fsY5GtW>Mw*?`$&-+gEMo@29c z7Nu7^ZId)D0#>u76G;1^z6Tc$&w-v{kuEXex!F5xnj?5dMvaYeC-brIP3W=v0a|*$ z1xDWjW2oyeGCgkxX%2M@EOSWIPo-U1(KPYPlSLVkHw|2e z+KjmovzZqLQBIeXDJ*9|PKB%TXV)5=l}< znkaaIdP~{8KLmWUI^n+QBn?T{|F<&TE&nwcPqbz?~BEubW;}xRoju2ZuPS2 XR&RVn_tWb_yrACUi|UIvKhFOEk~??G literal 0 HcmV?d00001 diff --git a/anchor/integration/src/main.rs b/anchor/integration/src/main.rs index 47be3d8e2..7a83ed1de 100644 --- a/anchor/integration/src/main.rs +++ b/anchor/integration/src/main.rs @@ -15,7 +15,7 @@ fn main() -> Result<(), String> { if std::env::var("RUST_LOG").is_err() { std::env::set_var( "RUST_LOG", - "integration=debug,execution=debug,client=debug,beacon_node_fallback=debug,anchor=debug,network=debug", + "integration=debug,execution=debug,client=debug,beacon_node_fallback=debug,anchor=debug,network=debug,qbft=debug", ); } Builder::from_env(Env::default()).init(); From 2db08b49aecc38c7b4026bc6f67833753dbe9b74 Mon Sep 17 00:00:00 2001 From: ThreeHrSleep Date: Wed, 26 Mar 2025 14:30:13 +0530 Subject: [PATCH 15/52] suppress dependency generated logs --- anchor/integration/src/main.rs | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/anchor/integration/src/main.rs b/anchor/integration/src/main.rs index ac1f5c24b..31bffbb47 100644 --- a/anchor/integration/src/main.rs +++ b/anchor/integration/src/main.rs @@ -1,7 +1,7 @@ use crate::basic_sim::BasicSim; use crate::cli::cli_app; -use env_logger::{Builder, Env}; use tracing::error; +use tracing_subscriber::{filter::filter_fn, fmt, prelude::*, EnvFilter}; mod basic_sim; mod checks; @@ -15,10 +15,28 @@ fn main() -> Result<(), String> { if std::env::var("RUST_LOG").is_err() { std::env::set_var( "RUST_LOG", - "integration=debug,execution=debug,client=debug,beacon_node_fallback=debug,anchor=debug", + "integration=debug,execution=debug,network=debug,client=debug,beacon_node_fallback=debug,anchor=debug", ); } - Builder::from_env(Env::default()).init(); + + let env_filter = EnvFilter::from_env("RUST_LOG"); + + let dep_log_filter = filter_fn(|metadata| { + if let Some(file) = metadata.file() { + !file.contains("/.cargo/") + } else { + true + } + }); + + if let Err(e) = tracing_subscriber::registry() + .with(env_filter) + .with(dep_log_filter) + .with(fmt::layer()) + .try_init() + { + eprintln!("Failed to initialize logging: {e}"); + } let matches = cli_app().get_matches(); match matches.subcommand() { From b41f292621da1769fe0cdc761a3b4ccb144f3e4e Mon Sep 17 00:00:00 2001 From: ThreeHrSleep Date: Wed, 26 Mar 2025 14:36:21 +0530 Subject: [PATCH 16/52] nit --- anchor/integration/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/anchor/integration/src/main.rs b/anchor/integration/src/main.rs index 597332498..0a3b97e3b 100644 --- a/anchor/integration/src/main.rs +++ b/anchor/integration/src/main.rs @@ -15,7 +15,7 @@ fn main() -> Result<(), String> { if std::env::var("RUST_LOG").is_err() { std::env::set_var( "RUST_LOG", - "integration=debug,execution=debug,network=debug,client=debug,beacon_node_fallback=debug,anchor=debug,network=debug,qbft=debug", + "integration=debug,execution=debug,client=debug,beacon_node_fallback=debug,anchor=debug,network=debug,qbft=debug", ); } From 30ed4ae08ca6eb8ae72f1a6b456204f354f625a3 Mon Sep 17 00:00:00 2001 From: ThreeHrSleep Date: Wed, 26 Mar 2025 15:03:08 +0530 Subject: [PATCH 17/52] udeps --- Cargo.lock | 57 ----------------------------------- anchor/integration/Cargo.toml | 1 - 2 files changed, 58 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 79e778ede..fea2f7043 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3170,29 +3170,6 @@ dependencies = [ "syn 2.0.100", ] -[[package]] -name = "env_filter" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.11.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3716d7a920fb4fac5d84e9d4bce8ceb321e9414b4409da61b07b75c1e3d0697" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "jiff", - "log", -] - [[package]] name = "environment" version = "0.1.2" @@ -5167,7 +5144,6 @@ dependencies = [ "clap", "client 0.1.0", "discv5", - "env_logger", "environment", "ethereum_serde_utils", "execution_layer", @@ -5258,30 +5234,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" -[[package]] -name = "jiff" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c102670231191d07d37a35af3eb77f1f0dbf7a71be51a962dcd57ea607be7260" -dependencies = [ - "jiff-static", - "log", - "portable-atomic", - "portable-atomic-util", - "serde", -] - -[[package]] -name = "jiff-static" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cdde31a9d349f1b1f51a0b3714a5940ac022976f4b49485fc04be052b183b4c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "jobserver" version = "0.1.32" @@ -7543,15 +7495,6 @@ version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" -[[package]] -name = "portable-atomic-util" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" -dependencies = [ - "portable-atomic", -] - [[package]] name = "powerfmt" version = "0.2.0" diff --git a/anchor/integration/Cargo.toml b/anchor/integration/Cargo.toml index a99d69ebf..bd809ee24 100644 --- a/anchor/integration/Cargo.toml +++ b/anchor/integration/Cargo.toml @@ -8,7 +8,6 @@ edition = "2021" clap = { workspace = true } client = { workspace = true } discv5 = { workspace = true } -env_logger = "0.11.6" environment = { git = "https://github.com/sigp/lighthouse", rev = "22faccb" } ethereum_serde_utils = { workspace = true } execution_layer = { git = "https://github.com/sigp/lighthouse", rev = "22faccb" } From c4eb22f3974457dec86d7be37a5379c8ceb03130 Mon Sep 17 00:00:00 2001 From: Zacholme7 Date: Wed, 26 Mar 2025 12:57:42 +0000 Subject: [PATCH 18/52] untrack enr files --- anchor/integration/.gitignore | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 anchor/integration/.gitignore diff --git a/anchor/integration/.gitignore b/anchor/integration/.gitignore new file mode 100644 index 000000000..01cc6ec89 --- /dev/null +++ b/anchor/integration/.gitignore @@ -0,0 +1,4 @@ +mock-data/operator-0/network/enr.dat +mock-data/operator-1/network/enr.dat +mock-data/operator-2/network/enr.dat +mock-data/operator-3/network/enr.dat From a79d1e956a618528b5f1bf5e4cfc80fd1776ccfe Mon Sep 17 00:00:00 2001 From: Zacholme7 Date: Wed, 26 Mar 2025 15:17:03 +0000 Subject: [PATCH 19/52] revert --- anchor/integration/.gitignore | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 anchor/integration/.gitignore diff --git a/anchor/integration/.gitignore b/anchor/integration/.gitignore deleted file mode 100644 index 01cc6ec89..000000000 --- a/anchor/integration/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -mock-data/operator-0/network/enr.dat -mock-data/operator-1/network/enr.dat -mock-data/operator-2/network/enr.dat -mock-data/operator-3/network/enr.dat From 781fa2679c7f5709987d4f8b156c8b3fb3cd9216 Mon Sep 17 00:00:00 2001 From: Zacholme7 Date: Wed, 26 Mar 2025 16:32:03 +0000 Subject: [PATCH 20/52] correct all keyshares and encrypted keyshares --- .../mock-data/operator-0/anchor_db.sqlite | Bin 86016 -> 86016 bytes .../mock-data/operator-1/anchor_db.sqlite | Bin 86016 -> 86016 bytes .../mock-data/operator-2/anchor_db.sqlite | Bin 86016 -> 86016 bytes .../mock-data/operator-3/anchor_db.sqlite | Bin 86016 -> 86016 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/anchor/integration/mock-data/operator-0/anchor_db.sqlite b/anchor/integration/mock-data/operator-0/anchor_db.sqlite index 2eff6e46be5b9ac53bf4a493332e3ddc2b1d62f8..8aed9b16585c2f5c2c12fd7f97d53048f89f3899 100644 GIT binary patch delta 17874 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 Date: Thu, 27 Mar 2025 13:24:46 +0000 Subject: [PATCH 21/52] nits and remove chainging db info --- anchor/integration/.gitignore | 3 ++ .../mock-data/operator-0/network/enr.dat | 1 - .../operator-0/slashing_protection.sqlite | Bin 28672 -> 0 bytes .../slashing_protection.sqlite-journal | Bin 12824 -> 0 bytes .../mock-data/operator-1/network/enr.dat | 1 - .../operator-1/slashing_protection.sqlite | Bin 28672 -> 0 bytes .../slashing_protection.sqlite-journal | Bin 12824 -> 0 bytes .../mock-data/operator-2/network/enr.dat | 1 - .../operator-2/slashing_protection.sqlite | Bin 28672 -> 0 bytes .../slashing_protection.sqlite-journal | Bin 12824 -> 0 bytes .../mock-data/operator-3/network/enr.dat | 1 - .../operator-3/slashing_protection.sqlite | Bin 28672 -> 0 bytes .../slashing_protection.sqlite-journal | Bin 12824 -> 0 bytes anchor/integration/src/basic_sim.rs | 3 -- anchor/integration/src/cli.rs | 16 ------ anchor/integration/src/local_anchor_node.rs | 1 + anchor/integration/src/local_network.rs | 4 ++ anchor/integration/src/main.rs | 29 ++--------- anchor/integration/src/mock_websocket.rs | 3 ++ anchor/integration/src/util.rs | 48 +++++++++++++----- 20 files changed, 48 insertions(+), 63 deletions(-) create mode 100644 anchor/integration/.gitignore delete mode 100644 anchor/integration/mock-data/operator-0/network/enr.dat delete mode 100644 anchor/integration/mock-data/operator-0/slashing_protection.sqlite delete mode 100644 anchor/integration/mock-data/operator-0/slashing_protection.sqlite-journal delete mode 100644 anchor/integration/mock-data/operator-1/network/enr.dat delete mode 100644 anchor/integration/mock-data/operator-1/slashing_protection.sqlite delete mode 100644 anchor/integration/mock-data/operator-1/slashing_protection.sqlite-journal delete mode 100644 anchor/integration/mock-data/operator-2/network/enr.dat delete mode 100644 anchor/integration/mock-data/operator-2/slashing_protection.sqlite delete mode 100644 anchor/integration/mock-data/operator-2/slashing_protection.sqlite-journal delete mode 100644 anchor/integration/mock-data/operator-3/network/enr.dat delete mode 100644 anchor/integration/mock-data/operator-3/slashing_protection.sqlite delete mode 100644 anchor/integration/mock-data/operator-3/slashing_protection.sqlite-journal diff --git a/anchor/integration/.gitignore b/anchor/integration/.gitignore new file mode 100644 index 000000000..73fbfbe07 --- /dev/null +++ b/anchor/integration/.gitignore @@ -0,0 +1,3 @@ +mock-data/operator-*/network/enr.dat +mock-data/operator-*/slashing_protection.sqlite +mock-data/operator-*/slashing_protection.sqlite-journal diff --git a/anchor/integration/mock-data/operator-0/network/enr.dat b/anchor/integration/mock-data/operator-0/network/enr.dat deleted file mode 100644 index 1711d578c..000000000 --- a/anchor/integration/mock-data/operator-0/network/enr.dat +++ /dev/null @@ -1 +0,0 @@ -enr:-Lm4QNc8do_7e7NIOqYYof01mY0QxiUCv2OCwOmZ4kCkKJdRVUl9WTki6CR9QcePf5_295P5wYKRcIU9Nh0CEs7TzzoIimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaECaPlPg6llvSR72agpjDRQT5OO4AXeeN5FE6NCvFjJJA2Dc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOMg3VkcIIjjA \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-0/slashing_protection.sqlite b/anchor/integration/mock-data/operator-0/slashing_protection.sqlite deleted file mode 100644 index cd78444e94ec5c2af152becd4595da6d6645702c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28672 zcmeI2O^94s700X6-(6kZnVCSNtBMR}8sc!jKNf;XrV@fZX}i+_1447}J@?i$)23s( zBICkEqJp{*1_aTCE?l}0!G*3w)P*u@QE=hl2jf!Qs0;D`l78v*q-UH>K@9h$i+)w_ z-a6;}&i|a(bt>04*LTNxQ12~+}=KqXKKR05MEaPO7w z-0Io0-TT+aA@1eRhrL}2z%mwywT9t2h+901?J`Q(AdHjKwH=gd^ z8tvTK-ya|6_vBk&-q;#my>hKd!%L6*zBbqzULI}@uU#5me=Mgj?b6yY`b~l#CS`DJ z|M|h=P9NX1Hk_SZy(zn$-CLC3IQZNiK4k5LyW{-_&v#A$y~9sUyZY+6|B;M` zupXu1;nSIwe|EnApgHuO*54_##on34A1q#6`2E7|g}M3f&TA~JMU3ig< zL{d3f?z|AB7|SfmWGx)XE@Pu%#R|oFU^#OZ?CAN{kRt`-!dkC`71|pvxy>-9Ww1<& zOop7a(o=MiWrsylOX7H@l=Mp2g5^OZ=Tis>E%_o`aVduALK;2SqVv`ko?Nt&2S-|K z$CZgCI+H>U!YHYVOxjr&wet~g!h#aXbM3Q5M4k%Eia8^^NrFYjIf-l?d?)xfI^9MT zSwuEiak@Aqijq9$kW%47vj|#bW6(Sz53CT(8WoLVcs)2BBV)!#nJw3F!*Oq%%C;mH z8*Cy-HCj0|~29bkMYjAQu%O-LgP0fFj9pB8Y=Z*4C0LDoI?= z(4j~fJA}z8IOVub@C=gk0`HzB*#?7*kcbLCj+PD$MI<=KWW2Y=TVaCaE@79qJVN-E z3vZL*(1i*{TZk^G;#Jhj5`?8=Nbuiz&RjIn1YWW^k*>-SWuSaikRfp`i%}liwUpYI?4nnw^sH1GEw&MP zn^DiWn6!vKCQ1Ri)o2S4wSn?1lE5TvT81W)1N>Hsmm&orEyg6xC_rc+mJNzuN0BqU zOEF5HM+--WD1s)D3mLr!`>YPAj?6vcPujB>EqPIdga;~fE>ZiICv*{+ig9quDAbwH zC4#6SjZ8KI6-JU7&9{aeq-wwfO-$NYn3G^aO{qfi9H~xCs5WsOplQS&q*PKjzGV)b z$Aol3$O)_!8lGfL6*@@FMiIhjt~CU=Qe+x=Pa?vmvMfZQdG^i{T7=|9=YTVv2?3VO zm?eU-kWI=c0Fi}C+-Du4bSM&sexzkI5+qz2&9;VQ2}pZ^^oXI>JqMzUUg<;e33(6!K{5(2$2d5hgiiqZFvRh+e}24@H4YNRFfd76w&NP)G*}uC($g6XReji6B$m z+$SAM)SzKz$dZwV@67Pgsn(Eo5)N8;LTKGk4;sD9-WE8BW@k~|mYjl-1OB~i z8ZVHb!Tk!0V@`##l@3tQ{-e=QB=VcssC#J0;d(~RfgWy?=$Bdq4;dG9ee^6UqTtSL zWFeLev({*ixHAb>1a4G>MM4P_vw zU(db0@S)|f_|y5T^FQi+ZQ)-3U;Q`xYrV5eKVQ1p`}5J z0{Vw`COryRYU7#kB%s&EGvPtN;*p(+&H)x$I};uQ%(r$XJO!9*?M!$GFnefc(ldaW z*3N`S0MmzdCOrX|YVAyT0C1|{zKv1-q(A>R-~Z!3{nw)ss01p3N}v*`1S)|_pc1GA zDuGI%5~u{8VFJzf|Mm0#Go0WWS|v~kR05SiB~S@e0+m1|Pzh85l|Ur`0?qgT-Id>U z@KcXUpc1GADuGI%5~u_!fl8nfs01p3N}v+>KO^wb?o4-ne!c(B58v8+?IXV}-}&mt z-u&?&{`k(NU;gLCKfS2CfBweLX6?;y-fzDD@2>p2gP(d-0+m1|Pzh85l|Us>2~+}= VKqXKKR05U2Ge=-%x;wwn|1VDc6IK8K diff --git a/anchor/integration/mock-data/operator-0/slashing_protection.sqlite-journal b/anchor/integration/mock-data/operator-0/slashing_protection.sqlite-journal deleted file mode 100644 index 100931157cd485992eb54bb54b444115c505e2b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12824 zcmeI$&yJHo90zdNcEK#E^+w|9*Hhc1G1>Iw!Nj&ZZ5mnXQb_EH&@xuC2y2-dJ-X^E zc=h0Oc=G0Zc=G}DCbaTzVb{HwY_>lVQf3&M`F*}*5{BdO*l_{zAOg6z;|f?l3ZMWA zpa2S>01BW03ZMWApa2Toa)D1@8%9{7P>brseSlk@HkOA1D1ZVefC4Ch0w{n2D1ZVe zuKKS_Jir*^tz`S3p11Cro zPO8+u)jr?-A$_ksyW$zVg#svm0w{n2D1ZVefCB$h;N1}~%8dqpK4sS2rLQg5u`TAW zg7j){ppl+VK=1Vx0%78ne=af(!MBnyZpyTn=%4t=~3IX z7^4BRnB#jvNtci-tYkn*g-Q8lT5GYsz+bNx)TC$r;zc477g-$6tksgTYY&fR>Uc|Y z<@+q}SN!YYL?h#o8pY7c&bpB=Yvym-W(l-;Skft;4=SSEZ1NvSHq^Q6FHYk)w~cC9klS0=j4*kv zih_X~D#vg26R2;*T@kdK@H2xE(t#ISAd*MD(eHj9IFQx}JJcTbQgOs^~9f_f)fRDUx1`wxV?c^3cx diff --git a/anchor/integration/mock-data/operator-1/network/enr.dat b/anchor/integration/mock-data/operator-1/network/enr.dat deleted file mode 100644 index e683cd8de..000000000 --- a/anchor/integration/mock-data/operator-1/network/enr.dat +++ /dev/null @@ -1 +0,0 @@ -enr:-Lm4QP1jk5d5LW6sZCTxXnjwzdLcK6j55jrHgt93651If8uWbdwtLIU9gzr8LrjtHIGCocAaiPgAXfZzlwZ9eiYkaC4IimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaED2Co9yNAVB_HzvgLyBGluB_P3sTNQEBL3jFui1g09e2KDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOLg3VkcIIjiw \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-1/slashing_protection.sqlite b/anchor/integration/mock-data/operator-1/slashing_protection.sqlite deleted file mode 100644 index cd78444e94ec5c2af152becd4595da6d6645702c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28672 zcmeI2O^94s700X6-(6kZnVCSNtBMR}8sc!jKNf;XrV@fZX}i+_1447}J@?i$)23s( zBICkEqJp{*1_aTCE?l}0!G*3w)P*u@QE=hl2jf!Qs0;D`l78v*q-UH>K@9h$i+)w_ z-a6;}&i|a(bt>04*LTNxQ12~+}=KqXKKR05MEaPO7w z-0Io0-TT+aA@1eRhrL}2z%mwywT9t2h+901?J`Q(AdHjKwH=gd^ z8tvTK-ya|6_vBk&-q;#my>hKd!%L6*zBbqzULI}@uU#5me=Mgj?b6yY`b~l#CS`DJ z|M|h=P9NX1Hk_SZy(zn$-CLC3IQZNiK4k5LyW{-_&v#A$y~9sUyZY+6|B;M` zupXu1;nSIwe|EnApgHuO*54_##on34A1q#6`2E7|g}M3f&TA~JMU3ig< zL{d3f?z|AB7|SfmWGx)XE@Pu%#R|oFU^#OZ?CAN{kRt`-!dkC`71|pvxy>-9Ww1<& zOop7a(o=MiWrsylOX7H@l=Mp2g5^OZ=Tis>E%_o`aVduALK;2SqVv`ko?Nt&2S-|K z$CZgCI+H>U!YHYVOxjr&wet~g!h#aXbM3Q5M4k%Eia8^^NrFYjIf-l?d?)xfI^9MT zSwuEiak@Aqijq9$kW%47vj|#bW6(Sz53CT(8WoLVcs)2BBV)!#nJw3F!*Oq%%C;mH z8*Cy-HCj0|~29bkMYjAQu%O-LgP0fFj9pB8Y=Z*4C0LDoI?= z(4j~fJA}z8IOVub@C=gk0`HzB*#?7*kcbLCj+PD$MI<=KWW2Y=TVaCaE@79qJVN-E z3vZL*(1i*{TZk^G;#Jhj5`?8=Nbuiz&RjIn1YWW^k*>-SWuSaikRfp`i%}liwUpYI?4nnw^sH1GEw&MP zn^DiWn6!vKCQ1Ri)o2S4wSn?1lE5TvT81W)1N>Hsmm&orEyg6xC_rc+mJNzuN0BqU zOEF5HM+--WD1s)D3mLr!`>YPAj?6vcPujB>EqPIdga;~fE>ZiICv*{+ig9quDAbwH zC4#6SjZ8KI6-JU7&9{aeq-wwfO-$NYn3G^aO{qfi9H~xCs5WsOplQS&q*PKjzGV)b z$Aol3$O)_!8lGfL6*@@FMiIhjt~CU=Qe+x=Pa?vmvMfZQdG^i{T7=|9=YTVv2?3VO zm?eU-kWI=c0Fi}C+-Du4bSM&sexzkI5+qz2&9;VQ2}pZ^^oXI>JqMzUUg<;e33(6!K{5(2$2d5hgiiqZFvRh+e}24@H4YNRFfd76w&NP)G*}uC($g6XReji6B$m z+$SAM)SzKz$dZwV@67Pgsn(Eo5)N8;LTKGk4;sD9-WE8BW@k~|mYjl-1OB~i z8ZVHb!Tk!0V@`##l@3tQ{-e=QB=VcssC#J0;d(~RfgWy?=$Bdq4;dG9ee^6UqTtSL zWFeLev({*ixHAb>1a4G>MM4P_vw zU(db0@S)|f_|y5T^FQi+ZQ)-3U;Q`xYrV5eKVQ1p`}5J z0{Vw`COryRYU7#kB%s&EGvPtN;*p(+&H)x$I};uQ%(r$XJO!9*?M!$GFnefc(ldaW z*3N`S0MmzdCOrX|YVAyT0C1|{zKv1-q(A>R-~Z!3{nw)ss01p3N}v*`1S)|_pc1GA zDuGI%5~u{8VFJzf|Mm0#Go0WWS|v~kR05SiB~S@e0+m1|Pzh85l|Ur`0?qgT-Id>U z@KcXUpc1GADuGI%5~u_!fl8nfs01p3N}v+>KO^wb?o4-ne!c(B58v8+?IXV}-}&mt z-u&?&{`k(NU;gLCKfS2CfBweLX6?;y-fzDD@2>p2gP(d-0+m1|Pzh85l|Us>2~+}= VKqXKKR05U2Ge=-%x;wwn|1VDc6IK8K diff --git a/anchor/integration/mock-data/operator-1/slashing_protection.sqlite-journal b/anchor/integration/mock-data/operator-1/slashing_protection.sqlite-journal deleted file mode 100644 index e0ab2aa18051c962b3aa73eb6509646714c4a082..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12824 zcmeI$!EcjL90zb%J1`}+-bg(CdTL1;lcfiviHU9Z+B7oiC?xhoXu(RxV8ZJ%k52t7 zJb3W#U*OG~|Az5@@MMHyX&G$pVzR715>npd(Y)X1OJ2fb7(BLIfUm>=_qJRC%SQne zKmim$0Te(16hHwKKmim$fm<%{rSkh>R3cZ6>%@J4Tb?$ShXN>o0w{n2D1ZVefC4Ch z0w}QU0)O`b*zuw4P#a$Q!Ldo99c>A)Eb|l~@+n6rzu^?O<8yVetBWgs%gh7gezgV+ zCzKeWRQp!_boZz5z53#cXYdvZpa2S>01BW03ZMWA{7-?m`z$Zk>+JcMnp4+4HC@Lt zsUL*vtDT-oIvN43)0GLV`=MEZ3x{LDP|?VMsPJ4J9(2?RJR_4N+#y$bJJ| zdDI1Eq=BN#GU&?iP$!x3EwH_KY8G@yBY8b^pY%JrtbwNLM0zLe@?yKqet5DhBXs7T zZ5bw|c1TU?_+D7h#bpXB7*J4QTE4NaHD6!oFM^qE*eCw%RVuP7GC!P}!Q7_T9v;us z@#aS0`!ws9|LgupCBuOd$I#rIy96rf6O|}EGTz9v=~z-mKMptv1v1aKU~|&hXC%UL z;-t+oj%V3t;cGYg$TG|Y^_Oj<0NU6q=;Y6PC0=Ya*!N^J)T!&wj#hCdjdD?t$*pTf zn7&qd!O)GAS8w&@8QzRg;>lhJ<58It4;udnBf&~zNSeE~U(Dy_;vn4A#X)NCaN?kT ZS#{|f9~yh>>r%9!-ia60$6tSZ`~yb$c@+Qv diff --git a/anchor/integration/mock-data/operator-2/network/enr.dat b/anchor/integration/mock-data/operator-2/network/enr.dat deleted file mode 100644 index 380f23a36..000000000 --- a/anchor/integration/mock-data/operator-2/network/enr.dat +++ /dev/null @@ -1 +0,0 @@ -enr:-Lm4QMlH8qsSmFZuCnuPDv1PvnHPq5-u462E_iA_gr-5VB9qYa_-Lj_GjVBxqXNgt5EAq0Uo_9CkOo0HrnYEStEFEkgIimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaEDjar53KDREPVxc-NN-ZqpkZwA3m9pFzyo3Sq40axfVUqDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOKg3VkcIIjig \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-2/slashing_protection.sqlite b/anchor/integration/mock-data/operator-2/slashing_protection.sqlite deleted file mode 100644 index cd78444e94ec5c2af152becd4595da6d6645702c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28672 zcmeI2O^94s700X6-(6kZnVCSNtBMR}8sc!jKNf;XrV@fZX}i+_1447}J@?i$)23s( zBICkEqJp{*1_aTCE?l}0!G*3w)P*u@QE=hl2jf!Qs0;D`l78v*q-UH>K@9h$i+)w_ z-a6;}&i|a(bt>04*LTNxQ12~+}=KqXKKR05MEaPO7w z-0Io0-TT+aA@1eRhrL}2z%mwywT9t2h+901?J`Q(AdHjKwH=gd^ z8tvTK-ya|6_vBk&-q;#my>hKd!%L6*zBbqzULI}@uU#5me=Mgj?b6yY`b~l#CS`DJ z|M|h=P9NX1Hk_SZy(zn$-CLC3IQZNiK4k5LyW{-_&v#A$y~9sUyZY+6|B;M` zupXu1;nSIwe|EnApgHuO*54_##on34A1q#6`2E7|g}M3f&TA~JMU3ig< zL{d3f?z|AB7|SfmWGx)XE@Pu%#R|oFU^#OZ?CAN{kRt`-!dkC`71|pvxy>-9Ww1<& zOop7a(o=MiWrsylOX7H@l=Mp2g5^OZ=Tis>E%_o`aVduALK;2SqVv`ko?Nt&2S-|K z$CZgCI+H>U!YHYVOxjr&wet~g!h#aXbM3Q5M4k%Eia8^^NrFYjIf-l?d?)xfI^9MT zSwuEiak@Aqijq9$kW%47vj|#bW6(Sz53CT(8WoLVcs)2BBV)!#nJw3F!*Oq%%C;mH z8*Cy-HCj0|~29bkMYjAQu%O-LgP0fFj9pB8Y=Z*4C0LDoI?= z(4j~fJA}z8IOVub@C=gk0`HzB*#?7*kcbLCj+PD$MI<=KWW2Y=TVaCaE@79qJVN-E z3vZL*(1i*{TZk^G;#Jhj5`?8=Nbuiz&RjIn1YWW^k*>-SWuSaikRfp`i%}liwUpYI?4nnw^sH1GEw&MP zn^DiWn6!vKCQ1Ri)o2S4wSn?1lE5TvT81W)1N>Hsmm&orEyg6xC_rc+mJNzuN0BqU zOEF5HM+--WD1s)D3mLr!`>YPAj?6vcPujB>EqPIdga;~fE>ZiICv*{+ig9quDAbwH zC4#6SjZ8KI6-JU7&9{aeq-wwfO-$NYn3G^aO{qfi9H~xCs5WsOplQS&q*PKjzGV)b z$Aol3$O)_!8lGfL6*@@FMiIhjt~CU=Qe+x=Pa?vmvMfZQdG^i{T7=|9=YTVv2?3VO zm?eU-kWI=c0Fi}C+-Du4bSM&sexzkI5+qz2&9;VQ2}pZ^^oXI>JqMzUUg<;e33(6!K{5(2$2d5hgiiqZFvRh+e}24@H4YNRFfd76w&NP)G*}uC($g6XReji6B$m z+$SAM)SzKz$dZwV@67Pgsn(Eo5)N8;LTKGk4;sD9-WE8BW@k~|mYjl-1OB~i z8ZVHb!Tk!0V@`##l@3tQ{-e=QB=VcssC#J0;d(~RfgWy?=$Bdq4;dG9ee^6UqTtSL zWFeLev({*ixHAb>1a4G>MM4P_vw zU(db0@S)|f_|y5T^FQi+ZQ)-3U;Q`xYrV5eKVQ1p`}5J z0{Vw`COryRYU7#kB%s&EGvPtN;*p(+&H)x$I};uQ%(r$XJO!9*?M!$GFnefc(ldaW z*3N`S0MmzdCOrX|YVAyT0C1|{zKv1-q(A>R-~Z!3{nw)ss01p3N}v*`1S)|_pc1GA zDuGI%5~u{8VFJzf|Mm0#Go0WWS|v~kR05SiB~S@e0+m1|Pzh85l|Ur`0?qgT-Id>U z@KcXUpc1GADuGI%5~u_!fl8nfs01p3N}v+>KO^wb?o4-ne!c(B58v8+?IXV}-}&mt z-u&?&{`k(NU;gLCKfS2CfBweLX6?;y-fzDD@2>p2gP(d-0+m1|Pzh85l|Us>2~+}= VKqXKKR05U2Ge=-%x;wwn|1VDc6IK8K diff --git a/anchor/integration/mock-data/operator-2/slashing_protection.sqlite-journal b/anchor/integration/mock-data/operator-2/slashing_protection.sqlite-journal deleted file mode 100644 index 6990a32e7dfc221c5c66b79eda5af6ba59a9cf31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12824 zcmeI$&yJHo90zdNcEM~@yEhU~zn)r>#$-c0n7D~;ciJ?v)TNNv6QKnwS%kGrjUHX~ z9lUw)l!J|;*-_`L{Vf6EoHd=x+d z6hHwKKmim$0Te(16hHwKxa9)-hu?pOC35wsPTU8$)Sq4P4BkQk6hHwKKmim$0Te)i|0(e9h~Mw)rYNxM~u0}xX_GAKCKeYGY!r@pjQZzCoDm+z3$6a*_Psp^hG45|HKpO`oo&0&f!V9ey`+?*`ow@$}G>J2ARLg>lZ(TFO z^tIX)4BSvTd8;qa@MeS(P4+?<538JT-1K@9h$i+)w_ z-a6;}&i|a(bt>04*LTNxQ12~+}=KqXKKR05MEaPO7w z-0Io0-TT+aA@1eRhrL}2z%mwywT9t2h+901?J`Q(AdHjKwH=gd^ z8tvTK-ya|6_vBk&-q;#my>hKd!%L6*zBbqzULI}@uU#5me=Mgj?b6yY`b~l#CS`DJ z|M|h=P9NX1Hk_SZy(zn$-CLC3IQZNiK4k5LyW{-_&v#A$y~9sUyZY+6|B;M` zupXu1;nSIwe|EnApgHuO*54_##on34A1q#6`2E7|g}M3f&TA~JMU3ig< zL{d3f?z|AB7|SfmWGx)XE@Pu%#R|oFU^#OZ?CAN{kRt`-!dkC`71|pvxy>-9Ww1<& zOop7a(o=MiWrsylOX7H@l=Mp2g5^OZ=Tis>E%_o`aVduALK;2SqVv`ko?Nt&2S-|K z$CZgCI+H>U!YHYVOxjr&wet~g!h#aXbM3Q5M4k%Eia8^^NrFYjIf-l?d?)xfI^9MT zSwuEiak@Aqijq9$kW%47vj|#bW6(Sz53CT(8WoLVcs)2BBV)!#nJw3F!*Oq%%C;mH z8*Cy-HCj0|~29bkMYjAQu%O-LgP0fFj9pB8Y=Z*4C0LDoI?= z(4j~fJA}z8IOVub@C=gk0`HzB*#?7*kcbLCj+PD$MI<=KWW2Y=TVaCaE@79qJVN-E z3vZL*(1i*{TZk^G;#Jhj5`?8=Nbuiz&RjIn1YWW^k*>-SWuSaikRfp`i%}liwUpYI?4nnw^sH1GEw&MP zn^DiWn6!vKCQ1Ri)o2S4wSn?1lE5TvT81W)1N>Hsmm&orEyg6xC_rc+mJNzuN0BqU zOEF5HM+--WD1s)D3mLr!`>YPAj?6vcPujB>EqPIdga;~fE>ZiICv*{+ig9quDAbwH zC4#6SjZ8KI6-JU7&9{aeq-wwfO-$NYn3G^aO{qfi9H~xCs5WsOplQS&q*PKjzGV)b z$Aol3$O)_!8lGfL6*@@FMiIhjt~CU=Qe+x=Pa?vmvMfZQdG^i{T7=|9=YTVv2?3VO zm?eU-kWI=c0Fi}C+-Du4bSM&sexzkI5+qz2&9;VQ2}pZ^^oXI>JqMzUUg<;e33(6!K{5(2$2d5hgiiqZFvRh+e}24@H4YNRFfd76w&NP)G*}uC($g6XReji6B$m z+$SAM)SzKz$dZwV@67Pgsn(Eo5)N8;LTKGk4;sD9-WE8BW@k~|mYjl-1OB~i z8ZVHb!Tk!0V@`##l@3tQ{-e=QB=VcssC#J0;d(~RfgWy?=$Bdq4;dG9ee^6UqTtSL zWFeLev({*ixHAb>1a4G>MM4P_vw zU(db0@S)|f_|y5T^FQi+ZQ)-3U;Q`xYrV5eKVQ1p`}5J z0{Vw`COryRYU7#kB%s&EGvPtN;*p(+&H)x$I};uQ%(r$XJO!9*?M!$GFnefc(ldaW z*3N`S0MmzdCOrX|YVAyT0C1|{zKv1-q(A>R-~Z!3{nw)ss01p3N}v*`1S)|_pc1GA zDuGI%5~u{8VFJzf|Mm0#Go0WWS|v~kR05SiB~S@e0+m1|Pzh85l|Ur`0?qgT-Id>U z@KcXUpc1GADuGI%5~u_!fl8nfs01p3N}v+>KO^wb?o4-ne!c(B58v8+?IXV}-}&mt z-u&?&{`k(NU;gLCKfS2CfBweLX6?;y-fzDD@2>p2gP(d-0+m1|Pzh85l|Us>2~+}= VKqXKKR05U2Ge=-%x;wwn|1VDc6IK8K diff --git a/anchor/integration/mock-data/operator-3/slashing_protection.sqlite-journal b/anchor/integration/mock-data/operator-3/slashing_protection.sqlite-journal deleted file mode 100644 index 34c2d3d4fff5eef699bc9336ecab9c24bfe5ee8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12824 zcmeI$!HUyB7zglV+f8Ikt>7Wx>FcQt6k*9pP_XSzOEH_eX)5+Kq)n`GW3t;!MUSp} z_7ObzB7!&HW8cA}nZ`EFHoNXcShimvG&7l$`F{T}kP!qtwp>8o;{f-zTmj2R0Te(1 z6hHwKKmim$0Te(16hMJnF7Wv4{nNNasm$xdeSlk@HkOA1D1ZVefC4Ch0w{n2D1ZVe zu01Et1fsY5GtW>Mw*?`$&-+gEMo@29c z7Nu7^ZId)D0#>u76G;1^z6Tc$&w-v{kuEXex!F5xnj?5dMvaYeC-brIP3W=v0a|*$ z1xDWjW2oyeGCgkxX%2M@EOSWIPo-U1(KPYPlSLVkHw|2e z+KjmovzZqLQBIeXDJ*9|PKB%TXV)5=l}< znkaaIdP~{8KLmWUI^n+QBn?T{|F<&TE&nwcPqbz?~BEubW;}xRoju2ZuPS2 XR&RVn_tWb_yrACUi|UIvKhFOEk~??G diff --git a/anchor/integration/src/basic_sim.rs b/anchor/integration/src/basic_sim.rs index 0890fc9b9..cb60ad1fe 100644 --- a/anchor/integration/src/basic_sim.rs +++ b/anchor/integration/src/basic_sim.rs @@ -117,9 +117,6 @@ impl BasicSim { .await?; } - // Register the validators... - // todo!() - // Add operator nodes to the network for index in 0..(sim_config.committee_size) { network diff --git a/anchor/integration/src/cli.rs b/anchor/integration/src/cli.rs index 85ef1a17e..ffdb8ab2d 100644 --- a/anchor/integration/src/cli.rs +++ b/anchor/integration/src/cli.rs @@ -24,14 +24,6 @@ pub fn cli_app() -> Command { .default_value("4") .help("Number of proposer-only beacon nodes"), ) - .arg( - Arg::new("validators-per-node") - .short('v') - .long("validators-per-node") - .action(ArgAction::Set) - .default_value("10") - .help("Number of validators"), - ) .arg( Arg::new("speed-up-factor") .short('s') @@ -40,14 +32,6 @@ pub fn cli_app() -> Command { .default_value("3") .help("Speed up factor. Please use a divisor of 12."), ) - .arg( - Arg::new("committee-size") - .short('m') - .long("committee-size") - .action(ArgAction::Set) - .default_value("4") - .help("The size of committee. Use 4,7,10,13"), - ) .arg( Arg::new("debug-level") .short('d') diff --git a/anchor/integration/src/local_anchor_node.rs b/anchor/integration/src/local_anchor_node.rs index 6e4b18708..e1f76825a 100644 --- a/anchor/integration/src/local_anchor_node.rs +++ b/anchor/integration/src/local_anchor_node.rs @@ -49,6 +49,7 @@ impl LocalAnchorNode { } } + // Enr is saved to disk, fetch it pub fn get_enr(&self) -> Enr { load_enr_from_disk(&self.config.network.network_dir).expect("Dir exists") } diff --git a/anchor/integration/src/local_network.rs b/anchor/integration/src/local_network.rs index aa3306929..d8698c0d5 100644 --- a/anchor/integration/src/local_network.rs +++ b/anchor/integration/src/local_network.rs @@ -15,6 +15,7 @@ const BOOTNODE_PORT: u16 = 42424; const QUIC_PORT: u16 = 43424; pub const EXECUTION_PORT: u16 = 4000; +// Contains all nodes in the simulated network pub struct SsvLocalNetwork { pub inner: Arc>, } @@ -69,12 +70,14 @@ impl SsvLocalNetwork { + Duration::from_secs(network_params.genesis_delay)) .as_secs(); + // Create all of the default configs let anchor_config = default_anchor_config(); let beacon_config = default_client_config(network_params, genesis_time); let execution_config = default_mock_execution_config::(&context.eth2_config().spec, genesis_time); let network = Self { + // Initially empty network inner: Arc::new(Inner { context, beacon_nodes: RwLock::new(Vec::new()), @@ -87,6 +90,7 @@ impl SsvLocalNetwork { Ok((network, beacon_config, execution_config, anchor_config)) } + // Add a new anchor node to the network pub async fn add_anchor_node( &self, index: usize, diff --git a/anchor/integration/src/main.rs b/anchor/integration/src/main.rs index 0a3b97e3b..04e81225e 100644 --- a/anchor/integration/src/main.rs +++ b/anchor/integration/src/main.rs @@ -1,7 +1,7 @@ use crate::basic_sim::BasicSim; +use crate::util::setup_logging; use crate::cli::cli_app; use tracing::error; -use tracing_subscriber::{filter::filter_fn, fmt, prelude::*, EnvFilter}; mod basic_sim; mod checks; @@ -12,31 +12,7 @@ mod mock_websocket; mod util; fn main() -> Result<(), String> { - if std::env::var("RUST_LOG").is_err() { - std::env::set_var( - "RUST_LOG", - "integration=debug,execution=debug,client=debug,beacon_node_fallback=debug,anchor=debug,network=debug,qbft=debug", - ); - } - - let env_filter = EnvFilter::from_env("RUST_LOG"); - - let dep_log_filter = filter_fn(|metadata| { - if let Some(file) = metadata.file() { - !file.contains("/.cargo/") - } else { - true - } - }); - - if let Err(e) = tracing_subscriber::registry() - .with(env_filter) - .with(dep_log_filter) - .with(fmt::layer()) - .try_init() - { - eprintln!("Failed to initialize logging: {e}"); - } + setup_logging(); let matches = cli_app().get_matches(); match matches.subcommand() { @@ -51,3 +27,4 @@ fn main() -> Result<(), String> { Ok(()) } + diff --git a/anchor/integration/src/mock_websocket.rs b/anchor/integration/src/mock_websocket.rs index ab9907674..905f899ba 100644 --- a/anchor/integration/src/mock_websocket.rs +++ b/anchor/integration/src/mock_websocket.rs @@ -2,6 +2,9 @@ use std::net::SocketAddr; use tracing::info; use warp::Filter; +// To be able to run successfully, the anchor nodes need to bind to a websocket. This is typically +// used for live sycning blocks, but this is not needed in the simulator. This is a mock +// server that acts as a dummy endpoint for the nodes to bind to. pub struct MockServer { pub url: String, _server_handle: tokio::task::JoinHandle<()>, diff --git a/anchor/integration/src/util.rs b/anchor/integration/src/util.rs index 133e06f25..fcf053795 100644 --- a/anchor/integration/src/util.rs +++ b/anchor/integration/src/util.rs @@ -15,8 +15,10 @@ use node_test_rig::{ use serde_utils::quoted_u64::MaybeQuoted; use ssv_network_config::SsvNetworkConfig; use std::net::Ipv4Addr; +use tracing_subscriber::{filter::filter_fn, fmt, prelude::*, EnvFilter}; use types::Epoch; +// Create a default execution node config pub fn default_mock_execution_config( spec: &ChainSpec, genesis_time: u64, @@ -50,12 +52,12 @@ pub fn default_mock_execution_config( mock_execution_config } -// Create a default beaco node config +// Create a default beacon node config pub fn default_client_config(network_params: SsvNetworkParams, genesis_time: u64) -> ClientConfig { let mut beacon_config = testing_client_config(); beacon_config.genesis = ClientGenesis::InteropMerge { - validator_count: network_params.num_validators, + validator_count: network_params.num_validators, // genesis state w/ num_validators genesis_time, }; beacon_config.network.target_peers = network_params.num_nodes + network_params.num_proposers; @@ -117,11 +119,6 @@ pub fn parse_cli(matches: &ArgMatches) -> SimConfig { .unwrap_or(&String::from("0")) .parse::() .unwrap_or(0); - let validators_per_node = matches - .get_one::("validators-per-node") - .expect("missing validators-per-node default") - .parse::() - .expect("missing validators-per-node default"); let speed_up_factor = matches .get_one::("speed-up-factor") .expect("missing speed-up-factor default") @@ -130,19 +127,42 @@ pub fn parse_cli(matches: &ArgMatches) -> SimConfig { let log_level = matches .get_one::("debug-level") .expect("missing debug-level"); - let committee_size = matches - .get_one::("committee-size") - .expect("missing committee-size default") - .parse::() - .expect("committee-size must be a number"); let continue_after_checks = matches.get_flag("continue-after-checks"); SimConfig { node_count, proposer_nodes, - validators_per_node, + validators_per_node: 10, speed_up_factor, log_level: log_level.to_string(), - committee_size, + committee_size: 4, continue_after_checks, } } + +// Sets up logging configuration +pub fn setup_logging() { + if std::env::var("RUST_LOG").is_err() { + std::env::set_var( + "RUST_LOG", + "integration=debug,execution=debug,client=debug,beacon_node_fallback=debug,anchor=debug,network=debug,qbft=debug", + ); + } + let env_filter = EnvFilter::from_env("RUST_LOG"); + + let dep_log_filter = filter_fn(|metadata| { + if let Some(file) = metadata.file() { + !file.contains("/.cargo/") + } else { + true + } + }); + + if let Err(e) = tracing_subscriber::registry() + .with(env_filter) + .with(dep_log_filter) + .with(fmt::layer()) + .try_init() + { + eprintln!("Failed to initialize logging: {e}"); + } +} From 20fbb0a71af8374560197dc25a31314907d66c2d Mon Sep 17 00:00:00 2001 From: Zacholme7 Date: Thu, 27 Mar 2025 13:49:33 +0000 Subject: [PATCH 22/52] initially track enr --- anchor/integration/.gitignore | 2 +- anchor/integration/mock-data/operator-0/network/enr.dat | 1 + anchor/integration/mock-data/operator-1/network/enr.dat | 1 + anchor/integration/mock-data/operator-2/network/enr.dat | 1 + anchor/integration/mock-data/operator-3/network/enr.dat | 1 + anchor/integration/src/basic_sim.rs | 4 ++++ anchor/integration/src/local_network.rs | 3 ++- 7 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 anchor/integration/mock-data/operator-0/network/enr.dat create mode 100644 anchor/integration/mock-data/operator-1/network/enr.dat create mode 100644 anchor/integration/mock-data/operator-2/network/enr.dat create mode 100644 anchor/integration/mock-data/operator-3/network/enr.dat diff --git a/anchor/integration/.gitignore b/anchor/integration/.gitignore index 73fbfbe07..bd9541354 100644 --- a/anchor/integration/.gitignore +++ b/anchor/integration/.gitignore @@ -1,3 +1,3 @@ -mock-data/operator-*/network/enr.dat +#mock-data/operator-*/network/enr.dat mock-data/operator-*/slashing_protection.sqlite mock-data/operator-*/slashing_protection.sqlite-journal diff --git a/anchor/integration/mock-data/operator-0/network/enr.dat b/anchor/integration/mock-data/operator-0/network/enr.dat new file mode 100644 index 000000000..f5b24a7b6 --- /dev/null +++ b/anchor/integration/mock-data/operator-0/network/enr.dat @@ -0,0 +1 @@ +enr:-Lm4QLU_zSxSbyCTzVhz5Tl7o5wBf0TX67l6SpGGk1ZrOZU3ZqT01CPgaQLeTWhmM-m2OWA1SLmm78aEAwF0OaRgnIkEimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaECaPlPg6llvSR72agpjDRQT5OO4AXeeN5FE6NCvFjJJA2Dc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOMg3VkcIIjjA \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-1/network/enr.dat b/anchor/integration/mock-data/operator-1/network/enr.dat new file mode 100644 index 000000000..ee0a6a261 --- /dev/null +++ b/anchor/integration/mock-data/operator-1/network/enr.dat @@ -0,0 +1 @@ +enr:-Lm4QHxfdKlFk13WMlZrLCnp3Rr-7D14jBiG0tYCn95rqviyDJShvnO_j5CAP0m_NLkDGME4TgdD1nUxTvDLelxTUXIEimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaED2Co9yNAVB_HzvgLyBGluB_P3sTNQEBL3jFui1g09e2KDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOLg3VkcIIjiw \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-2/network/enr.dat b/anchor/integration/mock-data/operator-2/network/enr.dat new file mode 100644 index 000000000..9c8bb0c37 --- /dev/null +++ b/anchor/integration/mock-data/operator-2/network/enr.dat @@ -0,0 +1 @@ +enr:-Lm4QFpKGtv14tDbq0ppCPfcdcRZlM0widV1n1umIMmkSTepAaFvn2OZ6c55-gAOR1VFb4qGlZqlcpe06oFBLH0h7NQEimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaEDjar53KDREPVxc-NN-ZqpkZwA3m9pFzyo3Sq40axfVUqDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOKg3VkcIIjig \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-3/network/enr.dat b/anchor/integration/mock-data/operator-3/network/enr.dat new file mode 100644 index 000000000..a8977270c --- /dev/null +++ b/anchor/integration/mock-data/operator-3/network/enr.dat @@ -0,0 +1 @@ +enr:-Lm4QOrmQCZzLryjj_PxzIjIBMn9Vu0vkPQCxUV7y8Vs6SehdayKpPlgwICXicRJy9kGv8ylzi3hzgfCynbWWMPKBq8DimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaECOPl0gmoUPh-D_Rk9G2jptU4xFaOlzPLtgDJ8h9guVx6Dc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOJg3VkcIIjiQ \ No newline at end of file diff --git a/anchor/integration/src/basic_sim.rs b/anchor/integration/src/basic_sim.rs index cb60ad1fe..ce53baece 100644 --- a/anchor/integration/src/basic_sim.rs +++ b/anchor/integration/src/basic_sim.rs @@ -122,7 +122,9 @@ impl BasicSim { network .add_anchor_node(index, anchor_config.clone(), server.url.clone()) .await?; + println!("here 2"); } + println!("here 3"); // Set all payloads as valid. This effectively assumes the EL is infalliable. network @@ -133,10 +135,12 @@ impl BasicSim { .for_each(|node| { node.server.all_payloads_valid(); }); + println!("here 4"); // Sleep until we hit genesis let duration_to_genesis = network.duration_to_genesis().await?; info!("Duration to genesis: {}", duration_to_genesis.as_secs()); + println!("here 5"); sleep(duration_to_genesis).await; // Run all checks and verify their success diff --git a/anchor/integration/src/local_network.rs b/anchor/integration/src/local_network.rs index d8698c0d5..f31078435 100644 --- a/anchor/integration/src/local_network.rs +++ b/anchor/integration/src/local_network.rs @@ -90,7 +90,6 @@ impl SsvLocalNetwork { Ok((network, beacon_config, execution_config, anchor_config)) } - // Add a new anchor node to the network pub async fn add_anchor_node( &self, index: usize, @@ -103,8 +102,10 @@ impl SsvLocalNetwork { let boot_node = read_lock.first(); if let Some(boot_node) = boot_node { + /* let enr = boot_node.get_enr(); anchor_config.network.boot_nodes_enr.push(enr) + */ } } From 1caae13fd9d6c9ba67742e96112707172d2d32d2 Mon Sep 17 00:00:00 2001 From: Zacholme7 Date: Thu, 27 Mar 2025 13:50:47 +0000 Subject: [PATCH 23/52] nits --- anchor/integration/src/basic_sim.rs | 4 ---- anchor/integration/src/local_network.rs | 2 -- 2 files changed, 6 deletions(-) diff --git a/anchor/integration/src/basic_sim.rs b/anchor/integration/src/basic_sim.rs index ce53baece..cb60ad1fe 100644 --- a/anchor/integration/src/basic_sim.rs +++ b/anchor/integration/src/basic_sim.rs @@ -122,9 +122,7 @@ impl BasicSim { network .add_anchor_node(index, anchor_config.clone(), server.url.clone()) .await?; - println!("here 2"); } - println!("here 3"); // Set all payloads as valid. This effectively assumes the EL is infalliable. network @@ -135,12 +133,10 @@ impl BasicSim { .for_each(|node| { node.server.all_payloads_valid(); }); - println!("here 4"); // Sleep until we hit genesis let duration_to_genesis = network.duration_to_genesis().await?; info!("Duration to genesis: {}", duration_to_genesis.as_secs()); - println!("here 5"); sleep(duration_to_genesis).await; // Run all checks and verify their success diff --git a/anchor/integration/src/local_network.rs b/anchor/integration/src/local_network.rs index f31078435..f441fa87b 100644 --- a/anchor/integration/src/local_network.rs +++ b/anchor/integration/src/local_network.rs @@ -102,10 +102,8 @@ impl SsvLocalNetwork { let boot_node = read_lock.first(); if let Some(boot_node) = boot_node { - /* let enr = boot_node.get_enr(); anchor_config.network.boot_nodes_enr.push(enr) - */ } } From e16d2f31fc03735458887d23ca9f402695df3757 Mon Sep 17 00:00:00 2001 From: Zacholme7 Date: Thu, 27 Mar 2025 14:44:21 +0000 Subject: [PATCH 24/52] add in checks --- Cargo.lock | 1 + anchor/integration/.gitignore | 2 +- anchor/integration/Cargo.toml | 1 + .../mock-data/operator-0/network/enr.dat | 2 +- .../mock-data/operator-1/network/enr.dat | 2 +- .../mock-data/operator-2/network/enr.dat | 2 +- .../mock-data/operator-3/network/enr.dat | 2 +- anchor/integration/src/basic_sim.rs | 100 +++++- anchor/integration/src/checks.rs | 294 +++++++++++++++++- anchor/integration/src/local_network.rs | 37 +-- anchor/integration/src/main.rs | 3 +- 11 files changed, 400 insertions(+), 46 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fea2f7043..883de4ab7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5154,6 +5154,7 @@ dependencies = [ "logging", "network 0.1.0", "node_test_rig", + "parking_lot", "sensitive_url", "serde_json", "ssv_network_config", diff --git a/anchor/integration/.gitignore b/anchor/integration/.gitignore index bd9541354..73fbfbe07 100644 --- a/anchor/integration/.gitignore +++ b/anchor/integration/.gitignore @@ -1,3 +1,3 @@ -#mock-data/operator-*/network/enr.dat +mock-data/operator-*/network/enr.dat mock-data/operator-*/slashing_protection.sqlite mock-data/operator-*/slashing_protection.sqlite-journal diff --git a/anchor/integration/Cargo.toml b/anchor/integration/Cargo.toml index bd809ee24..ac5a51d66 100644 --- a/anchor/integration/Cargo.toml +++ b/anchor/integration/Cargo.toml @@ -18,6 +18,7 @@ lighthouse_network = { workspace = true } logging = { git = "https://github.com/sigp/lighthouse", rev = "22faccb" } network = { workspace = true } node_test_rig = { git = "https://github.com/sigp/lighthouse", rev = "22faccb" } +parking_lot = { workspace = true } sensitive_url = { workspace = true } serde_json = { workspace = true } ssv_network_config = { workspace = true } diff --git a/anchor/integration/mock-data/operator-0/network/enr.dat b/anchor/integration/mock-data/operator-0/network/enr.dat index f5b24a7b6..785372770 100644 --- a/anchor/integration/mock-data/operator-0/network/enr.dat +++ b/anchor/integration/mock-data/operator-0/network/enr.dat @@ -1 +1 @@ -enr:-Lm4QLU_zSxSbyCTzVhz5Tl7o5wBf0TX67l6SpGGk1ZrOZU3ZqT01CPgaQLeTWhmM-m2OWA1SLmm78aEAwF0OaRgnIkEimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaECaPlPg6llvSR72agpjDRQT5OO4AXeeN5FE6NCvFjJJA2Dc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOMg3VkcIIjjA \ No newline at end of file +enr:-Lm4QKxN7LA6U_EikosNjGx8tpTTw05e3HgvbjXgZQqtlKXVVLWM7Wy9dPIyhfuYJfu4wXy2kYb1gwt07QBDkt7gdpYKimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaECaPlPg6llvSR72agpjDRQT5OO4AXeeN5FE6NCvFjJJA2Dc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOMg3VkcIIjjA \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-1/network/enr.dat b/anchor/integration/mock-data/operator-1/network/enr.dat index ee0a6a261..2c648a6ea 100644 --- a/anchor/integration/mock-data/operator-1/network/enr.dat +++ b/anchor/integration/mock-data/operator-1/network/enr.dat @@ -1 +1 @@ -enr:-Lm4QHxfdKlFk13WMlZrLCnp3Rr-7D14jBiG0tYCn95rqviyDJShvnO_j5CAP0m_NLkDGME4TgdD1nUxTvDLelxTUXIEimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaED2Co9yNAVB_HzvgLyBGluB_P3sTNQEBL3jFui1g09e2KDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOLg3VkcIIjiw \ No newline at end of file +enr:-Lm4QEcChWyJ_BQvYX3ZTuZKEgJX0ek5ZnRU9G5WWvZ4BQOOMIZF4J2Li5iJHrNoTn_yzAzRsU_r56L3wndog6W5vycKimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaED2Co9yNAVB_HzvgLyBGluB_P3sTNQEBL3jFui1g09e2KDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOLg3VkcIIjiw \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-2/network/enr.dat b/anchor/integration/mock-data/operator-2/network/enr.dat index 9c8bb0c37..30c6814c1 100644 --- a/anchor/integration/mock-data/operator-2/network/enr.dat +++ b/anchor/integration/mock-data/operator-2/network/enr.dat @@ -1 +1 @@ -enr:-Lm4QFpKGtv14tDbq0ppCPfcdcRZlM0widV1n1umIMmkSTepAaFvn2OZ6c55-gAOR1VFb4qGlZqlcpe06oFBLH0h7NQEimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaEDjar53KDREPVxc-NN-ZqpkZwA3m9pFzyo3Sq40axfVUqDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOKg3VkcIIjig \ No newline at end of file +enr:-Lm4QMTyNb38pHaRYC7Ts1r1WTH3KWecEccf6Nol5NekQzDGNFWE4NTlcQlz2IXa-qWJFVn6Sqh2Nb2LHiZBvP2bvn4KimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaEDjar53KDREPVxc-NN-ZqpkZwA3m9pFzyo3Sq40axfVUqDc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOKg3VkcIIjig \ No newline at end of file diff --git a/anchor/integration/mock-data/operator-3/network/enr.dat b/anchor/integration/mock-data/operator-3/network/enr.dat index a8977270c..519d92cb9 100644 --- a/anchor/integration/mock-data/operator-3/network/enr.dat +++ b/anchor/integration/mock-data/operator-3/network/enr.dat @@ -1 +1 @@ -enr:-Lm4QOrmQCZzLryjj_PxzIjIBMn9Vu0vkPQCxUV7y8Vs6SehdayKpPlgwICXicRJy9kGv8ylzi3hzgfCynbWWMPKBq8DimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaECOPl0gmoUPh-D_Rk9G2jptU4xFaOlzPLtgDJ8h9guVx6Dc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOJg3VkcIIjiQ \ No newline at end of file +enr:-Lm4QNP3nJfA3uT_GmemOVaSy-CW6E7aDnm3GnKfWpVf61WUco4NIzI21mypvLiN87o2Q4YQqgGCc1VHC8E2h8HIDH0JimRvbWFpbnR5cGWEAAAAAIJpZIJ2NIJpcIR_AAABiXNlY3AyNTZrMaECOPl0gmoUPh-D_Rk9G2jptU4xFaOlzPLtgDJ8h9guVx6Dc3N2AYdzdWJuZXRzkAAAAAAAAAAAAAAAAAAABACDdGNwgiOJg3VkcIIjiQ \ No newline at end of file diff --git a/anchor/integration/src/basic_sim.rs b/anchor/integration/src/basic_sim.rs index cb60ad1fe..2b3606f92 100644 --- a/anchor/integration/src/basic_sim.rs +++ b/anchor/integration/src/basic_sim.rs @@ -1,4 +1,4 @@ -use crate::checks::*; +use crate::checks; use crate::local_network::{SsvLocalNetwork, SsvNetworkParams}; use crate::mock_websocket::MockServer; use crate::util::parse_cli; @@ -10,10 +10,16 @@ use node_test_rig::{ }; use std::cmp::max; use std::sync::Arc; +use std::time::Duration; use tokio::time::sleep; use tracing::info; +use types::EthSpec; +use types::MainnetEthSpec; +const END_EPOCH: u64 = 16; const GENESIS_DELAY: u64 = 32; +const ACCEPTABLE_FALLBACK_ATTESTATION_HIT_PERCENTAGE: f64 = 95.0; +pub const TERMINAL_BLOCK: u64 = 0; pub const ALTAIR_FORK_EPOCH: u64 = 0; pub const BELLATRIX_FORK_EPOCH: u64 = 0; pub const CAPELLA_FORK_EPOCH: u64 = 1; @@ -86,7 +92,13 @@ impl BasicSim { spec.bellatrix_fork_epoch = Some(Epoch::new(BELLATRIX_FORK_EPOCH)); spec.capella_fork_epoch = Some(Epoch::new(CAPELLA_FORK_EPOCH)); spec.deneb_fork_epoch = Some(Epoch::new(DENEB_FORK_EPOCH)); - env.eth2_config.spec = Arc::new(spec); + + let spec = Arc::new(spec); + env.eth2_config.spec = spec.clone(); + + let slot_duration = Duration::from_secs(spec.seconds_per_slot); + let slots_per_epoch = MainnetEthSpec::slots_per_epoch(); + let initial_validator_count = spec.min_genesis_active_validator_count as usize; // Start the mock server let server = env @@ -125,14 +137,9 @@ impl BasicSim { } // Set all payloads as valid. This effectively assumes the EL is infalliable. - network - .execution_nodes - .write() - .expect("Failed to get write lock") - .iter() - .for_each(|node| { - node.server.all_payloads_valid(); - }); + network.execution_nodes.write().iter().for_each(|node| { + node.server.all_payloads_valid(); + }); // Sleep until we hit genesis let duration_to_genesis = network.duration_to_genesis().await?; @@ -140,11 +147,76 @@ impl BasicSim { sleep(duration_to_genesis).await; // Run all checks and verify their success - let test1 = futures::join!(mock_verify()); - test1.0?; - - futures::future::pending::<()>().await; + let ( + validator_count, + onboarding, + finalization, + block_prod, + sync_aggregate, + transition, + attestations, + ) = futures::join!( + // Check that the chain starts with the expected validator count. + checks::verify_initial_validator_count( + network.clone(), + slot_duration, + initial_validator_count, + ), + // Check that validators greater than `spec.min_genesis_active_validator_count` are + // onboarded at the first possible opportunity. + checks::verify_validator_onboarding( + network.clone(), + slot_duration, + total_validator_count, + ), + // Check that the chain finalizes at the first given opportunity. + checks::verify_first_finalization(network.clone(), slot_duration), + // Check that a block is produced at every slot. + checks::verify_full_block_production_up_to( + network.clone(), + Epoch::new(END_EPOCH).start_slot(slots_per_epoch), + slot_duration, + ), + // Check that all sync aggregates are full. + checks::verify_full_sync_aggregates_up_to( + network.clone(), + // Start checking for sync_aggregates at `FORK_EPOCH + 1` to account for + // inefficiencies in finding subnet peers at the `fork_slot`. + Epoch::new(ALTAIR_FORK_EPOCH + 1).start_slot(slots_per_epoch), + Epoch::new(END_EPOCH).start_slot(slots_per_epoch), + slot_duration, + ), + // Check that the transition block is finalized. + checks::verify_transition_block_finalized( + network.clone(), + Epoch::new(TERMINAL_BLOCK / slots_per_epoch), + slot_duration, + true, + ), + checks::check_attestation_correctness( + network.clone(), + 0, + END_EPOCH, + slot_duration, + 1, + ACCEPTABLE_FALLBACK_ATTESTATION_HIT_PERCENTAGE, + ), + ); + + validator_count?; + onboarding?; + finalization?; + block_prod?; + sync_aggregate?; + transition?; + attestations?; + + if sim_config.continue_after_checks { + futures::future::pending::<()>().await; + } + info!("All tests passed"); + drop(network); Ok::<(), String>(()) }; diff --git a/anchor/integration/src/checks.rs b/anchor/integration/src/checks.rs index 498e912aa..44e06f4c7 100644 --- a/anchor/integration/src/checks.rs +++ b/anchor/integration/src/checks.rs @@ -1,6 +1,298 @@ // All checks to run on the simulation to ensure that is // operating in an expected manner +use crate::local_network::SsvLocalNetwork; +use node_test_rig::eth2::types::{BlockId, StateId}; +use std::time::Duration; +use types::{Epoch, EthSpec, ExecPayload, ExecutionBlockHash, Slot, Unsigned}; + +// Checks that all of the validators have on-boarded by the start of the second eth1 voting +// period. +pub async fn verify_initial_validator_count( + network: SsvLocalNetwork, + slot_duration: Duration, + initial_validator_count: usize, +) -> Result<(), String> { + slot_delay(Slot::new(1), slot_duration).await; + verify_validator_count(network, initial_validator_count).await?; + Ok(()) +} + +// Checks that all of the validators have on-boarded by the start of the second eth1 voting +// period. +pub async fn verify_validator_onboarding( + network: SsvLocalNetwork, + slot_duration: Duration, + expected_validator_count: usize, +) -> Result<(), String> { + slot_delay( + Slot::new(E::SlotsPerEth1VotingPeriod::to_u64()), + slot_duration, + ) + .await; + verify_validator_count(network, expected_validator_count).await?; + Ok(()) +} + +// Checks that the chain has made the first possible finalization. +// +// Intended to be run as soon as chain starts. +pub async fn verify_first_finalization( + network: SsvLocalNetwork, + slot_duration: Duration, +) -> Result<(), String> { + epoch_delay(Epoch::new(4), slot_duration, E::slots_per_epoch()).await; + verify_all_finalized_at(network, Epoch::new(2)).await?; + Ok(()) +} + +// Delays for `epochs`, plus half a slot extra. +pub async fn epoch_delay(epochs: Epoch, slot_duration: Duration, slots_per_epoch: u64) { + let duration = slot_duration * (epochs.as_u64() * slots_per_epoch) as u32 + slot_duration / 2; + tokio::time::sleep(duration).await +} + +// Delays for `slots`, plus half a slot extra. +async fn slot_delay(slots: Slot, slot_duration: Duration) { + let duration = slot_duration * slots.as_u64() as u32 + slot_duration / 2; + tokio::time::sleep(duration).await; +} + +// Verifies that all beacon nodes in the given network have a head state that has a finalized +// epoch of `epoch`. +pub async fn verify_all_finalized_at( + network: SsvLocalNetwork, + epoch: Epoch, +) -> Result<(), String> { + let epochs = { + let mut epochs = Vec::new(); + for remote_node in network.remote_nodes()? { + epochs.push( + remote_node + .get_beacon_states_finality_checkpoints(StateId::Head) + .await + .map(|body| body.unwrap().data.finalized.epoch) + .map_err(|e| format!("Get head via http failed: {:?}", e))?, + ); + } + epochs + }; + + if epochs.iter().any(|node_epoch| *node_epoch != epoch) { + Err(format!( + "Nodes are not finalized at epoch {}. Finalized epochs: {:?}", + epoch, epochs + )) + } else { + Ok(()) + } +} + +// Verifies that all beacon nodes in the given `network` have a head state that contains +// `expected_count` validators. +async fn verify_validator_count( + network: SsvLocalNetwork, + expected_count: usize, +) -> Result<(), String> { + let validator_counts = { + let mut validator_counts = Vec::new(); + for remote_node in network.remote_nodes()? { + let vc = remote_node + .get_debug_beacon_states::(StateId::Head) + .await + .map(|body| body.unwrap().data) + .map_err(|e| format!("Get state root via http failed: {:?}", e))? + .validators() + .len(); + validator_counts.push(vc); + } + validator_counts + }; + + if validator_counts + .iter() + .any(|count| *count != expected_count) + { + Err(format!( + "Nodes do not all have {} validators in their state. Validator counts: {:?}", + expected_count, validator_counts + )) + } else { + Ok(()) + } +} + +// Verifies that there's been a block produced at every slot up to and including `slot`. +pub async fn verify_full_block_production_up_to( + network: SsvLocalNetwork, + slot: Slot, + slot_duration: Duration, +) -> Result<(), String> { + slot_delay(slot, slot_duration).await; + let beacon_nodes = network.beacon_nodes.read(); + let beacon_chain = beacon_nodes[0].client.beacon_chain().unwrap(); + let num_blocks = beacon_chain + .chain_dump() + .unwrap() + .iter() + .take_while(|s| s.beacon_block.slot() <= slot) + .count(); + if num_blocks != slot.as_usize() + 1 { + return Err(format!( + "There wasn't a block produced at every slot, got: {}, expected: {}", + num_blocks, + slot.as_usize() + 1 + )); + } + Ok(()) +} + +// Verify that all sync aggregates from `sync_committee_start_slot` until `upto_slot` +// have full aggregates. +pub async fn verify_full_sync_aggregates_up_to( + network: SsvLocalNetwork, + sync_committee_start_slot: Slot, + upto_slot: Slot, + slot_duration: Duration, +) -> Result<(), String> { + slot_delay(upto_slot, slot_duration).await; + let remote_nodes = network.remote_nodes()?; + let remote_node = remote_nodes.first().unwrap(); + + for slot in sync_committee_start_slot.as_u64()..=upto_slot.as_u64() { + let sync_aggregate_count = remote_node + .get_beacon_blocks::(BlockId::Slot(Slot::new(slot))) + .await + .map(|resp| { + resp.unwrap() + .data + .message() + .body() + .sync_aggregate() + .map(|agg| agg.num_set_bits()) + }) + .map_err(|e| format!("Error while getting beacon block: {:?}", e))? + .map_err(|_| format!("Altair block {} should have sync aggregate", slot))?; + + if sync_aggregate_count != E::sync_committee_size() { + return Err(format!( + "Sync aggregate at slot {} was not full, got: {}, expected: {}", + slot, + sync_aggregate_count, + E::sync_committee_size() + )); + } + } + + Ok(()) +} + +// Verify that the first merged PoS block got finalized. +pub async fn verify_transition_block_finalized( + network: SsvLocalNetwork, + transition_epoch: Epoch, + slot_duration: Duration, + should_verify: bool, +) -> Result<(), String> { + if !should_verify { + return Ok(()); + } + epoch_delay(transition_epoch + 2, slot_duration, E::slots_per_epoch()).await; + let mut block_hashes = Vec::new(); + for remote_node in network.remote_nodes()?.iter() { + let execution_block_hash: ExecutionBlockHash = remote_node + .get_beacon_blocks::(BlockId::Finalized) + .await + .map(|body| body.unwrap().data) + .map_err(|e| format!("Get state root via http failed: {:?}", e))? + .message() + .execution_payload() + .map(|payload| payload.block_hash()) + .map_err(|e| format!("Execution payload does not exist: {:?}", e))?; + block_hashes.push(execution_block_hash); + } + + let first = block_hashes[0]; + if block_hashes.iter().all(|&item| item == first) { + Ok(()) + } else { + Err(format!( + "Terminal block not finalized on all nodes Finalized block hashes:{:?}", + block_hashes + )) + } +} + +// Ensure all validators have attested correctly. +pub async fn check_attestation_correctness( + network: SsvLocalNetwork, + start_epoch: u64, + upto_epoch: u64, + slot_duration: Duration, + // Select which node to query. Will use this node to determine the global network performance. + node_index: usize, + acceptable_attestation_performance: f64, +) -> Result<(), String> { + epoch_delay(Epoch::new(upto_epoch), slot_duration, E::slots_per_epoch()).await; + + let remote_node = &network.remote_nodes()?[node_index]; + + let results = remote_node + .get_lighthouse_analysis_attestation_performance( + Epoch::new(start_epoch), + Epoch::new(upto_epoch - 2), + "global".to_string(), + ) + .await + .map_err(|e| format!("Unable to get attestation performance: {e}"))?; + + let mut active_successes: f64 = 0.0; + let mut head_successes: f64 = 0.0; + let mut target_successes: f64 = 0.0; + let mut source_successes: f64 = 0.0; + + let mut total: f64 = 0.0; + + for result in results { + for epochs in result.epochs.values() { + total += 1.0; + + if epochs.active { + active_successes += 1.0; + } + if epochs.head { + head_successes += 1.0; + } + if epochs.target { + target_successes += 1.0; + } + if epochs.source { + source_successes += 1.0; + } + } + } + let active_percent = active_successes / total * 100.0; + let head_percent = head_successes / total * 100.0; + let target_percent = target_successes / total * 100.0; + let source_percent = source_successes / total * 100.0; + + eprintln!("Total Attestations: {}", total); + eprintln!("Active: {}: {}%", active_successes, active_percent); + eprintln!("Head: {}: {}%", head_successes, head_percent); + eprintln!("Target: {}: {}%", target_successes, target_percent); + eprintln!("Source: {}: {}%", source_successes, source_percent); + + if active_percent < acceptable_attestation_performance { + return Err("Active percent was below required level".to_string()); + } + if head_percent < acceptable_attestation_performance { + return Err("Head percent was below required level".to_string()); + } + if target_percent < acceptable_attestation_performance { + return Err("Target percent was below required level".to_string()); + } + if source_percent < acceptable_attestation_performance { + return Err("Source percent was below required level".to_string()); + } -pub async fn mock_verify() -> Result<(), String> { Ok(()) } diff --git a/anchor/integration/src/local_network.rs b/anchor/integration/src/local_network.rs index f441fa87b..c0eb58861 100644 --- a/anchor/integration/src/local_network.rs +++ b/anchor/integration/src/local_network.rs @@ -6,9 +6,10 @@ use node_test_rig::{ eth2::{types::EthSpec, BeaconNodeHttpClient, SensitiveUrl as Eth2SensitiveUrl}, ClientConfig, LocalBeaconNode, LocalExecutionNode, MockExecutionConfig, }; +use parking_lot::RwLock; use sensitive_url::SensitiveUrl; use std::ops::Deref; -use std::sync::{Arc, RwLock}; +use std::sync::Arc; use std::time::{Duration, SystemTime, UNIX_EPOCH}; const BOOTNODE_PORT: u16 = 42424; @@ -98,7 +99,7 @@ impl SsvLocalNetwork { ) -> Result<(), String> { { // Add ENR of bootnode - let read_lock = self.anchor_nodes.read().expect("Failed to get read lock"); + let read_lock = self.anchor_nodes.read(); let boot_node = read_lock.first(); if let Some(boot_node) = boot_node { @@ -109,7 +110,7 @@ impl SsvLocalNetwork { // Add a beacon node endpoint let beacon_node = { - let read_lock = self.beacon_nodes.read().expect("Failed to get read lock"); + let read_lock = self.beacon_nodes.read(); let beacon_node = read_lock .get(index) .ok_or_else(|| format!("No beacon node for index {}", index))?; @@ -138,10 +139,7 @@ impl SsvLocalNetwork { anchor_node.run(self.context.executor.clone())?; // Add node to the network - self.anchor_nodes - .write() - .expect("Failed to get write lock") - .push(anchor_node); + self.anchor_nodes.write().push(anchor_node); Ok(()) } @@ -156,7 +154,7 @@ impl SsvLocalNetwork { let first_bn_exists: bool; { // Add ENR of the bootnode if it exists - let read_lock = self.beacon_nodes.read().expect("Failed to get read lock"); + let read_lock = self.beacon_nodes.read(); let boot_node = read_lock.first(); first_bn_exists = boot_node.is_some(); if let Some(boot_node) = boot_node { @@ -180,20 +178,11 @@ impl SsvLocalNetwork { }; // Add nodes to the network. - self.execution_nodes - .write() - .expect("Failed to get write lock") - .push(execution_node); + self.execution_nodes.write().push(execution_node); if is_proposer { - self.proposer_nodes - .write() - .expect("Failed to get write lock") - .push(beacon_node); + self.proposer_nodes.write().push(beacon_node); } else { - self.beacon_nodes - .write() - .expect("Failed to get write lock") - .push(beacon_node); + self.beacon_nodes.write().push(beacon_node); } Ok(()) } @@ -243,8 +232,8 @@ impl SsvLocalNetwork { mut mock_execution_config: MockExecutionConfig, is_proposer: bool, ) -> Result<(LocalBeaconNode, LocalExecutionNode), String> { - let beacon_node_count = self.beacon_nodes.read().unwrap().len(); - let proposer_node_count = self.proposer_nodes.read().unwrap().len(); + let beacon_node_count = self.beacon_nodes.read().len(); + let proposer_node_count = self.proposer_nodes.read().len(); let count = (beacon_node_count + proposer_node_count) as u16; // Set config. @@ -290,8 +279,8 @@ impl SsvLocalNetwork { } pub fn remote_nodes(&self) -> Result, String> { - let beacon_nodes = self.beacon_nodes.read().expect("Failed to get read lock"); - let proposer_nodes = self.proposer_nodes.read().expect("Failed to get read lock"); + let beacon_nodes = self.beacon_nodes.read(); + let proposer_nodes = self.proposer_nodes.read(); beacon_nodes .iter() diff --git a/anchor/integration/src/main.rs b/anchor/integration/src/main.rs index 04e81225e..551a89828 100644 --- a/anchor/integration/src/main.rs +++ b/anchor/integration/src/main.rs @@ -1,6 +1,6 @@ use crate::basic_sim::BasicSim; -use crate::util::setup_logging; use crate::cli::cli_app; +use crate::util::setup_logging; use tracing::error; mod basic_sim; @@ -27,4 +27,3 @@ fn main() -> Result<(), String> { Ok(()) } - From 60d4a9c590c7d9cb361bee26560ccb9e0dd84e8e Mon Sep 17 00:00:00 2001 From: Zacholme7 Date: Thu, 27 Mar 2025 22:00:44 +0000 Subject: [PATCH 25/52] update databases to hold 1000 validators --- .../mock-data/operator-0/anchor_db.sqlite | Bin 86016 -> 2912256 bytes .../mock-data/operator-0/network/enr.dat | 2 +- .../mock-data/operator-1/anchor_db.sqlite | Bin 86016 -> 2912256 bytes .../mock-data/operator-1/network/enr.dat | 2 +- .../mock-data/operator-2/anchor_db.sqlite | Bin 86016 -> 2912256 bytes .../mock-data/operator-2/network/enr.dat | 2 +- .../mock-data/operator-3/anchor_db.sqlite | Bin 86016 -> 2912256 bytes .../mock-data/operator-3/network/enr.dat | 2 +- anchor/integration/src/cli.rs | 8 ++++++++ anchor/integration/src/util.rs | 7 ++++++- 10 files changed, 18 insertions(+), 5 deletions(-) diff --git a/anchor/integration/mock-data/operator-0/anchor_db.sqlite b/anchor/integration/mock-data/operator-0/anchor_db.sqlite index 8aed9b16585c2f5c2c12fd7f97d53048f89f3899..3c2ef8e314a7e1a3305e24893aa789f4c6291036 100644 GIT binary patch literal 2912256 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 Brs_)+Jh;a4SL(#|2y?&*h44+#vOWA#kx<8_~C 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 z zDZZJl736+qT*{rx&+n#`Jh+%V`jKX<2{#^XJEH10&Fj(NS?!KaxNMp6u5nS}nq$*4 z`$WcXU%j{6-pzWAwsw0P;$iyf-Li>&+xANcTev*-omuS@9U4&aR%WwfVNteg zzcrcqyPxMrT6({1r!eeu@`3o~ozL|g{OH82LBU<^^1KS7UhFb=@yo5d>H2lK?ZT?t z@?W�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