mirror of
https://github.com/sigp/lighthouse.git
synced 2026-07-01 20:04:41 +00:00
Merge pull request #4 from chong-he/unstable
Merge unstable to book-cli
This commit is contained in:
113
.config/nextest.toml
Normal file
113
.config/nextest.toml
Normal file
@@ -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/<profile-name>.
|
||||||
|
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 <https://nexte.st/book/slow-tests> 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 <https://nexte.st/book/leaky-tests> for more information.
|
||||||
|
leak-timeout = "100ms"
|
||||||
|
|
||||||
|
[profile.default.junit]
|
||||||
|
# Output a JUnit report into the given file inside 'store.dir/<profile-name>'.
|
||||||
|
# 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 <system-out> and <system-err> elements of the <testcase> 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 <system-out> and <system-err> elements of the <testcase> element.
|
||||||
|
#
|
||||||
|
# Note that if a description can be extracted from the output, it is always stored in the
|
||||||
|
# <description> 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
|
||||||
281
.github/workflows/test-suite.yml
vendored
281
.github/workflows/test-suite.yml
vendored
@@ -18,14 +18,14 @@ env:
|
|||||||
# Deny warnings in CI
|
# Deny warnings in CI
|
||||||
# Disable debug info (see https://github.com/sigp/lighthouse/issues/4005)
|
# Disable debug info (see https://github.com/sigp/lighthouse/issues/4005)
|
||||||
RUSTFLAGS: "-D warnings -C debuginfo=0"
|
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.
|
# Prevent Github API rate limiting.
|
||||||
LIGHTHOUSE_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
LIGHTHOUSE_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
# Enable self-hosted runners for the sigp repo only.
|
# Enable self-hosted runners for the sigp repo only.
|
||||||
SELF_HOSTED_RUNNERS: ${{ github.repository == 'sigp/lighthouse' }}
|
SELF_HOSTED_RUNNERS: ${{ github.repository == 'sigp/lighthouse' }}
|
||||||
# Self-hosted runners need to reference a different host for `./watch` tests.
|
# Self-hosted runners need to reference a different host for `./watch` tests.
|
||||||
WATCH_HOST: ${{ github.repository == 'sigp/lighthouse' && 'host.docker.internal' || 'localhost' }}
|
WATCH_HOST: ${{ github.repository == 'sigp/lighthouse' && 'host.docker.internal' || 'localhost' }}
|
||||||
|
# Disable incremental compilation
|
||||||
|
CARGO_INCREMENTAL: 0
|
||||||
jobs:
|
jobs:
|
||||||
target-branch-check:
|
target-branch-check:
|
||||||
name: target-branch-check
|
name: target-branch-check
|
||||||
@@ -34,145 +34,176 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Check that the pull request is not targeting the stable branch
|
- name: Check that the pull request is not targeting the stable branch
|
||||||
run: test ${{ github.base_ref }} != "stable"
|
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:
|
release-tests-ubuntu:
|
||||||
name: release-tests-ubuntu
|
name: release-tests-ubuntu
|
||||||
# Use self-hosted runners only on the sigp repo.
|
# Use self-hosted runners only on the sigp repo.
|
||||||
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }}
|
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }}
|
||||||
needs: cargo-fmt
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Get latest version of stable Rust
|
- name: Get latest version of stable Rust
|
||||||
if: env.SELF_HOSTED_RUNNERS == false
|
if: env.SELF_HOSTED_RUNNERS == 'false'
|
||||||
run: rustup update stable
|
uses: moonrepo/setup-rust@v1
|
||||||
|
with:
|
||||||
|
channel: stable
|
||||||
|
cache-target: release
|
||||||
|
bins: cargo-nextest
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- name: Install Foundry (anvil)
|
- name: Install Foundry (anvil)
|
||||||
|
if: env.SELF_HOSTED_RUNNERS == 'false'
|
||||||
uses: foundry-rs/foundry-toolchain@v1
|
uses: foundry-rs/foundry-toolchain@v1
|
||||||
with:
|
with:
|
||||||
version: nightly-ca67d15f4abd46394b324c50e21e66f306a1162d
|
version: nightly-ca67d15f4abd46394b324c50e21e66f306a1162d
|
||||||
- name: Run tests in release
|
- 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:
|
release-tests-windows:
|
||||||
name: release-tests-windows
|
name: release-tests-windows
|
||||||
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "windows", "CI"]') || 'windows-2019' }}
|
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "windows", "CI"]') || 'windows-2019' }}
|
||||||
needs: cargo-fmt
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Get latest version of stable Rust
|
- name: Get latest version of stable Rust
|
||||||
if: env.SELF_HOSTED_RUNNERS == false
|
if: env.SELF_HOSTED_RUNNERS == 'false'
|
||||||
run: rustup update stable
|
uses: moonrepo/setup-rust@v1
|
||||||
|
with:
|
||||||
|
channel: stable
|
||||||
|
cache-target: release
|
||||||
|
bins: cargo-nextest
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- name: Install Foundry (anvil)
|
- name: Install Foundry (anvil)
|
||||||
|
if: env.SELF_HOSTED_RUNNERS == 'false'
|
||||||
uses: foundry-rs/foundry-toolchain@v1
|
uses: foundry-rs/foundry-toolchain@v1
|
||||||
with:
|
with:
|
||||||
version: nightly-ca67d15f4abd46394b324c50e21e66f306a1162d
|
version: nightly-ca67d15f4abd46394b324c50e21e66f306a1162d
|
||||||
- name: Install make
|
- name: Install make
|
||||||
|
if: env.SELF_HOSTED_RUNNERS == 'false'
|
||||||
run: choco install -y make
|
run: choco install -y make
|
||||||
- uses: KyleMayes/install-llvm-action@v1
|
# - uses: KyleMayes/install-llvm-action@v1
|
||||||
if: env.SELF_HOSTED_RUNNERS == false
|
# if: env.SELF_HOSTED_RUNNERS == 'false'
|
||||||
with:
|
# with:
|
||||||
version: "15.0"
|
# version: "15.0"
|
||||||
directory: ${{ runner.temp }}/llvm
|
# directory: ${{ runner.temp }}/llvm
|
||||||
- name: Set LIBCLANG_PATH
|
- name: Set LIBCLANG_PATH
|
||||||
run: echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV
|
run: echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV
|
||||||
- name: Run tests in release
|
- 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:
|
beacon-chain-tests:
|
||||||
name: beacon-chain-tests
|
name: beacon-chain-tests
|
||||||
# Use self-hosted runners only on the sigp repo.
|
# Use self-hosted runners only on the sigp repo.
|
||||||
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }}
|
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }}
|
||||||
needs: cargo-fmt
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Get latest version of stable Rust
|
- name: Get latest version of stable Rust
|
||||||
if: env.SELF_HOSTED_RUNNERS == false
|
if: env.SELF_HOSTED_RUNNERS == 'false'
|
||||||
run: rustup update stable
|
uses: moonrepo/setup-rust@v1
|
||||||
|
with:
|
||||||
|
channel: stable
|
||||||
|
cache-target: release
|
||||||
|
bins: cargo-nextest
|
||||||
- name: Run beacon_chain tests for all known forks
|
- name: Run beacon_chain tests for all known forks
|
||||||
run: make test-beacon-chain
|
run: make test-beacon-chain
|
||||||
|
- name: Show cache stats
|
||||||
|
if: env.SELF_HOSTED_RUNNERS == 'true'
|
||||||
|
run: sccache --show-stats
|
||||||
op-pool-tests:
|
op-pool-tests:
|
||||||
name: op-pool-tests
|
name: op-pool-tests
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: cargo-fmt
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Get latest version of stable Rust
|
- 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
|
- name: Run operation_pool tests for all known forks
|
||||||
run: make test-op-pool
|
run: make test-op-pool
|
||||||
slasher-tests:
|
slasher-tests:
|
||||||
name: slasher-tests
|
name: slasher-tests
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: cargo-fmt
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Get latest version of stable Rust
|
- 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
|
- name: Run slasher tests for all supported backends
|
||||||
run: make test-slasher
|
run: make test-slasher
|
||||||
debug-tests-ubuntu:
|
debug-tests-ubuntu:
|
||||||
name: debug-tests-ubuntu
|
name: debug-tests-ubuntu
|
||||||
# Use self-hosted runners only on the sigp repo.
|
# Use self-hosted runners only on the sigp repo.
|
||||||
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }}
|
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }}
|
||||||
needs: cargo-fmt
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Get latest version of stable Rust
|
- name: Get latest version of stable Rust
|
||||||
if: env.SELF_HOSTED_RUNNERS == false
|
if: env.SELF_HOSTED_RUNNERS == 'false'
|
||||||
run: rustup update stable
|
uses: moonrepo/setup-rust@v1
|
||||||
|
with:
|
||||||
|
channel: stable
|
||||||
|
bins: cargo-nextest
|
||||||
- name: Install Foundry (anvil)
|
- name: Install Foundry (anvil)
|
||||||
|
if: env.SELF_HOSTED_RUNNERS == 'false'
|
||||||
uses: foundry-rs/foundry-toolchain@v1
|
uses: foundry-rs/foundry-toolchain@v1
|
||||||
with:
|
with:
|
||||||
version: nightly-ca67d15f4abd46394b324c50e21e66f306a1162d
|
version: nightly-ca67d15f4abd46394b324c50e21e66f306a1162d
|
||||||
- name: Run tests in debug
|
- 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:
|
state-transition-vectors-ubuntu:
|
||||||
name: state-transition-vectors-ubuntu
|
name: state-transition-vectors-ubuntu
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: cargo-fmt
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Get latest version of stable Rust
|
- 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.
|
- name: Run state_transition_vectors in release.
|
||||||
run: make run-state-transition-tests
|
run: make run-state-transition-tests
|
||||||
ef-tests-ubuntu:
|
ef-tests-ubuntu:
|
||||||
name: ef-tests-ubuntu
|
name: ef-tests-ubuntu
|
||||||
# Use self-hosted runners only on the sigp repo.
|
# Use self-hosted runners only on the sigp repo.
|
||||||
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "small"]') || 'ubuntu-latest' }}
|
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "small"]') || 'ubuntu-latest' }}
|
||||||
needs: cargo-fmt
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Get latest version of stable Rust
|
- name: Get latest version of stable Rust
|
||||||
if: env.SELF_HOSTED_RUNNERS == false
|
if: env.SELF_HOSTED_RUNNERS == 'false'
|
||||||
run: rustup update stable
|
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
|
- 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:
|
dockerfile-ubuntu:
|
||||||
name: dockerfile-ubuntu
|
name: dockerfile-ubuntu
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: cargo-fmt
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Get latest version of stable Rust
|
|
||||||
run: rustup update stable
|
|
||||||
- name: Build the root Dockerfile
|
- name: Build the root Dockerfile
|
||||||
run: docker build --build-arg FEATURES=portable -t lighthouse:local .
|
run: docker build --build-arg FEATURES=portable -t lighthouse:local .
|
||||||
- name: Test the built image
|
- name: Test the built image
|
||||||
@@ -180,11 +211,13 @@ jobs:
|
|||||||
eth1-simulator-ubuntu:
|
eth1-simulator-ubuntu:
|
||||||
name: eth1-simulator-ubuntu
|
name: eth1-simulator-ubuntu
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: cargo-fmt
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Get latest version of stable Rust
|
- 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)
|
- name: Install Foundry (anvil)
|
||||||
uses: foundry-rs/foundry-toolchain@v1
|
uses: foundry-rs/foundry-toolchain@v1
|
||||||
with:
|
with:
|
||||||
@@ -194,11 +227,13 @@ jobs:
|
|||||||
merge-transition-ubuntu:
|
merge-transition-ubuntu:
|
||||||
name: merge-transition-ubuntu
|
name: merge-transition-ubuntu
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: cargo-fmt
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Get latest version of stable Rust
|
- 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)
|
- name: Install Foundry (anvil)
|
||||||
uses: foundry-rs/foundry-toolchain@v1
|
uses: foundry-rs/foundry-toolchain@v1
|
||||||
with:
|
with:
|
||||||
@@ -208,21 +243,25 @@ jobs:
|
|||||||
no-eth1-simulator-ubuntu:
|
no-eth1-simulator-ubuntu:
|
||||||
name: no-eth1-simulator-ubuntu
|
name: no-eth1-simulator-ubuntu
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: cargo-fmt
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Get latest version of stable Rust
|
- 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
|
- name: Run the beacon chain sim without an eth1 connection
|
||||||
run: cargo run --release --bin simulator no-eth1-sim
|
run: cargo run --release --bin simulator no-eth1-sim
|
||||||
syncing-simulator-ubuntu:
|
syncing-simulator-ubuntu:
|
||||||
name: syncing-simulator-ubuntu
|
name: syncing-simulator-ubuntu
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: cargo-fmt
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Get latest version of stable Rust
|
- 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)
|
- name: Install Foundry (anvil)
|
||||||
uses: foundry-rs/foundry-toolchain@v1
|
uses: foundry-rs/foundry-toolchain@v1
|
||||||
with:
|
with:
|
||||||
@@ -231,21 +270,27 @@ jobs:
|
|||||||
run: cargo run --release --bin simulator syncing-sim
|
run: cargo run --release --bin simulator syncing-sim
|
||||||
doppelganger-protection-test:
|
doppelganger-protection-test:
|
||||||
name: doppelganger-protection-test
|
name: doppelganger-protection-test
|
||||||
runs-on: ubuntu-latest
|
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "small"]') || 'ubuntu-latest' }}
|
||||||
needs: cargo-fmt
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Get latest version of stable Rust
|
- 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
|
- name: Install geth
|
||||||
|
if: env.SELF_HOSTED_RUNNERS == 'false'
|
||||||
run: |
|
run: |
|
||||||
sudo add-apt-repository -y ppa:ethereum/ethereum
|
sudo add-apt-repository -y ppa:ethereum/ethereum
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install ethereum
|
sudo apt-get install ethereum
|
||||||
- name: Install lighthouse and lcli
|
- name: Install lighthouse
|
||||||
run: |
|
run: |
|
||||||
make
|
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
|
- name: Run the doppelganger protection failure test script
|
||||||
run: |
|
run: |
|
||||||
cd scripts/tests
|
cd scripts/tests
|
||||||
@@ -257,89 +302,71 @@ jobs:
|
|||||||
execution-engine-integration-ubuntu:
|
execution-engine-integration-ubuntu:
|
||||||
name: execution-engine-integration-ubuntu
|
name: execution-engine-integration-ubuntu
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: cargo-fmt
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- 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
|
- 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
|
- name: Run exec engine integration tests in release
|
||||||
run: make test-exec-engine
|
run: make test-exec-engine
|
||||||
check-benchmarks:
|
check-code:
|
||||||
name: check-benchmarks
|
name: check-code
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: cargo-fmt
|
env:
|
||||||
|
CARGO_INCREMENTAL: 1
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Get latest version of stable Rust
|
- name: Get latest version of stable Rust
|
||||||
run: rustup update stable
|
uses: moonrepo/setup-rust@v1
|
||||||
- name: Typecheck benchmark code without running it
|
with:
|
||||||
run: make check-benches
|
channel: stable
|
||||||
clippy:
|
cache-target: release
|
||||||
name: clippy
|
components: rustfmt,clippy
|
||||||
runs-on: ubuntu-latest
|
bins: cargo-audit
|
||||||
needs: cargo-fmt
|
- name: Check formatting with cargo fmt
|
||||||
steps:
|
run: make cargo-fmt
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Get latest version of stable Rust
|
|
||||||
run: rustup update stable
|
|
||||||
- name: Lint code for quality and style with Clippy
|
- name: Lint code for quality and style with Clippy
|
||||||
run: make lint
|
run: make lint
|
||||||
- name: Certify Cargo.lock freshness
|
- name: Certify Cargo.lock freshness
|
||||||
run: git diff --exit-code Cargo.lock
|
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:
|
check-msrv:
|
||||||
name: check-msrv
|
name: check-msrv
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [cargo-fmt, extract-msrv]
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Install Rust @ MSRV (${{ needs.extract-msrv.outputs.MSRV }})
|
- name: Install Rust at Minimum Supported Rust Version (MSRV)
|
||||||
run: rustup override set ${{ needs.extract-msrv.outputs.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
|
- name: Run cargo check
|
||||||
run: cargo check --workspace
|
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:
|
cargo-udeps:
|
||||||
name: cargo-udeps
|
name: cargo-udeps
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: cargo-fmt
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Install Rust (${{ env.PINNED_NIGHTLY }})
|
- name: Get latest version of nightly Rust
|
||||||
run: rustup toolchain install $PINNED_NIGHTLY
|
uses: moonrepo/setup-rust@v1
|
||||||
- name: Install cargo-udeps
|
with:
|
||||||
run: cargo install cargo-udeps --locked --force
|
channel: nightly
|
||||||
|
bins: cargo-udeps
|
||||||
|
cache: false
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- name: Create Cargo config dir
|
- name: Create Cargo config dir
|
||||||
run: mkdir -p .cargo
|
run: mkdir -p .cargo
|
||||||
- name: Install custom Cargo config
|
- name: Install custom Cargo config
|
||||||
|
|||||||
254
Cargo.lock
generated
254
Cargo.lock
generated
@@ -153,9 +153,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aho-corasick"
|
name = "aho-corasick"
|
||||||
version = "1.1.0"
|
version = "1.1.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0f2135563fb5c609d2b2b87c1e8ce7bc41b0b45430fa9661f457981503dd5bf0"
|
checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"memchr",
|
"memchr",
|
||||||
]
|
]
|
||||||
@@ -225,15 +225,6 @@ version = "1.6.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
|
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]]
|
[[package]]
|
||||||
name = "arrayref"
|
name = "arrayref"
|
||||||
version = "0.3.7"
|
version = "0.3.7"
|
||||||
@@ -578,7 +569,7 @@ dependencies = [
|
|||||||
"slog",
|
"slog",
|
||||||
"sloggers",
|
"sloggers",
|
||||||
"slot_clock",
|
"slot_clock",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"ssz_types",
|
"ssz_types",
|
||||||
"state_processing",
|
"state_processing",
|
||||||
"store",
|
"store",
|
||||||
@@ -903,7 +894,7 @@ dependencies = [
|
|||||||
"ethereum_ssz_derive",
|
"ethereum_ssz_derive",
|
||||||
"quickcheck",
|
"quickcheck",
|
||||||
"quickcheck_macros",
|
"quickcheck_macros",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"ssz_types",
|
"ssz_types",
|
||||||
"tree_hash",
|
"tree_hash",
|
||||||
]
|
]
|
||||||
@@ -1138,9 +1129,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "concurrent-queue"
|
name = "concurrent-queue"
|
||||||
version = "2.2.0"
|
version = "2.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c"
|
checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"crossbeam-utils",
|
"crossbeam-utils",
|
||||||
]
|
]
|
||||||
@@ -1400,9 +1391,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "curve25519-dalek"
|
name = "curve25519-dalek"
|
||||||
version = "4.1.0"
|
version = "4.1.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "622178105f911d937a42cdb140730ba4a3ed2becd8ae6ce39c7d28b5d75d4588"
|
checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"cpufeatures",
|
"cpufeatures",
|
||||||
@@ -1538,7 +1529,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "e4355c25cbf99edcb6b4a0e906f6bdc6956eda149e84455bea49696429b2f8e8"
|
checksum = "e4355c25cbf99edcb6b4a0e906f6bdc6956eda149e84455bea49696429b2f8e8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures",
|
"futures",
|
||||||
"tokio-util 0.7.8",
|
"tokio-util 0.7.9",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1633,9 +1624,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "diesel"
|
name = "diesel"
|
||||||
version = "2.1.1"
|
version = "2.1.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d98235fdc2f355d330a8244184ab6b4b33c28679c0b4158f63138e51d6cf7e88"
|
checksum = "53c8a2cb22327206568569e5a45bb5a2c946455efdd76e24d15b7e82171af95e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.4.0",
|
"bitflags 2.4.0",
|
||||||
"byteorder",
|
"byteorder",
|
||||||
@@ -1647,9 +1638,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "diesel_derives"
|
name = "diesel_derives"
|
||||||
version = "2.1.1"
|
version = "2.1.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e054665eaf6d97d1e7125512bb2d35d07c73ac86cc6920174cb42d1ab697a554"
|
checksum = "ef8337737574f55a468005a83499da720f20c65586241ffea339db9ecdfd2b44"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"diesel_table_macro_syntax",
|
"diesel_table_macro_syntax",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
@@ -1758,7 +1749,7 @@ dependencies = [
|
|||||||
"aes-gcm",
|
"aes-gcm",
|
||||||
"arrayvec",
|
"arrayvec",
|
||||||
"delay_map",
|
"delay_map",
|
||||||
"enr 0.9.0",
|
"enr 0.9.1",
|
||||||
"fnv",
|
"fnv",
|
||||||
"futures",
|
"futures",
|
||||||
"hashlink 0.7.0",
|
"hashlink 0.7.0",
|
||||||
@@ -1772,7 +1763,7 @@ dependencies = [
|
|||||||
"parking_lot 0.11.2",
|
"parking_lot 0.11.2",
|
||||||
"rand",
|
"rand",
|
||||||
"rlp",
|
"rlp",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"socket2 0.4.9",
|
"socket2 0.4.9",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tracing",
|
"tracing",
|
||||||
@@ -1846,7 +1837,7 @@ version = "2.0.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980"
|
checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"curve25519-dalek 4.1.0",
|
"curve25519-dalek 4.1.1",
|
||||||
"ed25519",
|
"ed25519",
|
||||||
"rand_core 0.6.4",
|
"rand_core 0.6.4",
|
||||||
"serde",
|
"serde",
|
||||||
@@ -1961,9 +1952,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "enr"
|
name = "enr"
|
||||||
version = "0.9.0"
|
version = "0.9.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0be7b2ac146c1f99fe245c02d16af0696450d8e06c135db75e10eeb9e642c20d"
|
checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.21.4",
|
"base64 0.21.4",
|
||||||
"bytes",
|
"bytes",
|
||||||
@@ -1974,7 +1965,6 @@ dependencies = [
|
|||||||
"rand",
|
"rand",
|
||||||
"rlp",
|
"rlp",
|
||||||
"serde",
|
"serde",
|
||||||
"serde-hex",
|
|
||||||
"sha3 0.10.8",
|
"sha3 0.10.8",
|
||||||
"zeroize",
|
"zeroize",
|
||||||
]
|
]
|
||||||
@@ -2401,7 +2391,7 @@ checksum = "e61ffea29f26e8249d35128a82ec8d3bd4fbc80179ea5f5e5e3daafef6a80fcb"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"ethereum-types 0.14.1",
|
"ethereum-types 0.14.1",
|
||||||
"itertools",
|
"itertools",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -2665,9 +2655,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fastrand"
|
name = "fastrand"
|
||||||
version = "2.0.0"
|
version = "2.0.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
|
checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ff"
|
name = "ff"
|
||||||
@@ -3106,7 +3096,7 @@ dependencies = [
|
|||||||
"indexmap 1.9.3",
|
"indexmap 1.9.3",
|
||||||
"slab",
|
"slab",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-util 0.7.8",
|
"tokio-util 0.7.9",
|
||||||
"tracing",
|
"tracing",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -3236,9 +3226,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hermit-abi"
|
name = "hermit-abi"
|
||||||
version = "0.3.2"
|
version = "0.3.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
|
checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hex"
|
name = "hex"
|
||||||
@@ -3711,7 +3701,7 @@ version = "1.0.11"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
|
checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"hermit-abi 0.3.2",
|
"hermit-abi 0.3.3",
|
||||||
"libc",
|
"libc",
|
||||||
"windows-sys 0.48.0",
|
"windows-sys 0.48.0",
|
||||||
]
|
]
|
||||||
@@ -4047,9 +4037,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libp2p-core"
|
name = "libp2p-core"
|
||||||
version = "0.40.0"
|
version = "0.40.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ef7dd7b09e71aac9271c60031d0e558966cdb3253ba0308ab369bb2de80630d0"
|
checksum = "dd44289ab25e4c9230d9246c475a22241e301b23e8f4061d3bdef304a1a99713"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"either",
|
"either",
|
||||||
"fnv",
|
"fnv",
|
||||||
@@ -4067,7 +4057,7 @@ dependencies = [
|
|||||||
"quick-protobuf",
|
"quick-protobuf",
|
||||||
"rand",
|
"rand",
|
||||||
"rw-stream-sink",
|
"rw-stream-sink",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"unsigned-varint 0.7.2",
|
"unsigned-varint 0.7.2",
|
||||||
"void",
|
"void",
|
||||||
@@ -4084,7 +4074,7 @@ dependencies = [
|
|||||||
"libp2p-identity",
|
"libp2p-identity",
|
||||||
"log",
|
"log",
|
||||||
"parking_lot 0.12.1",
|
"parking_lot 0.12.1",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"trust-dns-resolver",
|
"trust-dns-resolver",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -4115,7 +4105,7 @@ dependencies = [
|
|||||||
"rand",
|
"rand",
|
||||||
"regex",
|
"regex",
|
||||||
"sha2 0.10.7",
|
"sha2 0.10.7",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"unsigned-varint 0.7.2",
|
"unsigned-varint 0.7.2",
|
||||||
"void",
|
"void",
|
||||||
]
|
]
|
||||||
@@ -4137,7 +4127,7 @@ dependencies = [
|
|||||||
"lru 0.10.1",
|
"lru 0.10.1",
|
||||||
"quick-protobuf",
|
"quick-protobuf",
|
||||||
"quick-protobuf-codec",
|
"quick-protobuf-codec",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"void",
|
"void",
|
||||||
]
|
]
|
||||||
@@ -4178,7 +4168,7 @@ dependencies = [
|
|||||||
"libp2p-swarm",
|
"libp2p-swarm",
|
||||||
"log",
|
"log",
|
||||||
"rand",
|
"rand",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"socket2 0.5.4",
|
"socket2 0.5.4",
|
||||||
"tokio",
|
"tokio",
|
||||||
"trust-dns-proto",
|
"trust-dns-proto",
|
||||||
@@ -4216,7 +4206,7 @@ dependencies = [
|
|||||||
"nohash-hasher",
|
"nohash-hasher",
|
||||||
"parking_lot 0.12.1",
|
"parking_lot 0.12.1",
|
||||||
"rand",
|
"rand",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"unsigned-varint 0.7.2",
|
"unsigned-varint 0.7.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -4227,7 +4217,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "71ce70757f2c0d82e9a3ef738fb10ea0723d16cec37f078f719e2c247704c1bb"
|
checksum = "71ce70757f2c0d82e9a3ef738fb10ea0723d16cec37f078f719e2c247704c1bb"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes",
|
"bytes",
|
||||||
"curve25519-dalek 4.1.0",
|
"curve25519-dalek 4.1.1",
|
||||||
"futures",
|
"futures",
|
||||||
"libp2p-core",
|
"libp2p-core",
|
||||||
"libp2p-identity",
|
"libp2p-identity",
|
||||||
@@ -4286,9 +4276,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libp2p-swarm"
|
name = "libp2p-swarm"
|
||||||
version = "0.43.3"
|
version = "0.43.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "28016944851bd73526d3c146aabf0fa9bbe27c558f080f9e5447da3a1772c01a"
|
checksum = "f0cf749abdc5ca1dce6296dc8ea0f012464dfcfd3ddd67ffc0cabd8241c4e1da"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"either",
|
"either",
|
||||||
"fnv",
|
"fnv",
|
||||||
@@ -4302,7 +4292,7 @@ dependencies = [
|
|||||||
"multistream-select",
|
"multistream-select",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"rand",
|
"rand",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"tokio",
|
"tokio",
|
||||||
"void",
|
"void",
|
||||||
]
|
]
|
||||||
@@ -4525,7 +4515,7 @@ dependencies = [
|
|||||||
"slog",
|
"slog",
|
||||||
"slog-async",
|
"slog-async",
|
||||||
"slog-term",
|
"slog-term",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"snap",
|
"snap",
|
||||||
"ssz_types",
|
"ssz_types",
|
||||||
"strum",
|
"strum",
|
||||||
@@ -4672,6 +4662,7 @@ name = "lru_cache"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"fnv",
|
"fnv",
|
||||||
|
"mock_instant",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -4724,22 +4715,17 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "matchit"
|
name = "matchit"
|
||||||
version = "0.7.2"
|
version = "0.7.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ed1202b2a6f884ae56f04cff409ab315c5ce26b5e58d7412e484f01fd52f52ef"
|
checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "maybe-uninit"
|
|
||||||
version = "2.0.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "md-5"
|
name = "md-5"
|
||||||
version = "0.10.5"
|
version = "0.10.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca"
|
checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
"digest 0.10.7",
|
"digest 0.10.7",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -4815,7 +4801,7 @@ dependencies = [
|
|||||||
"itertools",
|
"itertools",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"syn 1.0.109",
|
"syn 1.0.109",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -4915,6 +4901,12 @@ dependencies = [
|
|||||||
"windows-sys 0.48.0",
|
"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]]
|
[[package]]
|
||||||
name = "monitoring_api"
|
name = "monitoring_api"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
@@ -5036,7 +5028,7 @@ dependencies = [
|
|||||||
"futures",
|
"futures",
|
||||||
"log",
|
"log",
|
||||||
"pin-project",
|
"pin-project",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"unsigned-varint 0.7.2",
|
"unsigned-varint 0.7.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -5161,7 +5153,7 @@ dependencies = [
|
|||||||
"slog-term",
|
"slog-term",
|
||||||
"sloggers",
|
"sloggers",
|
||||||
"slot_clock",
|
"slot_clock",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"ssz_types",
|
"ssz_types",
|
||||||
"store",
|
"store",
|
||||||
"strum",
|
"strum",
|
||||||
@@ -5223,12 +5215,6 @@ dependencies = [
|
|||||||
"validator_dir",
|
"validator_dir",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "nodrop"
|
|
||||||
version = "0.1.14"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nohash-hasher"
|
name = "nohash-hasher"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
@@ -5289,7 +5275,7 @@ dependencies = [
|
|||||||
"num-traits",
|
"num-traits",
|
||||||
"rand",
|
"rand",
|
||||||
"serde",
|
"serde",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"zeroize",
|
"zeroize",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -5329,7 +5315,7 @@ version = "1.16.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
|
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"hermit-abi 0.3.2",
|
"hermit-abi 0.3.3",
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -5444,9 +5430,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "openssl-src"
|
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"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cd2c101a165fff9935e34def4669595ab1c7847943c42be86e21503e482be107"
|
checksum = "559068e4c12950d7dcaa1857a61725c0d38d4fc03ff8e070ab31a75d6e316491"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
]
|
]
|
||||||
@@ -5560,9 +5546,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "parking"
|
name = "parking"
|
||||||
version = "2.1.0"
|
version = "2.1.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e"
|
checksum = "e52c774a4c39359c1d1c52e43f73dd91a75a614652c825408eec30c95a9b2067"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "parking_lot"
|
name = "parking_lot"
|
||||||
@@ -5595,7 +5581,7 @@ dependencies = [
|
|||||||
"instant",
|
"instant",
|
||||||
"libc",
|
"libc",
|
||||||
"redox_syscall 0.2.16",
|
"redox_syscall 0.2.16",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -5608,7 +5594,7 @@ dependencies = [
|
|||||||
"cfg-if",
|
"cfg-if",
|
||||||
"libc",
|
"libc",
|
||||||
"redox_syscall 0.3.5",
|
"redox_syscall 0.3.5",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"windows-targets 0.48.5",
|
"windows-targets 0.48.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -6275,9 +6261,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rayon"
|
name = "rayon"
|
||||||
version = "1.7.0"
|
version = "1.8.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
|
checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"either",
|
"either",
|
||||||
"rayon-core",
|
"rayon-core",
|
||||||
@@ -6285,14 +6271,12 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rayon-core"
|
name = "rayon-core"
|
||||||
version = "1.11.0"
|
version = "1.12.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
|
checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"crossbeam-channel",
|
|
||||||
"crossbeam-deque",
|
"crossbeam-deque",
|
||||||
"crossbeam-utils",
|
"crossbeam-utils",
|
||||||
"num_cpus",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -6413,7 +6397,7 @@ dependencies = [
|
|||||||
"tokio",
|
"tokio",
|
||||||
"tokio-native-tls",
|
"tokio-native-tls",
|
||||||
"tokio-rustls",
|
"tokio-rustls",
|
||||||
"tokio-util 0.7.8",
|
"tokio-util 0.7.9",
|
||||||
"tower-service",
|
"tower-service",
|
||||||
"url",
|
"url",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
@@ -6533,7 +6517,7 @@ dependencies = [
|
|||||||
"fallible-streaming-iterator",
|
"fallible-streaming-iterator",
|
||||||
"hashlink 0.8.4",
|
"hashlink 0.8.4",
|
||||||
"libsqlite3-sys",
|
"libsqlite3-sys",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -6602,9 +6586,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustix"
|
name = "rustix"
|
||||||
version = "0.38.13"
|
version = "0.38.14"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662"
|
checksum = "747c788e9ce8e92b12cd485c49ddf90723550b654b32508f979b71a7b1ecda4f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.4.0",
|
"bitflags 2.4.0",
|
||||||
"errno",
|
"errno",
|
||||||
@@ -6636,9 +6620,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustls-webpki"
|
name = "rustls-webpki"
|
||||||
version = "0.101.5"
|
version = "0.101.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "45a27e3b59326c16e23d30aeb7a36a24cc0d29e71d68ff611cdfb4a01d013bed"
|
checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ring",
|
"ring",
|
||||||
"untrusted",
|
"untrusted",
|
||||||
@@ -6818,9 +6802,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "semver"
|
name = "semver"
|
||||||
version = "1.0.18"
|
version = "1.0.19"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
|
checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
@@ -6848,17 +6832,6 @@ dependencies = [
|
|||||||
"serde_derive",
|
"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]]
|
[[package]]
|
||||||
name = "serde_array_query"
|
name = "serde_array_query"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
@@ -6979,9 +6952,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sha1"
|
name = "sha1"
|
||||||
version = "0.10.5"
|
version = "0.10.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
|
checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"cpufeatures",
|
"cpufeatures",
|
||||||
@@ -7303,18 +7276,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "smallvec"
|
name = "smallvec"
|
||||||
version = "0.6.14"
|
version = "1.11.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0"
|
checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
|
||||||
dependencies = [
|
|
||||||
"maybe-uninit",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "smallvec"
|
|
||||||
version = "1.11.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "snap"
|
name = "snap"
|
||||||
@@ -7331,7 +7295,7 @@ dependencies = [
|
|||||||
"aes-gcm",
|
"aes-gcm",
|
||||||
"blake2",
|
"blake2",
|
||||||
"chacha20poly1305",
|
"chacha20poly1305",
|
||||||
"curve25519-dalek 4.1.0",
|
"curve25519-dalek 4.1.1",
|
||||||
"rand_core 0.6.4",
|
"rand_core 0.6.4",
|
||||||
"ring",
|
"ring",
|
||||||
"rustc_version",
|
"rustc_version",
|
||||||
@@ -7423,7 +7387,7 @@ dependencies = [
|
|||||||
"itertools",
|
"itertools",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_derive",
|
"serde_derive",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"tree_hash",
|
"tree_hash",
|
||||||
"typenum",
|
"typenum",
|
||||||
]
|
]
|
||||||
@@ -7448,7 +7412,7 @@ dependencies = [
|
|||||||
"merkle_proof",
|
"merkle_proof",
|
||||||
"rayon",
|
"rayon",
|
||||||
"safe_arith",
|
"safe_arith",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"ssz_types",
|
"ssz_types",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tree_hash",
|
"tree_hash",
|
||||||
@@ -7559,7 +7523,7 @@ dependencies = [
|
|||||||
"itertools",
|
"itertools",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"syn 1.0.109",
|
"syn 1.0.109",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -7706,9 +7670,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
|
checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"fastrand 2.0.0",
|
"fastrand 2.0.1",
|
||||||
"redox_syscall 0.3.5",
|
"redox_syscall 0.3.5",
|
||||||
"rustix 0.38.13",
|
"rustix 0.38.14",
|
||||||
"windows-sys 0.48.0",
|
"windows-sys 0.48.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -7725,9 +7689,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "termcolor"
|
name = "termcolor"
|
||||||
version = "1.2.0"
|
version = "1.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
|
checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"winapi-util",
|
"winapi-util",
|
||||||
]
|
]
|
||||||
@@ -7814,9 +7778,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "time"
|
name = "time"
|
||||||
version = "0.3.28"
|
version = "0.3.29"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
|
checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"deranged",
|
"deranged",
|
||||||
"itoa",
|
"itoa",
|
||||||
@@ -7829,15 +7793,15 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "time-core"
|
name = "time-core"
|
||||||
version = "0.1.1"
|
version = "0.1.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
|
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "time-macros"
|
name = "time-macros"
|
||||||
version = "0.2.14"
|
version = "0.2.15"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
|
checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"time-core",
|
"time-core",
|
||||||
]
|
]
|
||||||
@@ -7978,7 +7942,7 @@ dependencies = [
|
|||||||
"rand",
|
"rand",
|
||||||
"socket2 0.5.4",
|
"socket2 0.5.4",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-util 0.7.8",
|
"tokio-util 0.7.9",
|
||||||
"whoami",
|
"whoami",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -8001,7 +7965,7 @@ dependencies = [
|
|||||||
"futures-core",
|
"futures-core",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-util 0.7.8",
|
"tokio-util 0.7.9",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -8022,9 +7986,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tokio-util"
|
name = "tokio-util"
|
||||||
version = "0.7.8"
|
version = "0.7.9"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
|
checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes",
|
"bytes",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
@@ -8172,7 +8136,7 @@ dependencies = [
|
|||||||
"once_cell",
|
"once_cell",
|
||||||
"regex",
|
"regex",
|
||||||
"sharded-slab",
|
"sharded-slab",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"thread_local",
|
"thread_local",
|
||||||
"tracing",
|
"tracing",
|
||||||
"tracing-core",
|
"tracing-core",
|
||||||
@@ -8206,7 +8170,7 @@ checksum = "5c998ac5fe2b07c025444bdd522e6258110b63861c6698eedc610c071980238d"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"ethereum-types 0.14.1",
|
"ethereum-types 0.14.1",
|
||||||
"ethereum_hashing",
|
"ethereum_hashing",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -8247,7 +8211,7 @@ dependencies = [
|
|||||||
"ipnet",
|
"ipnet",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"rand",
|
"rand",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"socket2 0.4.9",
|
"socket2 0.4.9",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"tinyvec",
|
"tinyvec",
|
||||||
@@ -8269,7 +8233,7 @@ dependencies = [
|
|||||||
"lru-cache",
|
"lru-cache",
|
||||||
"parking_lot 0.12.1",
|
"parking_lot 0.12.1",
|
||||||
"resolv-conf",
|
"resolv-conf",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tracing",
|
"tracing",
|
||||||
@@ -8328,7 +8292,7 @@ dependencies = [
|
|||||||
"serde_with",
|
"serde_with",
|
||||||
"serde_yaml",
|
"serde_yaml",
|
||||||
"slog",
|
"slog",
|
||||||
"smallvec 1.11.0",
|
"smallvec",
|
||||||
"ssz_types",
|
"ssz_types",
|
||||||
"state_processing",
|
"state_processing",
|
||||||
"strum",
|
"strum",
|
||||||
@@ -8392,9 +8356,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-width"
|
name = "unicode-width"
|
||||||
version = "0.1.10"
|
version = "0.1.11"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
|
checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-xid"
|
name = "unicode-xid"
|
||||||
@@ -8599,9 +8563,9 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "waker-fn"
|
name = "waker-fn"
|
||||||
version = "1.1.0"
|
version = "1.1.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
|
checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "walkdir"
|
name = "walkdir"
|
||||||
@@ -8646,7 +8610,7 @@ dependencies = [
|
|||||||
"tokio",
|
"tokio",
|
||||||
"tokio-rustls",
|
"tokio-rustls",
|
||||||
"tokio-stream",
|
"tokio-stream",
|
||||||
"tokio-util 0.7.8",
|
"tokio-util 0.7.9",
|
||||||
"tower-service",
|
"tower-service",
|
||||||
"tracing",
|
"tracing",
|
||||||
]
|
]
|
||||||
@@ -8898,9 +8862,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "winapi-util"
|
name = "winapi-util"
|
||||||
version = "0.1.5"
|
version = "0.1.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
|
checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
@@ -9190,9 +9154,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "xml-rs"
|
name = "xml-rs"
|
||||||
version = "0.8.18"
|
version = "0.8.19"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bab77e97b50aee93da431f2cee7cd0f43b4d1da3c408042f2d7d164187774f0a"
|
checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "xmltree"
|
name = "xmltree"
|
||||||
|
|||||||
37
Makefile
37
Makefile
@@ -108,11 +108,21 @@ build-release-tarballs:
|
|||||||
test-release:
|
test-release:
|
||||||
cargo test --workspace --release --exclude ef_tests --exclude beacon_chain --exclude slasher
|
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
|
# Runs the full workspace tests in **debug**, without downloading any additional test
|
||||||
# vectors.
|
# vectors.
|
||||||
test-debug:
|
test-debug:
|
||||||
cargo test --workspace --exclude ef_tests --exclude beacon_chain
|
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).
|
# Runs cargo-fmt (linter).
|
||||||
cargo-fmt:
|
cargo-fmt:
|
||||||
cargo fmt --all -- --check
|
cargo fmt --all -- --check
|
||||||
@@ -129,25 +139,33 @@ run-ef-tests:
|
|||||||
cargo test --release -p ef_tests --features "ef_tests,$(EF_TEST_FEATURES),milagro"
|
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
|
./$(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.
|
# Run the tests in the `beacon_chain` crate for all known forks.
|
||||||
test-beacon-chain: $(patsubst %,test-beacon-chain-%,$(FORKS))
|
test-beacon-chain: $(patsubst %,test-beacon-chain-%,$(FORKS))
|
||||||
|
|
||||||
test-beacon-chain-%:
|
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.
|
# Run the tests in the `operation_pool` crate for all known forks.
|
||||||
test-op-pool: $(patsubst %,test-op-pool-%,$(FORKS))
|
test-op-pool: $(patsubst %,test-op-pool-%,$(FORKS))
|
||||||
|
|
||||||
test-op-pool-%:
|
test-op-pool-%:
|
||||||
env FORK_NAME=$* cargo test --release \
|
env FORK_NAME=$* cargo nextest run --release \
|
||||||
--features 'beacon_chain/fork_from_env'\
|
--features 'beacon_chain/fork_from_env'\
|
||||||
-p operation_pool
|
-p operation_pool
|
||||||
|
|
||||||
# Run the tests in the `slasher` crate for all supported database backends.
|
# Run the tests in the `slasher` crate for all supported database backends.
|
||||||
test-slasher:
|
test-slasher:
|
||||||
cargo test --release -p slasher --features lmdb
|
cargo nextest run --release -p slasher --features lmdb
|
||||||
cargo test --release -p slasher --no-default-features --features mdbx
|
cargo nextest run --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,mdbx # both backends enabled
|
||||||
|
|
||||||
# Runs only the tests/state_transition_vectors tests.
|
# Runs only the tests/state_transition_vectors tests.
|
||||||
run-state-transition-tests:
|
run-state-transition-tests:
|
||||||
@@ -156,6 +174,9 @@ run-state-transition-tests:
|
|||||||
# Downloads and runs the EF test vectors.
|
# Downloads and runs the EF test vectors.
|
||||||
test-ef: make-ef-tests run-ef-tests
|
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.
|
# Runs tests checking interop between Lighthouse and execution clients.
|
||||||
test-exec-engine:
|
test-exec-engine:
|
||||||
make -C $(EXECUTION_ENGINE_INTEGRATION) test
|
make -C $(EXECUTION_ENGINE_INTEGRATION) test
|
||||||
@@ -208,8 +229,12 @@ arbitrary-fuzz:
|
|||||||
cargo check -p slashing_protection --features 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)
|
# 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
|
cargo install --force cargo-audit
|
||||||
|
|
||||||
|
audit-CI:
|
||||||
cargo audit
|
cargo audit
|
||||||
|
|
||||||
# Runs `cargo vendor` to make sure dependencies can be vendored for packaging, reproducibility and archival purpose.
|
# Runs `cargo vendor` to make sure dependencies can be vendored for packaging, reproducibility and archival purpose.
|
||||||
|
|||||||
@@ -16,6 +16,11 @@ use std::sync::Arc;
|
|||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use types::{ForkContext, ForkName};
|
use types::{ForkContext, ForkName};
|
||||||
|
|
||||||
|
pub const DEFAULT_IPV4_ADDRESS: Ipv4Addr = Ipv4Addr::UNSPECIFIED;
|
||||||
|
pub const DEFAULT_TCP_PORT: u16 = 9000u16;
|
||||||
|
pub const DEFAULT_DISC_PORT: u16 = 9000u16;
|
||||||
|
pub const DEFAULT_QUIC_PORT: u16 = 9001u16;
|
||||||
|
|
||||||
/// The cache time is set to accommodate the circulation time of an attestation.
|
/// The cache time is set to accommodate the circulation time of an attestation.
|
||||||
///
|
///
|
||||||
/// The p2p spec declares that we accept attestations within the following range:
|
/// The p2p spec declares that we accept attestations within the following range:
|
||||||
@@ -304,10 +309,10 @@ impl Default for Config {
|
|||||||
.expect("The total rate limit has been specified"),
|
.expect("The total rate limit has been specified"),
|
||||||
);
|
);
|
||||||
let listen_addresses = ListenAddress::V4(ListenAddr {
|
let listen_addresses = ListenAddress::V4(ListenAddr {
|
||||||
addr: Ipv4Addr::UNSPECIFIED,
|
addr: DEFAULT_IPV4_ADDRESS,
|
||||||
disc_port: 9000,
|
disc_port: DEFAULT_DISC_PORT,
|
||||||
quic_port: 9001,
|
quic_port: DEFAULT_QUIC_PORT,
|
||||||
tcp_port: 9000,
|
tcp_port: DEFAULT_TCP_PORT,
|
||||||
});
|
});
|
||||||
|
|
||||||
let discv5_listen_config =
|
let discv5_listen_config =
|
||||||
|
|||||||
@@ -21,10 +21,11 @@ pub use libp2p::identity::{Keypair, PublicKey};
|
|||||||
use enr::{ATTESTATION_BITFIELD_ENR_KEY, ETH2_ENR_KEY, SYNC_COMMITTEE_BITFIELD_ENR_KEY};
|
use enr::{ATTESTATION_BITFIELD_ENR_KEY, ETH2_ENR_KEY, SYNC_COMMITTEE_BITFIELD_ENR_KEY};
|
||||||
use futures::prelude::*;
|
use futures::prelude::*;
|
||||||
use futures::stream::FuturesUnordered;
|
use futures::stream::FuturesUnordered;
|
||||||
|
use libp2p::multiaddr::Protocol;
|
||||||
use libp2p::swarm::behaviour::{DialFailure, FromSwarm};
|
use libp2p::swarm::behaviour::{DialFailure, FromSwarm};
|
||||||
use libp2p::swarm::THandlerInEvent;
|
use libp2p::swarm::THandlerInEvent;
|
||||||
pub use libp2p::{
|
pub use libp2p::{
|
||||||
core::{ConnectedPoint, Multiaddr},
|
core::{transport::ListenerId, ConnectedPoint, Multiaddr},
|
||||||
identity::PeerId,
|
identity::PeerId,
|
||||||
swarm::{
|
swarm::{
|
||||||
dummy::ConnectionHandler, ConnectionId, DialError, NetworkBehaviour, NotifyHandler,
|
dummy::ConnectionHandler, ConnectionId, DialError, NetworkBehaviour, NotifyHandler,
|
||||||
@@ -77,6 +78,19 @@ pub struct DiscoveredPeers {
|
|||||||
pub peers: HashMap<Enr, Option<Instant>>,
|
pub peers: HashMap<Enr, Option<Instant>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Specifies which port numbers should be modified after start of the discovery service
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct UpdatePorts {
|
||||||
|
/// TCP port associated wih IPv4 address (if present)
|
||||||
|
pub tcp4: bool,
|
||||||
|
/// TCP port associated wih IPv6 address (if present)
|
||||||
|
pub tcp6: bool,
|
||||||
|
/// QUIC port associated wih IPv4 address (if present)
|
||||||
|
pub quic4: bool,
|
||||||
|
/// QUIC port associated wih IPv6 address (if present)
|
||||||
|
pub quic6: bool,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clone, PartialEq)]
|
#[derive(Clone, PartialEq)]
|
||||||
struct SubnetQuery {
|
struct SubnetQuery {
|
||||||
subnet: Subnet,
|
subnet: Subnet,
|
||||||
@@ -177,12 +191,8 @@ pub struct Discovery<TSpec: EthSpec> {
|
|||||||
/// always false.
|
/// always false.
|
||||||
pub started: bool,
|
pub started: bool,
|
||||||
|
|
||||||
/// This keeps track of whether an external UDP port change should also indicate an internal
|
/// Specifies whether various port numbers should be updated after the discovery service has been started
|
||||||
/// TCP port change. As we cannot detect our external TCP port, we assume that the external UDP
|
update_ports: UpdatePorts,
|
||||||
/// port is also our external TCP port. This assumption only holds if the user has not
|
|
||||||
/// explicitly set their ENR TCP port via the CLI config. The first indicates tcp4 and the
|
|
||||||
/// second indicates tcp6.
|
|
||||||
update_tcp_port: (bool, bool),
|
|
||||||
|
|
||||||
/// Logger for the discovery behaviour.
|
/// Logger for the discovery behaviour.
|
||||||
log: slog::Logger,
|
log: slog::Logger,
|
||||||
@@ -300,10 +310,12 @@ impl<TSpec: EthSpec> Discovery<TSpec> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let update_tcp_port = (
|
let update_ports = UpdatePorts {
|
||||||
config.enr_tcp4_port.is_none(),
|
tcp4: config.enr_tcp4_port.is_none(),
|
||||||
config.enr_tcp6_port.is_none(),
|
tcp6: config.enr_tcp6_port.is_none(),
|
||||||
);
|
quic4: config.enr_quic4_port.is_none(),
|
||||||
|
quic6: config.enr_quic6_port.is_none(),
|
||||||
|
};
|
||||||
|
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
cached_enrs: LruCache::new(50),
|
cached_enrs: LruCache::new(50),
|
||||||
@@ -314,7 +326,7 @@ impl<TSpec: EthSpec> Discovery<TSpec> {
|
|||||||
discv5,
|
discv5,
|
||||||
event_stream,
|
event_stream,
|
||||||
started: !config.disable_discovery,
|
started: !config.disable_discovery,
|
||||||
update_tcp_port,
|
update_ports,
|
||||||
log,
|
log,
|
||||||
enr_dir,
|
enr_dir,
|
||||||
})
|
})
|
||||||
@@ -1006,8 +1018,8 @@ impl<TSpec: EthSpec> NetworkBehaviour for Discovery<TSpec> {
|
|||||||
// Discv5 will have updated our local ENR. We save the updated version
|
// Discv5 will have updated our local ENR. We save the updated version
|
||||||
// to disk.
|
// to disk.
|
||||||
|
|
||||||
if (self.update_tcp_port.0 && socket_addr.is_ipv4())
|
if (self.update_ports.tcp4 && socket_addr.is_ipv4())
|
||||||
|| (self.update_tcp_port.1 && socket_addr.is_ipv6())
|
|| (self.update_ports.tcp6 && socket_addr.is_ipv6())
|
||||||
{
|
{
|
||||||
// Update the TCP port in the ENR
|
// Update the TCP port in the ENR
|
||||||
self.discv5.update_local_enr_socket(socket_addr, true);
|
self.discv5.update_local_enr_socket(socket_addr, true);
|
||||||
@@ -1036,12 +1048,79 @@ impl<TSpec: EthSpec> NetworkBehaviour for Discovery<TSpec> {
|
|||||||
FromSwarm::DialFailure(DialFailure { peer_id, error, .. }) => {
|
FromSwarm::DialFailure(DialFailure { peer_id, error, .. }) => {
|
||||||
self.on_dial_failure(peer_id, error)
|
self.on_dial_failure(peer_id, error)
|
||||||
}
|
}
|
||||||
|
FromSwarm::NewListenAddr(ev) => {
|
||||||
|
let addr = ev.addr;
|
||||||
|
let listener_id = ev.listener_id;
|
||||||
|
|
||||||
|
trace!(self.log, "Received NewListenAddr event from swarm"; "listener_id" => ?listener_id, "addr" => ?addr);
|
||||||
|
|
||||||
|
let mut addr_iter = addr.iter();
|
||||||
|
|
||||||
|
let attempt_enr_update = match addr_iter.next() {
|
||||||
|
Some(Protocol::Ip4(_)) => match (addr_iter.next(), addr_iter.next()) {
|
||||||
|
(Some(Protocol::Tcp(port)), None) => {
|
||||||
|
if !self.update_ports.tcp4 {
|
||||||
|
debug!(self.log, "Skipping ENR update"; "multiaddr" => ?addr);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.update_enr_tcp_port(port)
|
||||||
|
}
|
||||||
|
(Some(Protocol::Udp(port)), Some(Protocol::QuicV1)) => {
|
||||||
|
if !self.update_ports.quic4 {
|
||||||
|
debug!(self.log, "Skipping ENR update"; "multiaddr" => ?addr);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.update_enr_quic_port(port)
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
debug!(self.log, "Encountered unacceptable multiaddr for listening (unsupported transport)"; "addr" => ?addr);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Some(Protocol::Ip6(_)) => match (addr_iter.next(), addr_iter.next()) {
|
||||||
|
(Some(Protocol::Tcp(port)), None) => {
|
||||||
|
if !self.update_ports.tcp6 {
|
||||||
|
debug!(self.log, "Skipping ENR update"; "multiaddr" => ?addr);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.update_enr_tcp_port(port)
|
||||||
|
}
|
||||||
|
(Some(Protocol::Udp(port)), Some(Protocol::QuicV1)) => {
|
||||||
|
if !self.update_ports.quic6 {
|
||||||
|
debug!(self.log, "Skipping ENR update"; "multiaddr" => ?addr);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.update_enr_quic_port(port)
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
debug!(self.log, "Encountered unacceptable multiaddr for listening (unsupported transport)"; "addr" => ?addr);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
_ => {
|
||||||
|
debug!(self.log, "Encountered unacceptable multiaddr for listening (no IP)"; "addr" => ?addr);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let local_enr: Enr = self.discv5.local_enr();
|
||||||
|
|
||||||
|
match attempt_enr_update {
|
||||||
|
Ok(_) => {
|
||||||
|
info!(self.log, "Updated local ENR"; "enr" => local_enr.to_base64(), "seq" => local_enr.seq(), "id"=> %local_enr.node_id(), "ip4" => ?local_enr.ip4(), "udp4"=> ?local_enr.udp4(), "tcp4" => ?local_enr.tcp4(), "tcp6" => ?local_enr.tcp6(), "udp6" => ?local_enr.udp6())
|
||||||
|
}
|
||||||
|
Err(e) => warn!(self.log, "Failed to update ENR"; "error" => ?e),
|
||||||
|
}
|
||||||
|
}
|
||||||
FromSwarm::ConnectionEstablished(_)
|
FromSwarm::ConnectionEstablished(_)
|
||||||
| FromSwarm::ConnectionClosed(_)
|
| FromSwarm::ConnectionClosed(_)
|
||||||
| FromSwarm::AddressChange(_)
|
| FromSwarm::AddressChange(_)
|
||||||
| FromSwarm::ListenFailure(_)
|
| FromSwarm::ListenFailure(_)
|
||||||
| FromSwarm::NewListener(_)
|
| FromSwarm::NewListener(_)
|
||||||
| FromSwarm::NewListenAddr(_)
|
|
||||||
| FromSwarm::ExpiredListenAddr(_)
|
| FromSwarm::ExpiredListenAddr(_)
|
||||||
| FromSwarm::ListenerError(_)
|
| FromSwarm::ListenerError(_)
|
||||||
| FromSwarm::ListenerClosed(_)
|
| FromSwarm::ListenerClosed(_)
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
status = [
|
status = [
|
||||||
"cargo-fmt",
|
|
||||||
"release-tests-ubuntu",
|
"release-tests-ubuntu",
|
||||||
"release-tests-windows",
|
"release-tests-windows",
|
||||||
"debug-tests-ubuntu",
|
"debug-tests-ubuntu",
|
||||||
@@ -9,20 +8,16 @@ status = [
|
|||||||
"eth1-simulator-ubuntu",
|
"eth1-simulator-ubuntu",
|
||||||
"merge-transition-ubuntu",
|
"merge-transition-ubuntu",
|
||||||
"no-eth1-simulator-ubuntu",
|
"no-eth1-simulator-ubuntu",
|
||||||
"check-benchmarks",
|
"check-code",
|
||||||
"clippy",
|
|
||||||
"arbitrary-check",
|
|
||||||
"cargo-audit",
|
|
||||||
"cargo-udeps",
|
"cargo-udeps",
|
||||||
"beacon-chain-tests",
|
"beacon-chain-tests",
|
||||||
"op-pool-tests",
|
"op-pool-tests",
|
||||||
"doppelganger-protection-test",
|
"doppelganger-protection-test",
|
||||||
"execution-engine-integration-ubuntu",
|
"execution-engine-integration-ubuntu",
|
||||||
"cargo-vendor",
|
|
||||||
"check-msrv",
|
"check-msrv",
|
||||||
"slasher-tests",
|
"slasher-tests",
|
||||||
"syncing-simulator-ubuntu",
|
"syncing-simulator-ubuntu",
|
||||||
"compile-with-beta-compiler"
|
"compile-with-beta-compiler",
|
||||||
]
|
]
|
||||||
use_squash_merge = true
|
use_squash_merge = true
|
||||||
timeout_sec = 10800
|
timeout_sec = 10800
|
||||||
|
|||||||
@@ -6,3 +6,6 @@ edition = { workspace = true }
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
fnv = { workspace = true }
|
fnv = { workspace = true }
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
mock_instant = "0.3"
|
||||||
|
|||||||
@@ -1,7 +1,13 @@
|
|||||||
//! This implements a time-based LRU cache for fast checking of duplicates
|
//! This implements a time-based LRU cache for fast checking of duplicates
|
||||||
use fnv::FnvHashSet;
|
use fnv::FnvHashSet;
|
||||||
|
#[cfg(test)]
|
||||||
|
use mock_instant::Instant;
|
||||||
use std::collections::VecDeque;
|
use std::collections::VecDeque;
|
||||||
use std::time::{Duration, Instant};
|
|
||||||
|
#[cfg(not(test))]
|
||||||
|
use std::time::Instant;
|
||||||
|
|
||||||
|
use std::time::Duration;
|
||||||
|
|
||||||
struct Element<Key> {
|
struct Element<Key> {
|
||||||
/// The key being inserted.
|
/// The key being inserted.
|
||||||
@@ -222,16 +228,16 @@ mod test {
|
|||||||
cache.insert("a");
|
cache.insert("a");
|
||||||
cache.insert("b");
|
cache.insert("b");
|
||||||
|
|
||||||
std::thread::sleep(Duration::from_millis(20));
|
mock_instant::MockClock::advance(Duration::from_millis(20));
|
||||||
cache.insert("a");
|
cache.insert("a");
|
||||||
// a is newer now
|
// a is newer now
|
||||||
|
|
||||||
std::thread::sleep(Duration::from_millis(85));
|
mock_instant::MockClock::advance(Duration::from_millis(85));
|
||||||
assert!(cache.contains(&"a"),);
|
assert!(cache.contains(&"a"),);
|
||||||
// b was inserted first but was not as recent it should have been removed
|
// b was inserted first but was not as recent it should have been removed
|
||||||
assert!(!cache.contains(&"b"));
|
assert!(!cache.contains(&"b"));
|
||||||
|
|
||||||
std::thread::sleep(Duration::from_millis(16));
|
mock_instant::MockClock::advance(Duration::from_millis(16));
|
||||||
assert!(!cache.contains(&"a"));
|
assert!(!cache.contains(&"a"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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::{
|
use crate::per_block_processing::errors::{
|
||||||
AttestationInvalid, AttesterSlashingInvalid, BlockOperationError, BlockProcessingError,
|
AttestationInvalid, AttesterSlashingInvalid, BlockOperationError, BlockProcessingError,
|
||||||
|
|||||||
@@ -22,9 +22,14 @@ use types::{
|
|||||||
Address, Checkpoint, Epoch, ExecutionBlockHash, ForkName, Hash256, MainnetEthSpec,
|
Address, Checkpoint, Epoch, ExecutionBlockHash, ForkName, Hash256, MainnetEthSpec,
|
||||||
ProgressiveBalancesMode,
|
ProgressiveBalancesMode,
|
||||||
};
|
};
|
||||||
use unused_port::{unused_tcp4_port, unused_tcp6_port, unused_udp4_port, unused_udp6_port};
|
|
||||||
|
|
||||||
const DEFAULT_ETH1_ENDPOINT: &str = "http://localhost:8545/";
|
const DEFAULT_ETH1_ENDPOINT: &str = "http://localhost:8545/";
|
||||||
|
const DUMMY_ENR_TCP_PORT: u16 = 7777;
|
||||||
|
const DUMMY_ENR_UDP_PORT: u16 = 8888;
|
||||||
|
const DUMMY_ENR_QUIC_PORT: u16 = 9999;
|
||||||
|
|
||||||
|
const _: () =
|
||||||
|
assert!(DUMMY_ENR_QUIC_PORT != 0 && DUMMY_ENR_TCP_PORT != 0 && DUMMY_ENR_UDP_PORT != 0);
|
||||||
|
|
||||||
/// Returns the `lighthouse beacon_node` command.
|
/// Returns the `lighthouse beacon_node` command.
|
||||||
fn base_cmd() -> Command {
|
fn base_cmd() -> Command {
|
||||||
@@ -1004,7 +1009,7 @@ fn network_listen_address_flag_wrong_double_v6_value_config() {
|
|||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
fn network_port_flag_over_ipv4() {
|
fn network_port_flag_over_ipv4() {
|
||||||
let port = unused_tcp4_port().expect("Unable to find unused port.");
|
let port = 0;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("port", Some(port.to_string().as_str()))
|
.flag("port", Some(port.to_string().as_str()))
|
||||||
.run()
|
.run()
|
||||||
@@ -1021,7 +1026,7 @@ fn network_port_flag_over_ipv4() {
|
|||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
fn network_port_flag_over_ipv6() {
|
fn network_port_flag_over_ipv6() {
|
||||||
let port = unused_tcp6_port().expect("Unable to find unused port.");
|
let port = 0;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("listen-address", Some("::1"))
|
.flag("listen-address", Some("::1"))
|
||||||
.flag("port", Some(port.to_string().as_str()))
|
.flag("port", Some(port.to_string().as_str()))
|
||||||
@@ -1039,8 +1044,8 @@ fn network_port_flag_over_ipv6() {
|
|||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
fn network_port_and_discovery_port_flags_over_ipv4() {
|
fn network_port_and_discovery_port_flags_over_ipv4() {
|
||||||
let tcp4_port = unused_tcp4_port().expect("Unable to find unused port.");
|
let tcp4_port = 0;
|
||||||
let disc4_port = unused_udp4_port().expect("Unable to find unused port.");
|
let disc4_port = 0;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("port", Some(tcp4_port.to_string().as_str()))
|
.flag("port", Some(tcp4_port.to_string().as_str()))
|
||||||
.flag("discovery-port", Some(disc4_port.to_string().as_str()))
|
.flag("discovery-port", Some(disc4_port.to_string().as_str()))
|
||||||
@@ -1058,8 +1063,8 @@ fn network_port_and_discovery_port_flags_over_ipv4() {
|
|||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
fn network_port_and_discovery_port_flags_over_ipv6() {
|
fn network_port_and_discovery_port_flags_over_ipv6() {
|
||||||
let tcp6_port = unused_tcp6_port().expect("Unable to find unused port.");
|
let tcp6_port = 0;
|
||||||
let disc6_port = unused_udp6_port().expect("Unable to find unused port.");
|
let disc6_port = 0;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("listen-address", Some("::1"))
|
.flag("listen-address", Some("::1"))
|
||||||
.flag("port", Some(tcp6_port.to_string().as_str()))
|
.flag("port", Some(tcp6_port.to_string().as_str()))
|
||||||
@@ -1078,10 +1083,10 @@ fn network_port_and_discovery_port_flags_over_ipv6() {
|
|||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
fn network_port_and_discovery_port_flags_over_ipv4_and_ipv6() {
|
fn network_port_and_discovery_port_flags_over_ipv4_and_ipv6() {
|
||||||
let tcp4_port = unused_tcp4_port().expect("Unable to find unused port.");
|
let tcp4_port = 0;
|
||||||
let disc4_port = unused_udp4_port().expect("Unable to find unused port.");
|
let disc4_port = 0;
|
||||||
let tcp6_port = unused_tcp6_port().expect("Unable to find unused port.");
|
let tcp6_port = 0;
|
||||||
let disc6_port = unused_udp6_port().expect("Unable to find unused port.");
|
let disc6_port = 0;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("listen-address", Some("::1"))
|
.flag("listen-address", Some("::1"))
|
||||||
.flag("listen-address", Some("127.0.0.1"))
|
.flag("listen-address", Some("127.0.0.1"))
|
||||||
@@ -1113,12 +1118,12 @@ fn network_port_and_discovery_port_flags_over_ipv4_and_ipv6() {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn network_port_discovery_quic_port_flags_over_ipv4_and_ipv6() {
|
fn network_port_discovery_quic_port_flags_over_ipv4_and_ipv6() {
|
||||||
let tcp4_port = unused_tcp4_port().expect("Unable to find unused port.");
|
let tcp4_port = 0;
|
||||||
let disc4_port = unused_udp4_port().expect("Unable to find unused port.");
|
let disc4_port = 0;
|
||||||
let quic4_port = unused_udp4_port().expect("Unable to find unused port.");
|
let quic4_port = 0;
|
||||||
let tcp6_port = unused_tcp6_port().expect("Unable to find unused port.");
|
let tcp6_port = 0;
|
||||||
let disc6_port = unused_udp6_port().expect("Unable to find unused port.");
|
let disc6_port = 0;
|
||||||
let quic6_port = unused_udp6_port().expect("Unable to find unused port.");
|
let quic6_port = 0;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("listen-address", Some("::1"))
|
.flag("listen-address", Some("::1"))
|
||||||
.flag("listen-address", Some("127.0.0.1"))
|
.flag("listen-address", Some("127.0.0.1"))
|
||||||
@@ -1264,7 +1269,8 @@ fn network_load_flag() {
|
|||||||
// Tests for ENR flags.
|
// Tests for ENR flags.
|
||||||
#[test]
|
#[test]
|
||||||
fn enr_udp_port_flag() {
|
fn enr_udp_port_flag() {
|
||||||
let port = unused_udp4_port().expect("Unable to find unused port.");
|
let port = DUMMY_ENR_UDP_PORT;
|
||||||
|
assert!(port != 0);
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("enr-udp-port", Some(port.to_string().as_str()))
|
.flag("enr-udp-port", Some(port.to_string().as_str()))
|
||||||
.run_with_zero_port()
|
.run_with_zero_port()
|
||||||
@@ -1272,7 +1278,7 @@ fn enr_udp_port_flag() {
|
|||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
fn enr_quic_port_flag() {
|
fn enr_quic_port_flag() {
|
||||||
let port = unused_udp4_port().expect("Unable to find unused port.");
|
let port = DUMMY_ENR_QUIC_PORT;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("enr-quic-port", Some(port.to_string().as_str()))
|
.flag("enr-quic-port", Some(port.to_string().as_str()))
|
||||||
.run_with_zero_port()
|
.run_with_zero_port()
|
||||||
@@ -1280,7 +1286,7 @@ fn enr_quic_port_flag() {
|
|||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
fn enr_tcp_port_flag() {
|
fn enr_tcp_port_flag() {
|
||||||
let port = unused_tcp4_port().expect("Unable to find unused port.");
|
let port = DUMMY_ENR_TCP_PORT;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("enr-tcp-port", Some(port.to_string().as_str()))
|
.flag("enr-tcp-port", Some(port.to_string().as_str()))
|
||||||
.run_with_zero_port()
|
.run_with_zero_port()
|
||||||
@@ -1288,7 +1294,7 @@ fn enr_tcp_port_flag() {
|
|||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
fn enr_udp6_port_flag() {
|
fn enr_udp6_port_flag() {
|
||||||
let port = unused_udp6_port().expect("Unable to find unused port.");
|
let port = DUMMY_ENR_UDP_PORT;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("enr-udp6-port", Some(port.to_string().as_str()))
|
.flag("enr-udp6-port", Some(port.to_string().as_str()))
|
||||||
.run_with_zero_port()
|
.run_with_zero_port()
|
||||||
@@ -1296,7 +1302,7 @@ fn enr_udp6_port_flag() {
|
|||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
fn enr_quic6_port_flag() {
|
fn enr_quic6_port_flag() {
|
||||||
let port = unused_udp6_port().expect("Unable to find unused port.");
|
let port = DUMMY_ENR_QUIC_PORT;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("enr-quic6-port", Some(port.to_string().as_str()))
|
.flag("enr-quic6-port", Some(port.to_string().as_str()))
|
||||||
.run_with_zero_port()
|
.run_with_zero_port()
|
||||||
@@ -1304,7 +1310,7 @@ fn enr_quic6_port_flag() {
|
|||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
fn enr_tcp6_port_flag() {
|
fn enr_tcp6_port_flag() {
|
||||||
let port = unused_tcp6_port().expect("Unable to find unused port.");
|
let port = DUMMY_ENR_TCP_PORT;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("enr-tcp6-port", Some(port.to_string().as_str()))
|
.flag("enr-tcp6-port", Some(port.to_string().as_str()))
|
||||||
.run_with_zero_port()
|
.run_with_zero_port()
|
||||||
@@ -1313,8 +1319,11 @@ fn enr_tcp6_port_flag() {
|
|||||||
#[test]
|
#[test]
|
||||||
fn enr_match_flag_over_ipv4() {
|
fn enr_match_flag_over_ipv4() {
|
||||||
let addr = "127.0.0.2".parse::<Ipv4Addr>().unwrap();
|
let addr = "127.0.0.2".parse::<Ipv4Addr>().unwrap();
|
||||||
let udp4_port = unused_udp4_port().expect("Unable to find unused port.");
|
|
||||||
let tcp4_port = unused_tcp4_port().expect("Unable to find unused port.");
|
// the reason we use the ENR dummy values is because, due to the nature of the `--enr-match` flag, these will eventually become ENR ports (as well as listening ports).
|
||||||
|
let udp4_port = DUMMY_ENR_UDP_PORT;
|
||||||
|
let tcp4_port = DUMMY_ENR_TCP_PORT;
|
||||||
|
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("enr-match", None)
|
.flag("enr-match", None)
|
||||||
.flag("listen-address", Some("127.0.0.2"))
|
.flag("listen-address", Some("127.0.0.2"))
|
||||||
@@ -1338,8 +1347,11 @@ fn enr_match_flag_over_ipv4() {
|
|||||||
fn enr_match_flag_over_ipv6() {
|
fn enr_match_flag_over_ipv6() {
|
||||||
const ADDR: &str = "::1";
|
const ADDR: &str = "::1";
|
||||||
let addr = ADDR.parse::<Ipv6Addr>().unwrap();
|
let addr = ADDR.parse::<Ipv6Addr>().unwrap();
|
||||||
let udp6_port = unused_udp6_port().expect("Unable to find unused port.");
|
|
||||||
let tcp6_port = unused_tcp6_port().expect("Unable to find unused port.");
|
// the reason we use the ENR dummy values is because, due to the nature of the `--enr-match` flag, these will eventually become ENR ports (as well as listening ports).
|
||||||
|
let udp6_port = DUMMY_ENR_UDP_PORT;
|
||||||
|
let tcp6_port = DUMMY_ENR_TCP_PORT;
|
||||||
|
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("enr-match", None)
|
.flag("enr-match", None)
|
||||||
.flag("listen-address", Some(ADDR))
|
.flag("listen-address", Some(ADDR))
|
||||||
@@ -1362,13 +1374,18 @@ fn enr_match_flag_over_ipv6() {
|
|||||||
#[test]
|
#[test]
|
||||||
fn enr_match_flag_over_ipv4_and_ipv6() {
|
fn enr_match_flag_over_ipv4_and_ipv6() {
|
||||||
const IPV6_ADDR: &str = "::1";
|
const IPV6_ADDR: &str = "::1";
|
||||||
|
|
||||||
|
// the reason we use the ENR dummy values is because, due to the nature of the `--enr-match` flag, these will eventually become ENR ports (as well as listening ports).
|
||||||
|
let udp6_port = DUMMY_ENR_UDP_PORT;
|
||||||
|
let tcp6_port = DUMMY_ENR_TCP_PORT;
|
||||||
let ipv6_addr = IPV6_ADDR.parse::<Ipv6Addr>().unwrap();
|
let ipv6_addr = IPV6_ADDR.parse::<Ipv6Addr>().unwrap();
|
||||||
let udp6_port = unused_udp6_port().expect("Unable to find unused port.");
|
|
||||||
let tcp6_port = unused_tcp6_port().expect("Unable to find unused port.");
|
|
||||||
const IPV4_ADDR: &str = "127.0.0.1";
|
const IPV4_ADDR: &str = "127.0.0.1";
|
||||||
|
// the reason we use the ENR dummy values is because, due to the nature of the `--enr-match` flag, these will eventually become ENR ports (as well as listening ports).
|
||||||
|
let udp4_port = DUMMY_ENR_UDP_PORT;
|
||||||
|
let tcp4_port = DUMMY_ENR_TCP_PORT;
|
||||||
let ipv4_addr = IPV4_ADDR.parse::<Ipv4Addr>().unwrap();
|
let ipv4_addr = IPV4_ADDR.parse::<Ipv4Addr>().unwrap();
|
||||||
let udp4_port = unused_udp4_port().expect("Unable to find unused port.");
|
|
||||||
let tcp4_port = unused_tcp4_port().expect("Unable to find unused port.");
|
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("enr-match", None)
|
.flag("enr-match", None)
|
||||||
.flag("listen-address", Some(IPV4_ADDR))
|
.flag("listen-address", Some(IPV4_ADDR))
|
||||||
@@ -1406,7 +1423,7 @@ fn enr_match_flag_over_ipv4_and_ipv6() {
|
|||||||
#[test]
|
#[test]
|
||||||
fn enr_address_flag_with_ipv4() {
|
fn enr_address_flag_with_ipv4() {
|
||||||
let addr = "192.167.1.1".parse::<Ipv4Addr>().unwrap();
|
let addr = "192.167.1.1".parse::<Ipv4Addr>().unwrap();
|
||||||
let port = unused_udp4_port().expect("Unable to find unused port.");
|
let port = DUMMY_ENR_UDP_PORT;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("enr-address", Some("192.167.1.1"))
|
.flag("enr-address", Some("192.167.1.1"))
|
||||||
.flag("enr-udp-port", Some(port.to_string().as_str()))
|
.flag("enr-udp-port", Some(port.to_string().as_str()))
|
||||||
@@ -1419,7 +1436,7 @@ fn enr_address_flag_with_ipv4() {
|
|||||||
#[test]
|
#[test]
|
||||||
fn enr_address_flag_with_ipv6() {
|
fn enr_address_flag_with_ipv6() {
|
||||||
let addr = "192.167.1.1".parse::<Ipv4Addr>().unwrap();
|
let addr = "192.167.1.1".parse::<Ipv4Addr>().unwrap();
|
||||||
let port = unused_udp4_port().expect("Unable to find unused port.");
|
let port = DUMMY_ENR_UDP_PORT;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("enr-address", Some("192.167.1.1"))
|
.flag("enr-address", Some("192.167.1.1"))
|
||||||
.flag("enr-udp-port", Some(port.to_string().as_str()))
|
.flag("enr-udp-port", Some(port.to_string().as_str()))
|
||||||
@@ -1433,7 +1450,7 @@ fn enr_address_flag_with_ipv6() {
|
|||||||
fn enr_address_dns_flag() {
|
fn enr_address_dns_flag() {
|
||||||
let addr = Ipv4Addr::LOCALHOST;
|
let addr = Ipv4Addr::LOCALHOST;
|
||||||
let ipv6addr = Ipv6Addr::LOCALHOST;
|
let ipv6addr = Ipv6Addr::LOCALHOST;
|
||||||
let port = unused_udp4_port().expect("Unable to find unused port.");
|
let port = DUMMY_ENR_UDP_PORT;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("enr-address", Some("localhost"))
|
.flag("enr-address", Some("localhost"))
|
||||||
.flag("enr-udp-port", Some(port.to_string().as_str()))
|
.flag("enr-udp-port", Some(port.to_string().as_str()))
|
||||||
@@ -1482,8 +1499,8 @@ fn http_address_ipv6_flag() {
|
|||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
fn http_port_flag() {
|
fn http_port_flag() {
|
||||||
let port1 = unused_tcp4_port().expect("Unable to find unused port.");
|
let port1 = 0;
|
||||||
let port2 = unused_tcp4_port().expect("Unable to find unused port.");
|
let port2 = 0;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("http", None)
|
.flag("http", None)
|
||||||
.flag("http-port", Some(port1.to_string().as_str()))
|
.flag("http-port", Some(port1.to_string().as_str()))
|
||||||
@@ -1639,8 +1656,8 @@ fn metrics_address_ipv6_flag() {
|
|||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
fn metrics_port_flag() {
|
fn metrics_port_flag() {
|
||||||
let port1 = unused_tcp4_port().expect("Unable to find unused port.");
|
let port1 = 0;
|
||||||
let port2 = unused_tcp4_port().expect("Unable to find unused port.");
|
let port2 = 0;
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
.flag("metrics", None)
|
.flag("metrics", None)
|
||||||
.flag("metrics-port", Some(port1.to_string().as_str()))
|
.flag("metrics-port", Some(port1.to_string().as_str()))
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
openssl req -x509 -sha256 -nodes -days 36500 -newkey rsa:4096 -keyout web3signer/key.key -out web3signer/cert.pem -config web3signer/config &&
|
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 &&
|
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 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
|
openssl x509 -noout -fingerprint -sha256 -inform pem -in lighthouse/cert.pem | cut -b 20-| sed "s/^/lighthouse /" > web3signer/known_clients.txt
|
||||||
|
|||||||
@@ -1,33 +1,33 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIFujCCA6KgAwIBAgIUELASgYwStCn/u/8tPByRADyCwLEwDQYJKoZIhvcNAQEL
|
MIIFujCCA6KgAwIBAgIUXZijYo8W4/9dAq58ocFEbZDxohwwDQYJKoZIhvcNAQEL
|
||||||
BQAwazELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlZBMREwDwYDVQQHDAhTb21lQ2l0
|
BQAwazELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlZBMREwDwYDVQQHDAhTb21lQ2l0
|
||||||
eTESMBAGA1UECgwJTXlDb21wYW55MRMwEQYDVQQLDApNeURpdmlzaW9uMRMwEQYD
|
eTESMBAGA1UECgwJTXlDb21wYW55MRMwEQYDVQQLDApNeURpdmlzaW9uMRMwEQYD
|
||||||
VQQDDApsaWdodGhvdXNlMCAXDTIzMDkyMjAzMDA1N1oYDzIxMjMwODI5MDMwMDU3
|
VQQDDApsaWdodGhvdXNlMCAXDTIzMDkyMDAyNTYzNloYDzIxMjMwODI3MDI1NjM2
|
||||||
WjBrMQswCQYDVQQGEwJVUzELMAkGA1UECAwCVkExETAPBgNVBAcMCFNvbWVDaXR5
|
WjBrMQswCQYDVQQGEwJVUzELMAkGA1UECAwCVkExETAPBgNVBAcMCFNvbWVDaXR5
|
||||||
MRIwEAYDVQQKDAlNeUNvbXBhbnkxEzARBgNVBAsMCk15RGl2aXNpb24xEzARBgNV
|
MRIwEAYDVQQKDAlNeUNvbXBhbnkxEzARBgNVBAsMCk15RGl2aXNpb24xEzARBgNV
|
||||||
BAMMCmxpZ2h0aG91c2UwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCc
|
BAMMCmxpZ2h0aG91c2UwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC1
|
||||||
i30cib5B/B5QNd8grzi4LxmlyfZFi3VfpukwdwOD1Xk3ODk1OtjAzhK46YhDclvc
|
R1M9NnRwUsqFvJzNWPKuY1PW7llwRRWCixiWNvcxukGTa6AMLZDrYO1Y7qlw5m52
|
||||||
u98m1Dnib1Z+eTjRuEEoekIxz2+BbOle7G52LNvuDZpD+HKucqIU3TnEKPPuTYPp
|
aHSA2fs2KyeA61yajG/BsLn1vmTtJMZXgLsG0MIqvhgOoh+ZZbl8biO0gQJSRSDE
|
||||||
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
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|||||||
@@ -1,52 +1,52 @@
|
|||||||
-----BEGIN PRIVATE KEY-----
|
-----BEGIN PRIVATE KEY-----
|
||||||
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
|
||||||
GlPvUaKC1KX0CX1qT1anVZq9bSMTG+M=
|
vc3Za4ClKSLmb3ZA9giTswYMev+3BQ==
|
||||||
-----END PRIVATE KEY-----
|
-----END PRIVATE KEY-----
|
||||||
|
|||||||
Binary file not shown.
@@ -1,33 +1,33 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIFujCCA6KgAwIBAgIUOVccYETgo2YpKO85U4XRKifK09kwDQYJKoZIhvcNAQEL
|
MIIFujCCA6KgAwIBAgIUIP5CN0WpH5om1bGaFn17Xc5ITJIwDQYJKoZIhvcNAQEL
|
||||||
BQAwazELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlZBMREwDwYDVQQHDAhTb21lQ2l0
|
BQAwazELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlZBMREwDwYDVQQHDAhTb21lQ2l0
|
||||||
eTESMBAGA1UECgwJTXlDb21wYW55MRMwEQYDVQQLDApNeURpdmlzaW9uMRMwEQYD
|
eTESMBAGA1UECgwJTXlDb21wYW55MRMwEQYDVQQLDApNeURpdmlzaW9uMRMwEQYD
|
||||||
VQQDDAp3ZWIzc2lnbmVyMCAXDTIzMDkyMjAzMDA1NloYDzIxMjMwODI5MDMwMDU2
|
VQQDDAp3ZWIzc2lnbmVyMCAXDTIzMDkyMDAyNTYzNFoYDzIxMjMwODI3MDI1NjM0
|
||||||
WjBrMQswCQYDVQQGEwJVUzELMAkGA1UECAwCVkExETAPBgNVBAcMCFNvbWVDaXR5
|
WjBrMQswCQYDVQQGEwJVUzELMAkGA1UECAwCVkExETAPBgNVBAcMCFNvbWVDaXR5
|
||||||
MRIwEAYDVQQKDAlNeUNvbXBhbnkxEzARBgNVBAsMCk15RGl2aXNpb24xEzARBgNV
|
MRIwEAYDVQQKDAlNeUNvbXBhbnkxEzARBgNVBAsMCk15RGl2aXNpb24xEzARBgNV
|
||||||
BAMMCndlYjNzaWduZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCr
|
BAMMCndlYjNzaWduZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDS
|
||||||
JajqnvRQEREph+zu7rw1QjHQG1x2H44SJSMjX1Wzi9FErlRSOzywPFL2AzGsNvNS
|
cvshqu3747j4KMaGyGW0CA2GAznogVyKqNt4lan/8mdYUI2PUeezaUOnmoyM9oWz
|
||||||
tPmxN/kF9mBjQIQHxo90M4GcZgW1aljPaXLvQWFrP9ak+JjHuUG+j51fVJp8F2Qc
|
1FPflpj7pVWagWlSOgZ9vOElqQhe+la4ZEdGmOpe44c1rBoeHK314Gbmr2EuCxaa
|
||||||
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
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|||||||
@@ -1,33 +1,33 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIFujCCA6KgAwIBAgIUOVccYETgo2YpKO85U4XRKifK09kwDQYJKoZIhvcNAQEL
|
MIIFujCCA6KgAwIBAgIUIP5CN0WpH5om1bGaFn17Xc5ITJIwDQYJKoZIhvcNAQEL
|
||||||
BQAwazELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlZBMREwDwYDVQQHDAhTb21lQ2l0
|
BQAwazELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlZBMREwDwYDVQQHDAhTb21lQ2l0
|
||||||
eTESMBAGA1UECgwJTXlDb21wYW55MRMwEQYDVQQLDApNeURpdmlzaW9uMRMwEQYD
|
eTESMBAGA1UECgwJTXlDb21wYW55MRMwEQYDVQQLDApNeURpdmlzaW9uMRMwEQYD
|
||||||
VQQDDAp3ZWIzc2lnbmVyMCAXDTIzMDkyMjAzMDA1NloYDzIxMjMwODI5MDMwMDU2
|
VQQDDAp3ZWIzc2lnbmVyMCAXDTIzMDkyMDAyNTYzNFoYDzIxMjMwODI3MDI1NjM0
|
||||||
WjBrMQswCQYDVQQGEwJVUzELMAkGA1UECAwCVkExETAPBgNVBAcMCFNvbWVDaXR5
|
WjBrMQswCQYDVQQGEwJVUzELMAkGA1UECAwCVkExETAPBgNVBAcMCFNvbWVDaXR5
|
||||||
MRIwEAYDVQQKDAlNeUNvbXBhbnkxEzARBgNVBAsMCk15RGl2aXNpb24xEzARBgNV
|
MRIwEAYDVQQKDAlNeUNvbXBhbnkxEzARBgNVBAsMCk15RGl2aXNpb24xEzARBgNV
|
||||||
BAMMCndlYjNzaWduZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCr
|
BAMMCndlYjNzaWduZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDS
|
||||||
JajqnvRQEREph+zu7rw1QjHQG1x2H44SJSMjX1Wzi9FErlRSOzywPFL2AzGsNvNS
|
cvshqu3747j4KMaGyGW0CA2GAznogVyKqNt4lan/8mdYUI2PUeezaUOnmoyM9oWz
|
||||||
tPmxN/kF9mBjQIQHxo90M4GcZgW1aljPaXLvQWFrP9ak+JjHuUG+j51fVJp8F2Qc
|
1FPflpj7pVWagWlSOgZ9vOElqQhe+la4ZEdGmOpe44c1rBoeHK314Gbmr2EuCxaa
|
||||||
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
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|||||||
@@ -1,52 +1,52 @@
|
|||||||
-----BEGIN PRIVATE KEY-----
|
-----BEGIN PRIVATE KEY-----
|
||||||
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
|
||||||
CXDusRSlsQNpzHc6QKq8IDZLut9g
|
oJ/aHbXf6PdOO9MYiI/es/dfKK8ywA==
|
||||||
-----END PRIVATE KEY-----
|
-----END PRIVATE KEY-----
|
||||||
|
|||||||
Binary file not shown.
@@ -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
|
||||||
|
|||||||
@@ -6,20 +6,23 @@ ARCHIVE_URL := https://github.com/eth-clients/slashing-protection-interchange-te
|
|||||||
|
|
||||||
ifeq ($(OS),Windows_NT)
|
ifeq ($(OS),Windows_NT)
|
||||||
ifeq (, $(shell where rm))
|
ifeq (, $(shell where rm))
|
||||||
rmfile = if exist $(1) (del /F /Q $(1))
|
rmfile = if exist $(1) (del /F /Q $(1))
|
||||||
rmdir = if exist $(1) (rmdir /Q /S $(1))
|
rmdir = if exist $(1) (rmdir /Q /S $(1))
|
||||||
|
makedir = if not exist $(1) (mkdir $(1))
|
||||||
else
|
else
|
||||||
rmfile = rm -f $(1)
|
rmfile = rm -f $(1)
|
||||||
rmdir = rm -rf $(1)
|
rmdir = rm -rf $(1)
|
||||||
|
makedir = mkdir -p $(1)
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
rmfile = rm -f $(1)
|
rmfile = rm -f $(1)
|
||||||
rmdir = rm -rf $(1)
|
rmdir = rm -rf $(1)
|
||||||
|
makedir = mkdir -p $(1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(OUTPUT_DIR): $(TARBALL)
|
$(OUTPUT_DIR): $(TARBALL)
|
||||||
$(call rmdir,$@)
|
$(call rmdir,$@)
|
||||||
mkdir $@
|
$(call makedir,$@)
|
||||||
tar --strip-components=1 -xzf $^ -C $@
|
tar --strip-components=1 -xzf $^ -C $@
|
||||||
|
|
||||||
$(TARBALL):
|
$(TARBALL):
|
||||||
|
|||||||
@@ -25,8 +25,10 @@ fn test_root_dir() -> PathBuf {
|
|||||||
.join("tests")
|
.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]
|
#[test]
|
||||||
fn generated() {
|
fn generated_and_with_minification() {
|
||||||
for entry in TEST_ROOT_DIR
|
for entry in TEST_ROOT_DIR
|
||||||
.join("generated")
|
.join("generated")
|
||||||
.read_dir()
|
.read_dir()
|
||||||
@@ -37,10 +39,7 @@ fn generated() {
|
|||||||
let test_case: MultiTestCase = serde_json::from_reader(&file).unwrap();
|
let test_case: MultiTestCase = serde_json::from_reader(&file).unwrap();
|
||||||
test_case.run(false);
|
test_case.run(false);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn generated_with_minification() {
|
|
||||||
for entry in TEST_ROOT_DIR
|
for entry in TEST_ROOT_DIR
|
||||||
.join("generated")
|
.join("generated")
|
||||||
.read_dir()
|
.read_dir()
|
||||||
|
|||||||
Reference in New Issue
Block a user