From 8a1b77bf8956656cc585c2bd3079729f27aaa594 Mon Sep 17 00:00:00 2001 From: Age Manning Date: Tue, 3 Oct 2023 06:33:15 +0000 Subject: [PATCH] Ultra Fast Super Slick CI (#4755) Attempting to improve our CI speeds as its recently been a pain point. Major changes: - Use a github action to pull stable/nightly rust rather than building it each run - Shift test suite to `nexttest` https://github.com/nextest-rs/nextest for CI UPDATE: So I've iterated on some changes, and although I think its still not optimal I think this is a good base to start from. Some extra things in this PR: - Shifted where we pull rust from. We're now using this thing: https://github.com/moonrepo/setup-rust . It's got some interesting cache's built in, but was not seeing the gains that Jimmy managed to get. In either case tho, it can pull rust, cargofmt, clippy, cargo nexttest all in < 5s. So I think it's worthwhile. - I've grouped a few of the check-like tests into a single test called `code-test`. Although we were using github runners in parallel which may be faster, it just seems wasteful. There were like 4-5 tests, where we would pull lighthouse, compile it, then run an action, like clippy, cargo-audit or fmt. I've grouped these into a single action, so we only compile lighthouse once, then in each step we run the checks. This avoids compiling lighthouse like 5 times. - Ive made doppelganger tests run on our local machines to avoid pulling foundry, building and making lcli which are all now baked into the images. - We have sccache and do not incremental compile lighthouse Misc bonus things: - Cargo update - Fix web3 signer openssl keys which is required after a cargo update - Use mock_instant in an LRU cache test to avoid non-deterministic test - Remove race condition in building web3signer tests There's still some things we could improve on. Such as downloading the EF tests every run and the web3-signer binary, but I've left these to be out of scope of this PR. I think the above are meaningful improvements. Co-authored-by: Paul Hauner Co-authored-by: realbigsean Co-authored-by: antondlr --- .config/nextest.toml | 113 +++++++ .github/workflows/test-suite.yml | 281 ++++++++++-------- Cargo.lock | 254 +++++++--------- Makefile | 37 ++- bors.toml | 1 + common/lru_cache/Cargo.toml | 3 + common/lru_cache/src/time.rs | 14 +- .../src/per_block_processing/tests.rs | 2 +- testing/web3signer_tests/tls/generate.sh | 4 +- .../web3signer_tests/tls/lighthouse/cert.pem | 52 ++-- .../web3signer_tests/tls/lighthouse/key.key | 100 +++---- .../web3signer_tests/tls/lighthouse/key.p12 | Bin 4371 -> 4371 bytes .../tls/lighthouse/web3signer.pem | 52 ++-- .../web3signer_tests/tls/web3signer/cert.pem | 52 ++-- .../web3signer_tests/tls/web3signer/key.key | 100 +++---- .../web3signer_tests/tls/web3signer/key.p12 | Bin 4371 -> 4371 bytes .../tls/web3signer/known_clients.txt | 2 +- validator_client/slashing_protection/Makefile | 17 +- .../slashing_protection/tests/interop.rs | 7 +- 19 files changed, 616 insertions(+), 475 deletions(-) create mode 100644 .config/nextest.toml diff --git a/.config/nextest.toml b/.config/nextest.toml new file mode 100644 index 000000000..b701259fc --- /dev/null +++ b/.config/nextest.toml @@ -0,0 +1,113 @@ +# This is the default config used by nextest. It is embedded in the binary at +# build time. It may be used as a template for .config/nextest.toml. + +[store] +# The directory under the workspace root at which nextest-related files are +# written. Profile-specific storage is currently written to dir/. +dir = "target/nextest" + +# This section defines the default nextest profile. Custom profiles are layered +# on top of the default profile. +[profile.default] +# "retries" defines the number of times a test should be retried. If set to a +# non-zero value, tests that succeed on a subsequent attempt will be marked as +# non-flaky. Can be overridden through the `--retries` option. +# Examples +# * retries = 3 +# * retries = { backoff = "fixed", count = 2, delay = "1s" } +# * retries = { backoff = "exponential", count = 10, delay = "1s", jitter = true, max-delay = "10s" } +retries = 0 + +# The number of threads to run tests with. Supported values are either an integer or +# the string "num-cpus". Can be overridden through the `--test-threads` option. +test-threads = "num-cpus" + +# The number of threads required for each test. This is generally used in overrides to +# mark certain tests as heavier than others. However, it can also be set as a global parameter. +threads-required = 1 + +# Show these test statuses in the output. +# +# The possible values this can take are: +# * none: no output +# * fail: show failed (including exec-failed) tests +# * retry: show flaky and retried tests +# * slow: show slow tests +# * pass: show passed tests +# * skip: show skipped tests (most useful for CI) +# * all: all of the above +# +# Each value includes all the values above it; for example, "slow" includes +# failed and retried tests. +# +# Can be overridden through the `--status-level` flag. +status-level = "pass" + +# Similar to status-level, show these test statuses at the end of the run. +final-status-level = "flaky" + +# "failure-output" defines when standard output and standard error for failing tests are produced. +# Accepted values are +# * "immediate": output failures as soon as they happen +# * "final": output failures at the end of the test run +# * "immediate-final": output failures as soon as they happen and at the end of +# the test run; combination of "immediate" and "final" +# * "never": don't output failures at all +# +# For large test suites and CI it is generally useful to use "immediate-final". +# +# Can be overridden through the `--failure-output` option. +failure-output = "immediate" + +# "success-output" controls production of standard output and standard error on success. This should +# generally be set to "never". +success-output = "never" + +# Cancel the test run on the first failure. For CI runs, consider setting this +# to false. +fail-fast = true + +# Treat a test that takes longer than the configured 'period' as slow, and print a message. +# See for more information. +# +# Optional: specify the parameter 'terminate-after' with a non-zero integer, +# which will cause slow tests to be terminated after the specified number of +# periods have passed. +# Example: slow-timeout = { period = "60s", terminate-after = 2 } +slow-timeout = { period = "120s" } + +# Treat a test as leaky if after the process is shut down, standard output and standard error +# aren't closed within this duration. +# +# This usually happens in case of a test that creates a child process and lets it inherit those +# handles, but doesn't clean the child process up (especially when it fails). +# +# See for more information. +leak-timeout = "100ms" + +[profile.default.junit] +# Output a JUnit report into the given file inside 'store.dir/'. +# If unspecified, JUnit is not written out. + +# path = "junit.xml" + +# The name of the top-level "report" element in JUnit report. If aggregating +# reports across different test runs, it may be useful to provide separate names +# for each report. +report-name = "lighthouse-run" + +# Whether standard output and standard error for passing tests should be stored in the JUnit report. +# Output is stored in the and elements of the element. +store-success-output = false + +# Whether standard output and standard error for failing tests should be stored in the JUnit report. +# Output is stored in the and elements of the element. +# +# Note that if a description can be extracted from the output, it is always stored in the +# element. +store-failure-output = true + +# This profile is activated if MIRI_SYSROOT is set. +[profile.default-miri] +# Miri tests take up a lot of memory, so only run 1 test at a time by default. +test-threads = 4 diff --git a/.github/workflows/test-suite.yml b/.github/workflows/test-suite.yml index fd9b77ae2..a296cc849 100644 --- a/.github/workflows/test-suite.yml +++ b/.github/workflows/test-suite.yml @@ -18,14 +18,14 @@ env: # Deny warnings in CI # Disable debug info (see https://github.com/sigp/lighthouse/issues/4005) RUSTFLAGS: "-D warnings -C debuginfo=0" - # The Nightly version used for cargo-udeps, might need updating from time to time. - PINNED_NIGHTLY: nightly-2023-04-16 # Prevent Github API rate limiting. LIGHTHOUSE_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Enable self-hosted runners for the sigp repo only. SELF_HOSTED_RUNNERS: ${{ github.repository == 'sigp/lighthouse' }} # Self-hosted runners need to reference a different host for `./watch` tests. WATCH_HOST: ${{ github.repository == 'sigp/lighthouse' && 'host.docker.internal' || 'localhost' }} + # Disable incremental compilation + CARGO_INCREMENTAL: 0 jobs: target-branch-check: name: target-branch-check @@ -34,145 +34,176 @@ jobs: steps: - name: Check that the pull request is not targeting the stable branch run: test ${{ github.base_ref }} != "stable" - extract-msrv: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Extract Minimum Supported Rust Version (MSRV) - run: | - metadata=$(cargo metadata --no-deps --format-version 1) - msrv=$(echo $metadata | jq -r '.packages | map(select(.name == "lighthouse")) | .[0].rust_version') - echo "MSRV=$msrv" >> $GITHUB_OUTPUT - id: extract_msrv - outputs: - MSRV: ${{ steps.extract_msrv.outputs.MSRV }} - cargo-fmt: - name: cargo-fmt - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Get latest version of stable Rust - run: rustup update stable - - name: Check formatting with cargo fmt - run: make cargo-fmt release-tests-ubuntu: name: release-tests-ubuntu # Use self-hosted runners only on the sigp repo. runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }} - needs: cargo-fmt steps: - uses: actions/checkout@v3 - name: Get latest version of stable Rust - if: env.SELF_HOSTED_RUNNERS == false - run: rustup update stable + if: env.SELF_HOSTED_RUNNERS == 'false' + uses: moonrepo/setup-rust@v1 + with: + channel: stable + cache-target: release + bins: cargo-nextest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Install Foundry (anvil) + if: env.SELF_HOSTED_RUNNERS == 'false' uses: foundry-rs/foundry-toolchain@v1 with: version: nightly-ca67d15f4abd46394b324c50e21e66f306a1162d - name: Run tests in release - run: make test-release + run: make nextest-release + - name: Show cache stats + if: env.SELF_HOSTED_RUNNERS == 'true' + run: sccache --show-stats release-tests-windows: name: release-tests-windows runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "windows", "CI"]') || 'windows-2019' }} - needs: cargo-fmt steps: - uses: actions/checkout@v3 - name: Get latest version of stable Rust - if: env.SELF_HOSTED_RUNNERS == false - run: rustup update stable + if: env.SELF_HOSTED_RUNNERS == 'false' + uses: moonrepo/setup-rust@v1 + with: + channel: stable + cache-target: release + bins: cargo-nextest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Install Foundry (anvil) + if: env.SELF_HOSTED_RUNNERS == 'false' uses: foundry-rs/foundry-toolchain@v1 with: version: nightly-ca67d15f4abd46394b324c50e21e66f306a1162d - name: Install make + if: env.SELF_HOSTED_RUNNERS == 'false' run: choco install -y make - - uses: KyleMayes/install-llvm-action@v1 - if: env.SELF_HOSTED_RUNNERS == false - with: - version: "15.0" - directory: ${{ runner.temp }}/llvm +# - uses: KyleMayes/install-llvm-action@v1 +# if: env.SELF_HOSTED_RUNNERS == 'false' +# with: +# version: "15.0" +# directory: ${{ runner.temp }}/llvm - name: Set LIBCLANG_PATH run: echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV - name: Run tests in release - run: make test-release + run: make nextest-release + - name: Show cache stats + if: env.SELF_HOSTED_RUNNERS == 'true' + run: sccache --show-stats beacon-chain-tests: name: beacon-chain-tests # Use self-hosted runners only on the sigp repo. runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }} - needs: cargo-fmt + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v3 - name: Get latest version of stable Rust - if: env.SELF_HOSTED_RUNNERS == false - run: rustup update stable + if: env.SELF_HOSTED_RUNNERS == 'false' + uses: moonrepo/setup-rust@v1 + with: + channel: stable + cache-target: release + bins: cargo-nextest - name: Run beacon_chain tests for all known forks run: make test-beacon-chain + - name: Show cache stats + if: env.SELF_HOSTED_RUNNERS == 'true' + run: sccache --show-stats op-pool-tests: name: op-pool-tests runs-on: ubuntu-latest - needs: cargo-fmt + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v3 - name: Get latest version of stable Rust - run: rustup update stable + uses: moonrepo/setup-rust@v1 + with: + channel: stable + cache-target: release + bins: cargo-nextest - name: Run operation_pool tests for all known forks run: make test-op-pool slasher-tests: name: slasher-tests runs-on: ubuntu-latest - needs: cargo-fmt + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v3 - name: Get latest version of stable Rust - run: rustup update stable + uses: moonrepo/setup-rust@v1 + with: + channel: stable + cache-target: release + bins: cargo-nextest - name: Run slasher tests for all supported backends run: make test-slasher debug-tests-ubuntu: name: debug-tests-ubuntu # Use self-hosted runners only on the sigp repo. runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }} - needs: cargo-fmt + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v3 - name: Get latest version of stable Rust - if: env.SELF_HOSTED_RUNNERS == false - run: rustup update stable + if: env.SELF_HOSTED_RUNNERS == 'false' + uses: moonrepo/setup-rust@v1 + with: + channel: stable + bins: cargo-nextest - name: Install Foundry (anvil) + if: env.SELF_HOSTED_RUNNERS == 'false' uses: foundry-rs/foundry-toolchain@v1 with: version: nightly-ca67d15f4abd46394b324c50e21e66f306a1162d - name: Run tests in debug - run: make test-debug + run: make nextest-debug + - name: Show cache stats + if: env.SELF_HOSTED_RUNNERS == 'true' + run: sccache --show-stats state-transition-vectors-ubuntu: name: state-transition-vectors-ubuntu runs-on: ubuntu-latest - needs: cargo-fmt steps: - uses: actions/checkout@v3 - name: Get latest version of stable Rust - run: rustup update stable + uses: moonrepo/setup-rust@v1 + with: + channel: stable + cache-target: release - name: Run state_transition_vectors in release. run: make run-state-transition-tests ef-tests-ubuntu: name: ef-tests-ubuntu # Use self-hosted runners only on the sigp repo. runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "small"]') || 'ubuntu-latest' }} - needs: cargo-fmt + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v3 - name: Get latest version of stable Rust - if: env.SELF_HOSTED_RUNNERS == false - run: rustup update stable + if: env.SELF_HOSTED_RUNNERS == 'false' + uses: moonrepo/setup-rust@v1 + with: + channel: stable + cache-target: release + bins: cargo-nextest - name: Run consensus-spec-tests with blst, milagro and fake_crypto - run: make test-ef + run: make nextest-ef + - name: Show cache stats + if: env.SELF_HOSTED_RUNNERS == 'true' + run: sccache --show-stats dockerfile-ubuntu: name: dockerfile-ubuntu runs-on: ubuntu-latest - needs: cargo-fmt steps: - uses: actions/checkout@v3 - - name: Get latest version of stable Rust - run: rustup update stable - name: Build the root Dockerfile run: docker build --build-arg FEATURES=portable -t lighthouse:local . - name: Test the built image @@ -180,11 +211,13 @@ jobs: eth1-simulator-ubuntu: name: eth1-simulator-ubuntu runs-on: ubuntu-latest - needs: cargo-fmt steps: - uses: actions/checkout@v3 - name: Get latest version of stable Rust - run: rustup update stable + uses: moonrepo/setup-rust@v1 + with: + channel: stable + cache-target: release - name: Install Foundry (anvil) uses: foundry-rs/foundry-toolchain@v1 with: @@ -194,11 +227,13 @@ jobs: merge-transition-ubuntu: name: merge-transition-ubuntu runs-on: ubuntu-latest - needs: cargo-fmt steps: - uses: actions/checkout@v3 - name: Get latest version of stable Rust - run: rustup update stable + uses: moonrepo/setup-rust@v1 + with: + channel: stable + cache-target: release - name: Install Foundry (anvil) uses: foundry-rs/foundry-toolchain@v1 with: @@ -208,21 +243,25 @@ jobs: no-eth1-simulator-ubuntu: name: no-eth1-simulator-ubuntu runs-on: ubuntu-latest - needs: cargo-fmt steps: - uses: actions/checkout@v3 - name: Get latest version of stable Rust - run: rustup update stable + uses: moonrepo/setup-rust@v1 + with: + channel: stable + cache-target: release - name: Run the beacon chain sim without an eth1 connection run: cargo run --release --bin simulator no-eth1-sim syncing-simulator-ubuntu: name: syncing-simulator-ubuntu runs-on: ubuntu-latest - needs: cargo-fmt steps: - uses: actions/checkout@v3 - name: Get latest version of stable Rust - run: rustup update stable + uses: moonrepo/setup-rust@v1 + with: + channel: stable + cache-target: release - name: Install Foundry (anvil) uses: foundry-rs/foundry-toolchain@v1 with: @@ -231,21 +270,27 @@ jobs: run: cargo run --release --bin simulator syncing-sim doppelganger-protection-test: name: doppelganger-protection-test - runs-on: ubuntu-latest - needs: cargo-fmt + runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "small"]') || 'ubuntu-latest' }} steps: - uses: actions/checkout@v3 - name: Get latest version of stable Rust - run: rustup update stable + if: env.SELF_HOSTED_RUNNERS == 'false' + uses: moonrepo/setup-rust@v1 + with: + channel: stable + cache-target: release - name: Install geth + if: env.SELF_HOSTED_RUNNERS == 'false' run: | sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install ethereum - - name: Install lighthouse and lcli + - name: Install lighthouse run: | make - make install-lcli + - name: Install lcli + if: env.SELF_HOSTED_RUNNERS == 'false' + run: make install-lcli - name: Run the doppelganger protection failure test script run: | cd scripts/tests @@ -257,89 +302,71 @@ jobs: execution-engine-integration-ubuntu: name: execution-engine-integration-ubuntu runs-on: ubuntu-latest - needs: cargo-fmt steps: - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 - with: - go-version: '1.20' - - uses: actions/setup-dotnet@v3 - with: - dotnet-version: '6.0.201' - name: Get latest version of stable Rust - run: rustup update stable + uses: moonrepo/setup-rust@v1 + with: + channel: stable + cache-target: release + cache: false + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Run exec engine integration tests in release run: make test-exec-engine - check-benchmarks: - name: check-benchmarks + check-code: + name: check-code runs-on: ubuntu-latest - needs: cargo-fmt + env: + CARGO_INCREMENTAL: 1 steps: - uses: actions/checkout@v3 - name: Get latest version of stable Rust - run: rustup update stable - - name: Typecheck benchmark code without running it - run: make check-benches - clippy: - name: clippy - runs-on: ubuntu-latest - needs: cargo-fmt - steps: - - uses: actions/checkout@v3 - - name: Get latest version of stable Rust - run: rustup update stable + uses: moonrepo/setup-rust@v1 + with: + channel: stable + cache-target: release + components: rustfmt,clippy + bins: cargo-audit + - name: Check formatting with cargo fmt + run: make cargo-fmt - name: Lint code for quality and style with Clippy run: make lint - name: Certify Cargo.lock freshness run: git diff --exit-code Cargo.lock + - name: Typecheck benchmark code without running it + run: make check-benches + - name: Validate state_processing feature arbitrary-fuzz + run: make arbitrary-fuzz + - name: Run cargo audit + run: make audit-CI + - name: Run cargo vendor to make sure dependencies can be vendored for packaging, reproducibility and archival purpose + run: CARGO_HOME=$(readlink -f $HOME) make vendor check-msrv: name: check-msrv runs-on: ubuntu-latest - needs: [cargo-fmt, extract-msrv] steps: - uses: actions/checkout@v3 - - name: Install Rust @ MSRV (${{ needs.extract-msrv.outputs.MSRV }}) - run: rustup override set ${{ needs.extract-msrv.outputs.MSRV }} + - name: Install Rust at Minimum Supported Rust Version (MSRV) + run: | + metadata=$(cargo metadata --no-deps --format-version 1) + msrv=$(echo $metadata | jq -r '.packages | map(select(.name == "lighthouse")) | .[0].rust_version') + rustup override set $msrv - name: Run cargo check run: cargo check --workspace - arbitrary-check: - name: arbitrary-check - runs-on: ubuntu-latest - needs: cargo-fmt - steps: - - uses: actions/checkout@v3 - - name: Get latest version of stable Rust - run: rustup update stable - - name: Validate state_processing feature arbitrary-fuzz - run: make arbitrary-fuzz - cargo-audit: - name: cargo-audit - runs-on: ubuntu-latest - needs: cargo-fmt - steps: - - uses: actions/checkout@v3 - - name: Get latest version of stable Rust - run: rustup update stable - - name: Run cargo audit to identify known security vulnerabilities reported to the RustSec Advisory Database - run: make audit - cargo-vendor: - name: cargo-vendor - runs-on: ubuntu-latest - needs: cargo-fmt - steps: - - uses: actions/checkout@v3 - - name: Run cargo vendor to make sure dependencies can be vendored for packaging, reproducibility and archival purpose - run: CARGO_HOME=$(readlink -f $HOME) make vendor cargo-udeps: name: cargo-udeps runs-on: ubuntu-latest - needs: cargo-fmt steps: - uses: actions/checkout@v3 - - name: Install Rust (${{ env.PINNED_NIGHTLY }}) - run: rustup toolchain install $PINNED_NIGHTLY - - name: Install cargo-udeps - run: cargo install cargo-udeps --locked --force + - name: Get latest version of nightly Rust + uses: moonrepo/setup-rust@v1 + with: + channel: nightly + bins: cargo-udeps + cache: false + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create Cargo config dir run: mkdir -p .cargo - name: Install custom Cargo config diff --git a/Cargo.lock b/Cargo.lock index 90a5373db..2a8fbdd74 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -153,9 +153,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f2135563fb5c609d2b2b87c1e8ce7bc41b0b45430fa9661f457981503dd5bf0" +checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab" dependencies = [ "memchr", ] @@ -225,15 +225,6 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" -[[package]] -name = "array-init" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23589ecb866b460d3a0f1278834750268c607e8e28a1b982c907219f3178cd72" -dependencies = [ - "nodrop", -] - [[package]] name = "arrayref" version = "0.3.7" @@ -578,7 +569,7 @@ dependencies = [ "slog", "sloggers", "slot_clock", - "smallvec 1.11.0", + "smallvec", "ssz_types", "state_processing", "store", @@ -903,7 +894,7 @@ dependencies = [ "ethereum_ssz_derive", "quickcheck", "quickcheck_macros", - "smallvec 1.11.0", + "smallvec", "ssz_types", "tree_hash", ] @@ -1138,9 +1129,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" +checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" dependencies = [ "crossbeam-utils", ] @@ -1400,9 +1391,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.1.0" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622178105f911d937a42cdb140730ba4a3ed2becd8ae6ce39c7d28b5d75d4588" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" dependencies = [ "cfg-if", "cpufeatures", @@ -1538,7 +1529,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4355c25cbf99edcb6b4a0e906f6bdc6956eda149e84455bea49696429b2f8e8" dependencies = [ "futures", - "tokio-util 0.7.8", + "tokio-util 0.7.9", ] [[package]] @@ -1633,9 +1624,9 @@ dependencies = [ [[package]] name = "diesel" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98235fdc2f355d330a8244184ab6b4b33c28679c0b4158f63138e51d6cf7e88" +checksum = "53c8a2cb22327206568569e5a45bb5a2c946455efdd76e24d15b7e82171af95e" dependencies = [ "bitflags 2.4.0", "byteorder", @@ -1647,9 +1638,9 @@ dependencies = [ [[package]] name = "diesel_derives" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e054665eaf6d97d1e7125512bb2d35d07c73ac86cc6920174cb42d1ab697a554" +checksum = "ef8337737574f55a468005a83499da720f20c65586241ffea339db9ecdfd2b44" dependencies = [ "diesel_table_macro_syntax", "proc-macro2", @@ -1758,7 +1749,7 @@ dependencies = [ "aes-gcm", "arrayvec", "delay_map", - "enr 0.9.0", + "enr 0.9.1", "fnv", "futures", "hashlink 0.7.0", @@ -1772,7 +1763,7 @@ dependencies = [ "parking_lot 0.11.2", "rand", "rlp", - "smallvec 1.11.0", + "smallvec", "socket2 0.4.9", "tokio", "tracing", @@ -1846,7 +1837,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980" dependencies = [ - "curve25519-dalek 4.1.0", + "curve25519-dalek 4.1.1", "ed25519", "rand_core 0.6.4", "serde", @@ -1961,9 +1952,9 @@ dependencies = [ [[package]] name = "enr" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0be7b2ac146c1f99fe245c02d16af0696450d8e06c135db75e10eeb9e642c20d" +checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b" dependencies = [ "base64 0.21.4", "bytes", @@ -1974,7 +1965,6 @@ dependencies = [ "rand", "rlp", "serde", - "serde-hex", "sha3 0.10.8", "zeroize", ] @@ -2401,7 +2391,7 @@ checksum = "e61ffea29f26e8249d35128a82ec8d3bd4fbc80179ea5f5e5e3daafef6a80fcb" dependencies = [ "ethereum-types 0.14.1", "itertools", - "smallvec 1.11.0", + "smallvec", ] [[package]] @@ -2665,9 +2655,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "ff" @@ -3106,7 +3096,7 @@ dependencies = [ "indexmap 1.9.3", "slab", "tokio", - "tokio-util 0.7.8", + "tokio-util 0.7.9", "tracing", ] @@ -3236,9 +3226,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hex" @@ -3711,7 +3701,7 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.2", + "hermit-abi 0.3.3", "libc", "windows-sys 0.48.0", ] @@ -4047,9 +4037,9 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.40.0" +version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef7dd7b09e71aac9271c60031d0e558966cdb3253ba0308ab369bb2de80630d0" +checksum = "dd44289ab25e4c9230d9246c475a22241e301b23e8f4061d3bdef304a1a99713" dependencies = [ "either", "fnv", @@ -4067,7 +4057,7 @@ dependencies = [ "quick-protobuf", "rand", "rw-stream-sink", - "smallvec 1.11.0", + "smallvec", "thiserror", "unsigned-varint 0.7.2", "void", @@ -4084,7 +4074,7 @@ dependencies = [ "libp2p-identity", "log", "parking_lot 0.12.1", - "smallvec 1.11.0", + "smallvec", "trust-dns-resolver", ] @@ -4115,7 +4105,7 @@ dependencies = [ "rand", "regex", "sha2 0.10.7", - "smallvec 1.11.0", + "smallvec", "unsigned-varint 0.7.2", "void", ] @@ -4137,7 +4127,7 @@ dependencies = [ "lru 0.10.1", "quick-protobuf", "quick-protobuf-codec", - "smallvec 1.11.0", + "smallvec", "thiserror", "void", ] @@ -4178,7 +4168,7 @@ dependencies = [ "libp2p-swarm", "log", "rand", - "smallvec 1.11.0", + "smallvec", "socket2 0.5.4", "tokio", "trust-dns-proto", @@ -4216,7 +4206,7 @@ dependencies = [ "nohash-hasher", "parking_lot 0.12.1", "rand", - "smallvec 1.11.0", + "smallvec", "unsigned-varint 0.7.2", ] @@ -4227,7 +4217,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71ce70757f2c0d82e9a3ef738fb10ea0723d16cec37f078f719e2c247704c1bb" dependencies = [ "bytes", - "curve25519-dalek 4.1.0", + "curve25519-dalek 4.1.1", "futures", "libp2p-core", "libp2p-identity", @@ -4286,9 +4276,9 @@ dependencies = [ [[package]] name = "libp2p-swarm" -version = "0.43.3" +version = "0.43.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28016944851bd73526d3c146aabf0fa9bbe27c558f080f9e5447da3a1772c01a" +checksum = "f0cf749abdc5ca1dce6296dc8ea0f012464dfcfd3ddd67ffc0cabd8241c4e1da" dependencies = [ "either", "fnv", @@ -4302,7 +4292,7 @@ dependencies = [ "multistream-select", "once_cell", "rand", - "smallvec 1.11.0", + "smallvec", "tokio", "void", ] @@ -4525,7 +4515,7 @@ dependencies = [ "slog", "slog-async", "slog-term", - "smallvec 1.11.0", + "smallvec", "snap", "ssz_types", "strum", @@ -4672,6 +4662,7 @@ name = "lru_cache" version = "0.1.0" dependencies = [ "fnv", + "mock_instant", ] [[package]] @@ -4724,22 +4715,17 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "matchit" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed1202b2a6f884ae56f04cff409ab315c5ce26b5e58d7412e484f01fd52f52ef" - -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] name = "md-5" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ + "cfg-if", "digest 0.10.7", ] @@ -4815,7 +4801,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "smallvec 1.11.0", + "smallvec", "syn 1.0.109", ] @@ -4915,6 +4901,12 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "mock_instant" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c1a54de846c4006b88b1516731cc1f6026eb5dc4bcb186aa071ef66d40524ec" + [[package]] name = "monitoring_api" version = "0.1.0" @@ -5036,7 +5028,7 @@ dependencies = [ "futures", "log", "pin-project", - "smallvec 1.11.0", + "smallvec", "unsigned-varint 0.7.2", ] @@ -5161,7 +5153,7 @@ dependencies = [ "slog-term", "sloggers", "slot_clock", - "smallvec 1.11.0", + "smallvec", "ssz_types", "store", "strum", @@ -5223,12 +5215,6 @@ dependencies = [ "validator_dir", ] -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - [[package]] name = "nohash-hasher" version = "0.2.0" @@ -5289,7 +5275,7 @@ dependencies = [ "num-traits", "rand", "serde", - "smallvec 1.11.0", + "smallvec", "zeroize", ] @@ -5329,7 +5315,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.2", + "hermit-abi 0.3.3", "libc", ] @@ -5444,9 +5430,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.1.3+3.1.2" +version = "300.1.5+3.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd2c101a165fff9935e34def4669595ab1c7847943c42be86e21503e482be107" +checksum = "559068e4c12950d7dcaa1857a61725c0d38d4fc03ff8e070ab31a75d6e316491" dependencies = [ "cc", ] @@ -5560,9 +5546,9 @@ dependencies = [ [[package]] name = "parking" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" +checksum = "e52c774a4c39359c1d1c52e43f73dd91a75a614652c825408eec30c95a9b2067" [[package]] name = "parking_lot" @@ -5595,7 +5581,7 @@ dependencies = [ "instant", "libc", "redox_syscall 0.2.16", - "smallvec 1.11.0", + "smallvec", "winapi", ] @@ -5608,7 +5594,7 @@ dependencies = [ "cfg-if", "libc", "redox_syscall 0.3.5", - "smallvec 1.11.0", + "smallvec", "windows-targets 0.48.5", ] @@ -6275,9 +6261,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ "either", "rayon-core", @@ -6285,14 +6271,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", ] [[package]] @@ -6413,7 +6397,7 @@ dependencies = [ "tokio", "tokio-native-tls", "tokio-rustls", - "tokio-util 0.7.8", + "tokio-util 0.7.9", "tower-service", "url", "wasm-bindgen", @@ -6533,7 +6517,7 @@ dependencies = [ "fallible-streaming-iterator", "hashlink 0.8.4", "libsqlite3-sys", - "smallvec 1.11.0", + "smallvec", ] [[package]] @@ -6602,9 +6586,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.13" +version = "0.38.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662" +checksum = "747c788e9ce8e92b12cd485c49ddf90723550b654b32508f979b71a7b1ecda4f" dependencies = [ "bitflags 2.4.0", "errno", @@ -6636,9 +6620,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.101.5" +version = "0.101.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a27e3b59326c16e23d30aeb7a36a24cc0d29e71d68ff611cdfb4a01d013bed" +checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe" dependencies = [ "ring", "untrusted", @@ -6818,9 +6802,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0" dependencies = [ "serde", ] @@ -6848,17 +6832,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-hex" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca37e3e4d1b39afd7ff11ee4e947efae85adfddf4841787bfa47c470e96dc26d" -dependencies = [ - "array-init", - "serde", - "smallvec 0.6.14", -] - [[package]] name = "serde_array_query" version = "0.1.0" @@ -6979,9 +6952,9 @@ dependencies = [ [[package]] name = "sha1" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", @@ -7303,18 +7276,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "0.6.14" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0" -dependencies = [ - "maybe-uninit", -] - -[[package]] -name = "smallvec" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "snap" @@ -7331,7 +7295,7 @@ dependencies = [ "aes-gcm", "blake2", "chacha20poly1305", - "curve25519-dalek 4.1.0", + "curve25519-dalek 4.1.1", "rand_core 0.6.4", "ring", "rustc_version", @@ -7423,7 +7387,7 @@ dependencies = [ "itertools", "serde", "serde_derive", - "smallvec 1.11.0", + "smallvec", "tree_hash", "typenum", ] @@ -7448,7 +7412,7 @@ dependencies = [ "merkle_proof", "rayon", "safe_arith", - "smallvec 1.11.0", + "smallvec", "ssz_types", "tokio", "tree_hash", @@ -7559,7 +7523,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "smallvec 1.11.0", + "smallvec", "syn 1.0.109", ] @@ -7706,9 +7670,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" dependencies = [ "cfg-if", - "fastrand 2.0.0", + "fastrand 2.0.1", "redox_syscall 0.3.5", - "rustix 0.38.13", + "rustix 0.38.14", "windows-sys 0.48.0", ] @@ -7725,9 +7689,9 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" dependencies = [ "winapi-util", ] @@ -7814,9 +7778,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48" +checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe" dependencies = [ "deranged", "itoa", @@ -7829,15 +7793,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" dependencies = [ "time-core", ] @@ -7978,7 +7942,7 @@ dependencies = [ "rand", "socket2 0.5.4", "tokio", - "tokio-util 0.7.8", + "tokio-util 0.7.9", "whoami", ] @@ -8001,7 +7965,7 @@ dependencies = [ "futures-core", "pin-project-lite", "tokio", - "tokio-util 0.7.8", + "tokio-util 0.7.9", ] [[package]] @@ -8022,9 +7986,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" dependencies = [ "bytes", "futures-core", @@ -8172,7 +8136,7 @@ dependencies = [ "once_cell", "regex", "sharded-slab", - "smallvec 1.11.0", + "smallvec", "thread_local", "tracing", "tracing-core", @@ -8206,7 +8170,7 @@ checksum = "5c998ac5fe2b07c025444bdd522e6258110b63861c6698eedc610c071980238d" dependencies = [ "ethereum-types 0.14.1", "ethereum_hashing", - "smallvec 1.11.0", + "smallvec", ] [[package]] @@ -8247,7 +8211,7 @@ dependencies = [ "ipnet", "lazy_static", "rand", - "smallvec 1.11.0", + "smallvec", "socket2 0.4.9", "thiserror", "tinyvec", @@ -8269,7 +8233,7 @@ dependencies = [ "lru-cache", "parking_lot 0.12.1", "resolv-conf", - "smallvec 1.11.0", + "smallvec", "thiserror", "tokio", "tracing", @@ -8328,7 +8292,7 @@ dependencies = [ "serde_with", "serde_yaml", "slog", - "smallvec 1.11.0", + "smallvec", "ssz_types", "state_processing", "strum", @@ -8392,9 +8356,9 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "unicode-xid" @@ -8599,9 +8563,9 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "waker-fn" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" +checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" [[package]] name = "walkdir" @@ -8646,7 +8610,7 @@ dependencies = [ "tokio", "tokio-rustls", "tokio-stream", - "tokio-util 0.7.8", + "tokio-util 0.7.9", "tower-service", "tracing", ] @@ -8898,9 +8862,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -9190,9 +9154,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.18" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab77e97b50aee93da431f2cee7cd0f43b4d1da3c408042f2d7d164187774f0a" +checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" [[package]] name = "xmltree" diff --git a/Makefile b/Makefile index 7bed5732b..8f744e03c 100644 --- a/Makefile +++ b/Makefile @@ -108,11 +108,21 @@ build-release-tarballs: test-release: cargo test --workspace --release --exclude ef_tests --exclude beacon_chain --exclude slasher +# Runs the full workspace tests in **release**, without downloading any additional +# test vectors, using nextest. +nextest-release: + cargo nextest run --workspace --release --exclude ef_tests --exclude beacon_chain --exclude slasher + # Runs the full workspace tests in **debug**, without downloading any additional test # vectors. test-debug: cargo test --workspace --exclude ef_tests --exclude beacon_chain +# Runs the full workspace tests in **debug**, without downloading any additional test +# vectors, using nextest. +nextest-debug: + cargo nextest run --workspace --exclude ef_tests --exclude beacon_chain + # Runs cargo-fmt (linter). cargo-fmt: cargo fmt --all -- --check @@ -129,25 +139,33 @@ run-ef-tests: cargo test --release -p ef_tests --features "ef_tests,$(EF_TEST_FEATURES),milagro" ./$(EF_TESTS)/check_all_files_accessed.py $(EF_TESTS)/.accessed_file_log.txt $(EF_TESTS)/consensus-spec-tests +# Runs EF test vectors with nextest +nextest-run-ef-tests: + rm -rf $(EF_TESTS)/.accessed_file_log.txt + cargo nextest run --release -p ef_tests --features "ef_tests,$(EF_TEST_FEATURES)" + cargo nextest run --release -p ef_tests --features "ef_tests,$(EF_TEST_FEATURES),fake_crypto" + cargo nextest run --release -p ef_tests --features "ef_tests,$(EF_TEST_FEATURES),milagro" + ./$(EF_TESTS)/check_all_files_accessed.py $(EF_TESTS)/.accessed_file_log.txt $(EF_TESTS)/consensus-spec-tests + # Run the tests in the `beacon_chain` crate for all known forks. test-beacon-chain: $(patsubst %,test-beacon-chain-%,$(FORKS)) test-beacon-chain-%: - env FORK_NAME=$* cargo test --release --features fork_from_env,slasher/lmdb -p beacon_chain + env FORK_NAME=$* cargo nextest run --release --features fork_from_env,slasher/lmdb -p beacon_chain # Run the tests in the `operation_pool` crate for all known forks. test-op-pool: $(patsubst %,test-op-pool-%,$(FORKS)) test-op-pool-%: - env FORK_NAME=$* cargo test --release \ + env FORK_NAME=$* cargo nextest run --release \ --features 'beacon_chain/fork_from_env'\ -p operation_pool # Run the tests in the `slasher` crate for all supported database backends. test-slasher: - cargo test --release -p slasher --features lmdb - cargo test --release -p slasher --no-default-features --features mdbx - cargo test --release -p slasher --features lmdb,mdbx # both backends enabled + cargo nextest run --release -p slasher --features lmdb + cargo nextest run --release -p slasher --no-default-features --features mdbx + cargo nextest run --release -p slasher --features lmdb,mdbx # both backends enabled # Runs only the tests/state_transition_vectors tests. run-state-transition-tests: @@ -156,6 +174,9 @@ run-state-transition-tests: # Downloads and runs the EF test vectors. test-ef: make-ef-tests run-ef-tests +# Downloads and runs the EF test vectors with nextest. +nextest-ef: make-ef-tests nextest-run-ef-tests + # Runs tests checking interop between Lighthouse and execution clients. test-exec-engine: make -C $(EXECUTION_ENGINE_INTEGRATION) test @@ -205,8 +226,12 @@ arbitrary-fuzz: cargo check -p slashing_protection --features arbitrary-fuzz # Runs cargo audit (Audit Cargo.lock files for crates with security vulnerabilities reported to the RustSec Advisory Database) -audit: +audit: install-audit audit-CI + +install-audit: cargo install --force cargo-audit + +audit-CI: cargo audit # Runs `cargo vendor` to make sure dependencies can be vendored for packaging, reproducibility and archival purpose. diff --git a/bors.toml b/bors.toml index 3782ef4db..e821b89a8 100644 --- a/bors.toml +++ b/bors.toml @@ -8,6 +8,7 @@ status = [ "eth1-simulator-ubuntu", "merge-transition-ubuntu", "no-eth1-simulator-ubuntu", + "check-code", "cargo-udeps", "beacon-chain-tests", "op-pool-tests", diff --git a/common/lru_cache/Cargo.toml b/common/lru_cache/Cargo.toml index 73c623ed4..c1bd15f9f 100644 --- a/common/lru_cache/Cargo.toml +++ b/common/lru_cache/Cargo.toml @@ -6,3 +6,6 @@ edition = { workspace = true } [dependencies] fnv = { workspace = true } + +[dev-dependencies] +mock_instant = "0.3" diff --git a/common/lru_cache/src/time.rs b/common/lru_cache/src/time.rs index 966741ca4..0b2fd8356 100644 --- a/common/lru_cache/src/time.rs +++ b/common/lru_cache/src/time.rs @@ -1,7 +1,13 @@ //! This implements a time-based LRU cache for fast checking of duplicates use fnv::FnvHashSet; +#[cfg(test)] +use mock_instant::Instant; use std::collections::VecDeque; -use std::time::{Duration, Instant}; + +#[cfg(not(test))] +use std::time::Instant; + +use std::time::Duration; struct Element { /// The key being inserted. @@ -222,16 +228,16 @@ mod test { cache.insert("a"); cache.insert("b"); - std::thread::sleep(Duration::from_millis(20)); + mock_instant::MockClock::advance(Duration::from_millis(20)); cache.insert("a"); // a is newer now - std::thread::sleep(Duration::from_millis(85)); + mock_instant::MockClock::advance(Duration::from_millis(85)); assert!(cache.contains(&"a"),); // b was inserted first but was not as recent it should have been removed assert!(!cache.contains(&"b")); - std::thread::sleep(Duration::from_millis(16)); + mock_instant::MockClock::advance(Duration::from_millis(16)); assert!(!cache.contains(&"a")); } } diff --git a/consensus/state_processing/src/per_block_processing/tests.rs b/consensus/state_processing/src/per_block_processing/tests.rs index 16fa2462f..df5aa9f7a 100644 --- a/consensus/state_processing/src/per_block_processing/tests.rs +++ b/consensus/state_processing/src/per_block_processing/tests.rs @@ -1,4 +1,4 @@ -#![cfg(all(test, not(feature = "fake_crypto")))] +#![cfg(all(test, not(feature = "fake_crypto"), not(debug_assertions)))] use crate::per_block_processing::errors::{ AttestationInvalid, AttesterSlashingInvalid, BlockOperationError, BlockProcessingError, diff --git a/testing/web3signer_tests/tls/generate.sh b/testing/web3signer_tests/tls/generate.sh index f00e7b7e3..f918e87cf 100755 --- a/testing/web3signer_tests/tls/generate.sh +++ b/testing/web3signer_tests/tls/generate.sh @@ -1,7 +1,7 @@ #!/bin/bash openssl req -x509 -sha256 -nodes -days 36500 -newkey rsa:4096 -keyout web3signer/key.key -out web3signer/cert.pem -config web3signer/config && -openssl pkcs12 -export -out web3signer/key.p12 -inkey web3signer/key.key -in web3signer/cert.pem -password pass:$(cat web3signer/password.txt) && +openssl pkcs12 -export -aes256 -out web3signer/key.p12 -inkey web3signer/key.key -in web3signer/cert.pem -password pass:$(cat web3signer/password.txt) && cp web3signer/cert.pem lighthouse/web3signer.pem && openssl req -x509 -sha256 -nodes -days 36500 -newkey rsa:4096 -keyout lighthouse/key.key -out lighthouse/cert.pem -config lighthouse/config && -openssl pkcs12 -export -out lighthouse/key.p12 -inkey lighthouse/key.key -in lighthouse/cert.pem -password pass:$(cat lighthouse/password.txt) && +openssl pkcs12 -export -aes256 -out lighthouse/key.p12 -inkey lighthouse/key.key -in lighthouse/cert.pem -password pass:$(cat lighthouse/password.txt) && openssl x509 -noout -fingerprint -sha256 -inform pem -in lighthouse/cert.pem | cut -b 20-| sed "s/^/lighthouse /" > web3signer/known_clients.txt diff --git a/testing/web3signer_tests/tls/lighthouse/cert.pem b/testing/web3signer_tests/tls/lighthouse/cert.pem index 5746d19a1..24b0a2e5c 100644 --- a/testing/web3signer_tests/tls/lighthouse/cert.pem +++ b/testing/web3signer_tests/tls/lighthouse/cert.pem @@ -1,33 +1,33 @@ -----BEGIN CERTIFICATE----- -MIIFujCCA6KgAwIBAgIUELASgYwStCn/u/8tPByRADyCwLEwDQYJKoZIhvcNAQEL +MIIFujCCA6KgAwIBAgIUXZijYo8W4/9dAq58ocFEbZDxohwwDQYJKoZIhvcNAQEL BQAwazELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlZBMREwDwYDVQQHDAhTb21lQ2l0 eTESMBAGA1UECgwJTXlDb21wYW55MRMwEQYDVQQLDApNeURpdmlzaW9uMRMwEQYD -VQQDDApsaWdodGhvdXNlMCAXDTIzMDkyMjAzMDA1N1oYDzIxMjMwODI5MDMwMDU3 +VQQDDApsaWdodGhvdXNlMCAXDTIzMDkyMDAyNTYzNloYDzIxMjMwODI3MDI1NjM2 WjBrMQswCQYDVQQGEwJVUzELMAkGA1UECAwCVkExETAPBgNVBAcMCFNvbWVDaXR5 MRIwEAYDVQQKDAlNeUNvbXBhbnkxEzARBgNVBAsMCk15RGl2aXNpb24xEzARBgNV -BAMMCmxpZ2h0aG91c2UwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCc -i30cib5B/B5QNd8grzi4LxmlyfZFi3VfpukwdwOD1Xk3ODk1OtjAzhK46YhDclvc -u98m1Dnib1Z+eTjRuEEoekIxz2+BbOle7G52LNvuDZpD+HKucqIU3TnEKPPuTYPp -lZ1n/9EyxXUwD5uTkn7xXzK8UFXUt73j6I6VFMdHlNcwLcx8KSwBDzvnGT4ew/UL -+ThON3j5rIT+nFHDcC2zoM+6ANdVkL6GHid4/cOcYW6GxB9TRZtEasqze41bC+kX -ZtPlV5V2nilAzVj8z9ynwBpHkLH+E6sMUhSEwA++QfI1gGf0FmSBgSIZ3RdPo/dp -hkLG8fZXKMkMzKkRm5hcstDP6DnTIYl+CfuVez5gZ0/yelAqXNvTqMKuDhHTTRRY -aOXZX4BAiQO2Q6a6WYLe87E2ka5AF2T2y/BPeXjUwDS/1mFIB3FUGlMLVJt8/RLz -nXVGoSsYapttiiPucQbMPEysCJ4/LZ9zxe3EDWWjpurLHGi/Y/dVziEvg1Eoycix -dZogKz0QVCz4++QI0kPDDX7So7CWni2JJuYguF/8CX8QbCT2L8jXf0uQrq76FLKj -88A7lS8DzXBt/pRryiIlDyLenJwHmrv6p+P/FYvgnJHvAEtTynxYm5GA16YWy+Dj -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 -----END CERTIFICATE----- diff --git a/testing/web3signer_tests/tls/lighthouse/key.key b/testing/web3signer_tests/tls/lighthouse/key.key index 91bee6a78..d00b6c212 100644 --- a/testing/web3signer_tests/tls/lighthouse/key.key +++ b/testing/web3signer_tests/tls/lighthouse/key.key @@ -1,52 +1,52 @@ -----BEGIN PRIVATE KEY----- -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 -GlPvUaKC1KX0CX1qT1anVZq9bSMTG+M= +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 +vc3Za4ClKSLmb3ZA9giTswYMev+3BQ== -----END PRIVATE KEY----- diff --git a/testing/web3signer_tests/tls/lighthouse/key.p12 b/testing/web3signer_tests/tls/lighthouse/key.p12 index d96ab477574f923701367fcd1ed4c5f6b1c45b35..73468fa084b6f5f1b036afd643967e361d004fc4 100644 GIT binary patch delta 4151 zcmV-75XkS7B9kJJYY3+c@CmIO+JBQI2O)nOCL5WWw@>l1cs+C1yB|h?f(9Vl2k-tE z7qeWxNtDd#Lpe*u5FLG`k>LsXadsNJl=ZK1cqbEbRIN$U?K_VtR3ks4949hH1r{z? z#kDB?yg0I{p(VeO2^ahb-IP00ixRw+D#3|4w~{Jy!Ry{?!px2@!Ij&L&#ycnUf-^%Ahp^9SKD8eAQmRzBo|^xD;&eFapvc44GeFe2Kku)8 zhxrGU0MHwmx;mQFzk*LlSs?EKQ?T8>JtoDE$0_iA;-WnF66NOtqjcELqsgR%5sG}G z7Zz|hN=G`KL>h9BSqvGGPG!u>W`BQDLK%=vMQ~t@

~Ek)Hr}-m+R={=UR-7z<4> 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 B^Kk$G delta 4151 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 B_uK#g delta 4151 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 B_iX?G diff --git a/testing/web3signer_tests/tls/web3signer/known_clients.txt b/testing/web3signer_tests/tls/web3signer/known_clients.txt index 330132731..c4722fe58 100644 --- a/testing/web3signer_tests/tls/web3signer/known_clients.txt +++ b/testing/web3signer_tests/tls/web3signer/known_clients.txt @@ -1 +1 @@ -lighthouse FF:4C:84:A6:37:28:EC:7E:A7:D8:C6:49:0D:C6:F9:5D:C1:06:BA:6D:69:49:0A:AA:38:32:01:2B:ED:D9:F2:FA +lighthouse 02:D0:A8:C0:6A:59:90:40:54:67:D4:BD:AE:5A:D4:F5:14:A9:79:38:98:E0:62:93:C1:77:13:FC:B4:60:65:CE diff --git a/validator_client/slashing_protection/Makefile b/validator_client/slashing_protection/Makefile index e3d935b4c..0663b3cba 100644 --- a/validator_client/slashing_protection/Makefile +++ b/validator_client/slashing_protection/Makefile @@ -6,20 +6,23 @@ ARCHIVE_URL := https://github.com/eth-clients/slashing-protection-interchange-te ifeq ($(OS),Windows_NT) ifeq (, $(shell where rm)) - rmfile = if exist $(1) (del /F /Q $(1)) - rmdir = if exist $(1) (rmdir /Q /S $(1)) + rmfile = if exist $(1) (del /F /Q $(1)) + rmdir = if exist $(1) (rmdir /Q /S $(1)) + makedir = if not exist $(1) (mkdir $(1)) else - rmfile = rm -f $(1) - rmdir = rm -rf $(1) + rmfile = rm -f $(1) + rmdir = rm -rf $(1) + makedir = mkdir -p $(1) endif else - rmfile = rm -f $(1) - rmdir = rm -rf $(1) + rmfile = rm -f $(1) + rmdir = rm -rf $(1) + makedir = mkdir -p $(1) endif $(OUTPUT_DIR): $(TARBALL) $(call rmdir,$@) - mkdir $@ + $(call makedir,$@) tar --strip-components=1 -xzf $^ -C $@ $(TARBALL): diff --git a/validator_client/slashing_protection/tests/interop.rs b/validator_client/slashing_protection/tests/interop.rs index ee5bb1147..ee8f522cd 100644 --- a/validator_client/slashing_protection/tests/interop.rs +++ b/validator_client/slashing_protection/tests/interop.rs @@ -25,8 +25,10 @@ fn test_root_dir() -> PathBuf { .join("tests") } +// NOTE: I've combined two tests together to avoid a race-condition which occurs when fighting over +// which test builds the TEST_ROOT_DIR lazy static. #[test] -fn generated() { +fn generated_and_with_minification() { for entry in TEST_ROOT_DIR .join("generated") .read_dir() @@ -37,10 +39,7 @@ fn generated() { let test_case: MultiTestCase = serde_json::from_reader(&file).unwrap(); test_case.run(false); } -} -#[test] -fn generated_with_minification() { for entry in TEST_ROOT_DIR .join("generated") .read_dir()