Compare commits

..

16 Commits

Author SHA1 Message Date
Michael Sproul
d65fd5a495 Cap validator index at 8M in slasher 2026-04-08 12:51:22 +10:00
Michael Sproul
10ddeb8f10 Avoid double processing indexed attestations for slasher 2026-04-08 12:02:29 +10:00
Michael Sproul
176cce585c Release v8.1.3 2026-03-26 12:21:13 +11:00
Michael Sproul
7ca91b8ef4 Bump c-kzg 2026-03-26 12:18:01 +11:00
Michael Sproul
dfd715b65e Bump libp2p 2026-03-26 12:17:53 +11:00
Michael Sproul
e5facc2faf Bump yamux 2026-03-25 10:22:24 +11:00
Michael Sproul
5d6f787a06 Bump quinn 2026-03-25 10:22:24 +11:00
Lion - dapplion
91c25794fe Schedule Fulu fork for Gnosis mainnet (#9007)
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>

Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-03-24 03:50:14 +00:00
Michael Sproul
c451ae763c Use BTreeMap for state.validators pending updates (#9017)
Closes:

- https://github.com/sigp/lighthouse/issues/9003


  Milhouse `List`s use a map in front of the binary tree to cache updates. Ever since we adopted Milhouse, we've been using `VecMap`, which is essentially `Vec<Option<T>>`. Turns out, when you've got 2M indices and only 2 non-`None` entries (changes), this is inefficient.

Milhouse is generic in the choice of map (`U: UpdateMap`) and has always supported `BTreeMap`, so this PR switches us over to `BTreeMap`. In previous benchmarks (years ago) it had been slower than `VecMap`, but now it is vastly superior.


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-03-24 01:43:19 +00:00
antondlr
e21053311d Scrap redundant docker builds on releases (#8999)
Our release workflow is pretty inefficient and slow. This PR aims to consolidate and cut down on duplicate tasks.


  1) We now run the whole build process both on pushing to the `stable` branch and pushing a version tag.
A quick win is to not fire off separate builds.

~~2) The Docker release workflow could re-use the binaries being built instead of doing its own cross-compilation. ~~
we won't take this on _right now_


Co-Authored-By: antondlr <anton@sigmaprime.io>

Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com>

Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-03-23 06:25:06 +00:00
Michael Sproul
8f9c1ca9ca Bump rustls and ignore unpatched version due to Warp (#9010)
Fix the cargo-audit failure caused by:

- https://rustsec.org/advisories/RUSTSEC-2026-0049

We can't fix it completely yet because `warp 0.3` is keeping us on an old version of `rustls`.

Mac's PR here will fix it:

- https://github.com/sigp/lighthouse/pull/9001


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-03-21 09:45:20 +00:00
Michael Sproul
3deab9b041 Release v8.1.2 2026-03-09 18:52:18 +11:00
Akihito Nakano
6a92761f44 Fix cargo-sort errors (#8945)
The `cargo-sort` job in CI is [failing](https://github.com/sigp/lighthouse/actions/runs/22781651620/job/66088700318?pr=8932) since [cargo-sort v2.1.1](https://github.com/DevinR528/cargo-sort/releases/tag/v2.1.1) has been released, which reports new errors for our Cargo.toml files.


  Ran `cargo-sort` formatter locally with the new version.


Co-Authored-By: ackintosh <sora.akatsuki@gmail.com>
2026-03-09 18:52:18 +11:00
Mac L
5a174f2a00 Fix lints for Rust v1.94.0 (#8939)
Following the release of Rust v1.94.0 there are new Clippy lints which do not pass and are blocking CI (which pulls in the latest version of Rust)


  This is pretty much the minimum just to get CI running again. Most of the errors involve error types being too large. For now I've added allows but later it might be worth doing a refactor to `Box` or otherwise remove the problematic error types.


Co-Authored-By: Mac L <mjladson@pm.me>
2026-03-09 18:52:18 +11:00
chonghe
ac1db1d2e2 update cargo-sort (#8933)
Co-Authored-By: Tan Chee Keong <tanck@sigmaprime.io>
2026-03-09 18:52:18 +11:00
Michael Sproul
71f6eab51f Bump deps 2026-03-09 18:52:13 +11:00
24 changed files with 219 additions and 220 deletions

View File

@@ -4,7 +4,6 @@ on:
push:
branches:
- unstable
- stable
tags:
- v*
workflow_dispatch: # allows manual triggering for testing purposes and skips publishing an image
@@ -25,9 +24,6 @@ jobs:
if [[ "${{ github.ref }}" == refs/tags/* ]]; then
# It's a tag (e.g., v1.2.3)
VERSION="${GITHUB_REF#refs/tags/}"
elif [[ "${{ github.ref }}" == refs/heads/stable ]]; then
# stable branch -> latest
VERSION="latest"
elif [[ "${{ github.ref }}" == refs/heads/unstable ]]; then
# unstable branch -> latest-unstable
VERSION="latest-unstable"
@@ -174,3 +170,14 @@ jobs:
${IMAGE_NAME}:${VERSION}-arm64
docker manifest push ${IMAGE_NAME}:${VERSION}
# For version tags, also create/update the latest tag to keep stable up to date
# Only create latest tag for proper release versions (e.g. v1.2.3, not v1.2.3-alpha)
if [[ "${GITHUB_REF}" == refs/tags/* ]] && [[ "${VERSION}" =~ ^v[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}$ ]]; then
docker manifest create \
${IMAGE_NAME}:latest \
${IMAGE_NAME}:${VERSION}-amd64 \
${IMAGE_NAME}:${VERSION}-arm64
docker manifest push ${IMAGE_NAME}:latest
fi

View File

@@ -4,7 +4,6 @@ on:
push:
branches:
- unstable
- stable
tags:
- v*
@@ -28,11 +27,6 @@ jobs:
extract-version:
runs-on: ubuntu-22.04
steps:
- name: Extract version (if stable)
if: github.event.ref == 'refs/heads/stable'
run: |
echo "VERSION=latest" >> $GITHUB_ENV
echo "VERSION_SUFFIX=" >> $GITHUB_ENV
- name: Extract version (if unstable)
if: github.event.ref == 'refs/heads/unstable'
run: |
@@ -159,7 +153,16 @@ jobs:
- name: Create and push multiarch manifests
run: |
# Create the main tag (versioned for releases, latest-unstable for unstable)
docker buildx imagetools create -t ${{ github.repository_owner}}/${{ matrix.binary }}:${VERSION}${VERSION_SUFFIX} \
${{ github.repository_owner}}/${{ matrix.binary }}:${VERSION}-arm64${VERSION_SUFFIX} \
${{ github.repository_owner}}/${{ matrix.binary }}:${VERSION}-amd64${VERSION_SUFFIX};
# For version tags, also create/update the latest tag to keep stable up to date
# Only create latest tag for proper release versions (e.g. v1.2.3, not v1.2.3-alpha)
if [[ "${GITHUB_REF}" == refs/tags/* ]] && [[ "${VERSION}" =~ ^v[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}$ ]]; then
docker buildx imagetools create -t ${{ github.repository_owner}}/${{ matrix.binary }}:latest \
${{ github.repository_owner}}/${{ matrix.binary }}:${VERSION}-arm64${VERSION_SUFFIX} \
${{ github.repository_owner}}/${{ matrix.binary }}:${VERSION}-amd64${VERSION_SUFFIX};
fi

266
Cargo.lock generated
View File

@@ -4,7 +4,7 @@ version = 4
[[package]]
name = "account_manager"
version = "8.1.1"
version = "8.1.3"
dependencies = [
"account_utils",
"bls",
@@ -399,7 +399,7 @@ checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -510,7 +510,7 @@ dependencies = [
"proc-macro-error2",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -526,7 +526,7 @@ dependencies = [
"proc-macro-error2",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
"syn-solidity",
"tiny-keccak",
]
@@ -543,7 +543,7 @@ dependencies = [
"macro-string",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
"syn-solidity",
]
@@ -632,7 +632,7 @@ dependencies = [
"darling 0.21.3",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -815,7 +815,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60"
dependencies = [
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -853,7 +853,7 @@ dependencies = [
"num-traits",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -964,7 +964,7 @@ checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
"synstructure",
]
@@ -976,7 +976,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -1055,7 +1055,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -1066,7 +1066,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -1108,7 +1108,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -1276,7 +1276,7 @@ dependencies = [
[[package]]
name = "beacon_node"
version = "8.1.1"
version = "8.1.3"
dependencies = [
"account_utils",
"beacon_chain",
@@ -1378,7 +1378,7 @@ dependencies = [
"regex",
"rustc-hash 1.1.0",
"shlex",
"syn 2.0.111",
"syn 2.0.117",
"which",
]
@@ -1513,7 +1513,7 @@ dependencies = [
[[package]]
name = "boot_node"
version = "8.1.1"
version = "8.1.3"
dependencies = [
"beacon_node",
"bytes",
@@ -1553,7 +1553,7 @@ dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -1617,9 +1617,9 @@ dependencies = [
[[package]]
name = "c-kzg"
version = "2.1.5"
version = "2.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687"
checksum = "6648ed1e4ea8e8a1a4a2c78e1cda29a3fd500bc622899c340d8525ea9a76b24a"
dependencies = [
"blst",
"cc",
@@ -1820,7 +1820,7 @@ dependencies = [
"heck",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -2276,7 +2276,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -2334,7 +2334,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim 0.11.1",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -2349,7 +2349,7 @@ dependencies = [
"quote",
"serde",
"strsim 0.11.1",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -2371,7 +2371,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead"
dependencies = [
"darling_core 0.20.11",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -2382,7 +2382,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81"
dependencies = [
"darling_core 0.21.3",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -2442,7 +2442,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976"
dependencies = [
"data-encoding",
"syn 2.0.111",
"syn 1.0.109",
]
[[package]]
@@ -2549,7 +2549,7 @@ checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -2570,7 +2570,7 @@ dependencies = [
"darling 0.20.11",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -2580,7 +2580,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c"
dependencies = [
"derive_builder_core",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -2593,7 +2593,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustc_version 0.4.1",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -2615,7 +2615,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustc_version 0.4.1",
"syn 2.0.111",
"syn 2.0.117",
"unicode-xid",
]
@@ -2722,7 +2722,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -2817,7 +2817,7 @@ dependencies = [
"enum-ordinalize",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -3040,7 +3040,7 @@ dependencies = [
"heck",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -3060,7 +3060,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -3098,7 +3098,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [
"libc",
"windows-sys 0.61.2",
"windows-sys 0.59.0",
]
[[package]]
@@ -3287,7 +3287,7 @@ dependencies = [
"darling 0.20.11",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -3700,7 +3700,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -3819,7 +3819,7 @@ dependencies = [
"proc-macro-error2",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -3985,11 +3985,11 @@ dependencies = [
[[package]]
name = "hashlink"
version = "0.10.0"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1"
checksum = "ea0b22561a9c04a7cb1a302c013e0259cd3b4bb619f145b32f72b8b4bcbed230"
dependencies = [
"hashbrown 0.15.5",
"hashbrown 0.16.1",
]
[[package]]
@@ -4613,7 +4613,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -4729,7 +4729,7 @@ checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46"
dependencies = [
"hermit-abi",
"libc",
"windows-sys 0.61.2",
"windows-sys 0.59.0",
]
[[package]]
@@ -4897,7 +4897,7 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
[[package]]
name = "lcli"
version = "8.1.1"
version = "8.1.3"
dependencies = [
"account_utils",
"beacon_chain",
@@ -4958,9 +4958,9 @@ dependencies = [
[[package]]
name = "libc"
version = "0.2.178"
version = "0.2.183"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091"
checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d"
[[package]]
name = "libloading"
@@ -4996,7 +4996,7 @@ dependencies = [
[[package]]
name = "libp2p"
version = "0.56.1"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"bytes",
"either",
@@ -5027,7 +5027,7 @@ dependencies = [
[[package]]
name = "libp2p-allow-block-list"
version = "0.6.0"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"libp2p-core",
"libp2p-identity",
@@ -5037,7 +5037,7 @@ dependencies = [
[[package]]
name = "libp2p-connection-limits"
version = "0.6.0"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"libp2p-core",
"libp2p-identity",
@@ -5047,7 +5047,7 @@ dependencies = [
[[package]]
name = "libp2p-core"
version = "0.43.2"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"either",
"fnv",
@@ -5070,10 +5070,9 @@ dependencies = [
[[package]]
name = "libp2p-dns"
version = "0.44.0"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
version = "0.45.0"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"async-trait",
"futures",
"hickory-resolver",
"libp2p-core",
@@ -5086,7 +5085,7 @@ dependencies = [
[[package]]
name = "libp2p-gossipsub"
version = "0.50.0"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"async-channel 2.5.0",
"asynchronous-codec",
@@ -5098,7 +5097,7 @@ dependencies = [
"futures",
"futures-timer",
"getrandom 0.2.16",
"hashlink 0.10.0",
"hashlink 0.11.0",
"hex_fmt",
"libp2p-core",
"libp2p-identity",
@@ -5116,7 +5115,7 @@ dependencies = [
[[package]]
name = "libp2p-identify"
version = "0.47.0"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"asynchronous-codec",
"either",
@@ -5156,7 +5155,7 @@ dependencies = [
[[package]]
name = "libp2p-mdns"
version = "0.48.0"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"futures",
"hickory-proto",
@@ -5174,7 +5173,7 @@ dependencies = [
[[package]]
name = "libp2p-metrics"
version = "0.17.1"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"futures",
"libp2p-core",
@@ -5190,7 +5189,7 @@ dependencies = [
[[package]]
name = "libp2p-mplex"
version = "0.43.1"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"asynchronous-codec",
"bytes",
@@ -5208,7 +5207,7 @@ dependencies = [
[[package]]
name = "libp2p-noise"
version = "0.46.1"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"asynchronous-codec",
"bytes",
@@ -5230,7 +5229,7 @@ dependencies = [
[[package]]
name = "libp2p-quic"
version = "0.13.0"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"futures",
"futures-timer",
@@ -5250,14 +5249,14 @@ dependencies = [
[[package]]
name = "libp2p-swarm"
version = "0.47.0"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
version = "0.47.1"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"either",
"fnv",
"futures",
"futures-timer",
"hashlink 0.10.0",
"hashlink 0.11.0",
"libp2p-core",
"libp2p-identity",
"libp2p-swarm-derive",
@@ -5272,17 +5271,17 @@ dependencies = [
[[package]]
name = "libp2p-swarm-derive"
version = "0.35.1"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"heck",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
name = "libp2p-tcp"
version = "0.44.1"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"futures",
"futures-timer",
@@ -5297,7 +5296,7 @@ dependencies = [
[[package]]
name = "libp2p-tls"
version = "0.6.2"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"futures",
"futures-rustls",
@@ -5306,7 +5305,7 @@ dependencies = [
"rcgen",
"ring",
"rustls 0.23.35",
"rustls-webpki 0.103.8",
"rustls-webpki 0.103.10",
"thiserror 2.0.17",
"x509-parser",
"yasna",
@@ -5315,7 +5314,7 @@ dependencies = [
[[package]]
name = "libp2p-upnp"
version = "0.6.0"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"futures",
"futures-timer",
@@ -5329,7 +5328,7 @@ dependencies = [
[[package]]
name = "libp2p-yamux"
version = "0.47.0"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"either",
"futures",
@@ -5337,7 +5336,7 @@ dependencies = [
"thiserror 2.0.17",
"tracing",
"yamux 0.12.1",
"yamux 0.13.8",
"yamux 0.13.10",
]
[[package]]
@@ -5383,7 +5382,7 @@ dependencies = [
[[package]]
name = "lighthouse"
version = "8.1.1"
version = "8.1.3"
dependencies = [
"account_manager",
"account_utils",
@@ -5515,7 +5514,7 @@ dependencies = [
[[package]]
name = "lighthouse_version"
version = "8.1.1"
version = "8.1.3"
dependencies = [
"regex",
]
@@ -5673,7 +5672,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -5894,7 +5893,7 @@ dependencies = [
"cfg-if",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -5906,7 +5905,7 @@ dependencies = [
"cfg-if",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -6021,7 +6020,7 @@ dependencies = [
[[package]]
name = "multistream-select"
version = "0.13.0"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"bytes",
"futures",
@@ -6074,7 +6073,7 @@ dependencies = [
"proc-macro2",
"quote",
"serde",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -6291,7 +6290,7 @@ version = "0.50.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
dependencies = [
"windows-sys 0.61.2",
"windows-sys 0.59.0",
]
[[package]]
@@ -6385,7 +6384,7 @@ checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -6484,7 +6483,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -6649,7 +6648,7 @@ dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -6740,7 +6739,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -6913,7 +6912,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
dependencies = [
"proc-macro2",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -6955,7 +6954,7 @@ dependencies = [
"proc-macro-error-attr2",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -7022,7 +7021,7 @@ checksum = "9adf1691c04c0a5ff46ff8f262b58beb07b0dbb61f96f9f54f6cbd82106ed87f"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -7052,7 +7051,7 @@ checksum = "095a99f75c69734802359b682be8daaf8980296731f6470434ea2c652af1dd30"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -7075,7 +7074,7 @@ dependencies = [
"itertools 0.14.0",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -7129,7 +7128,7 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
[[package]]
name = "quick-protobuf"
version = "0.8.1"
source = "git+https://github.com/sigp/quick-protobuf.git?rev=681f413312404ab6e51f0b46f39b0075c6f4ebfd#681f413312404ab6e51f0b46f39b0075c6f4ebfd"
source = "git+https://github.com/sigp/quick-protobuf.git?rev=87c4ccb9bb2af494de375f5f6c62850badd26304#87c4ccb9bb2af494de375f5f6c62850badd26304"
dependencies = [
"byteorder",
]
@@ -7137,7 +7136,7 @@ dependencies = [
[[package]]
name = "quick-protobuf-codec"
version = "0.3.1"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"asynchronous-codec",
"bytes",
@@ -7169,9 +7168,9 @@ dependencies = [
[[package]]
name = "quinn-proto"
version = "0.11.13"
version = "0.11.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31"
checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098"
dependencies = [
"bytes",
"getrandom 0.3.4",
@@ -7199,7 +7198,7 @@ dependencies = [
"once_cell",
"socket2 0.6.1",
"tracing",
"windows-sys 0.60.2",
"windows-sys 0.59.0",
]
[[package]]
@@ -7412,14 +7411,14 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
name = "regex"
version = "1.12.2"
version = "1.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"
checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
dependencies = [
"aho-corasick",
"memchr",
@@ -7716,7 +7715,7 @@ dependencies = [
"errno",
"libc",
"linux-raw-sys 0.11.0",
"windows-sys 0.61.2",
"windows-sys 0.59.0",
]
[[package]]
@@ -7743,7 +7742,7 @@ dependencies = [
"once_cell",
"ring",
"rustls-pki-types",
"rustls-webpki 0.103.8",
"rustls-webpki 0.103.10",
"subtle",
"zeroize",
]
@@ -7792,9 +7791,9 @@ dependencies = [
[[package]]
name = "rustls-webpki"
version = "0.103.8"
version = "0.103.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52"
checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef"
dependencies = [
"ring",
"rustls-pki-types",
@@ -7822,7 +7821,7 @@ dependencies = [
[[package]]
name = "rw-stream-sink"
version = "0.4.0"
source = "git+https://github.com/libp2p/rust-libp2p.git#5e3519fb66b92c7f7c0dc744ab360fd8b669fe54"
source = "git+https://github.com/sigp/rust-libp2p.git?rev=defcaf1a78cf5b70a723b3fee0e0be051c1dbd88#defcaf1a78cf5b70a723b3fee0e0be051c1dbd88"
dependencies = [
"futures",
"pin-project",
@@ -8071,7 +8070,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -8095,7 +8094,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -8138,7 +8137,7 @@ dependencies = [
"darling 0.21.3",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -8603,7 +8602,7 @@ dependencies = [
"heck",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -8623,7 +8622,7 @@ dependencies = [
"proc-macro2",
"quote",
"smallvec",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -8649,9 +8648,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.111"
version = "2.0.117"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87"
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
dependencies = [
"proc-macro2",
"quote",
@@ -8667,7 +8666,7 @@ dependencies = [
"paste",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -8687,7 +8686,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -8781,7 +8780,7 @@ dependencies = [
"getrandom 0.3.4",
"once_cell",
"rustix 1.1.2",
"windows-sys 0.61.2",
"windows-sys 0.59.0",
]
[[package]]
@@ -8805,7 +8804,7 @@ name = "test_random_derive"
version = "0.2.0"
dependencies = [
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -8834,7 +8833,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -8845,7 +8844,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -9002,9 +9001,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
version = "1.48.0"
version = "1.50.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"
checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d"
dependencies = [
"bytes",
"libc",
@@ -9026,7 +9025,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -9276,7 +9275,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -9379,7 +9378,7 @@ dependencies = [
"darling 0.21.3",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -9622,7 +9621,7 @@ dependencies = [
[[package]]
name = "validator_client"
version = "8.1.1"
version = "8.1.3"
dependencies = [
"account_utils",
"beacon_node_fallback",
@@ -9984,7 +9983,7 @@ dependencies = [
"bumpalo",
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
"wasm-bindgen-shared",
]
@@ -10132,7 +10131,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [
"windows-sys 0.61.2",
"windows-sys 0.59.0",
]
[[package]]
@@ -10194,7 +10193,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -10205,7 +10204,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -10606,8 +10605,9 @@ dependencies = [
[[package]]
name = "yamux"
version = "0.13.8"
source = "git+https://github.com/sigp/rust-yamux?rev=575b17c0f44f4253079a6bafaa2de74ca1d6dfaa#575b17c0f44f4253079a6bafaa2de74ca1d6dfaa"
version = "0.13.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1991f6690292030e31b0144d73f5e8368936c58e45e7068254f7138b23b00672"
dependencies = [
"futures",
"log",
@@ -10647,7 +10647,7 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
"synstructure",
]
@@ -10668,7 +10668,7 @@ checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -10688,7 +10688,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
"synstructure",
]
@@ -10710,7 +10710,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]
@@ -10743,7 +10743,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.111",
"syn 2.0.117",
]
[[package]]

View File

@@ -91,7 +91,7 @@ resolver = "2"
[workspace.package]
edition = "2024"
version = "8.1.1"
version = "8.1.3"
[workspace.dependencies]
account_utils = { path = "common/account_utils" }
@@ -166,20 +166,7 @@ initialized_validators = { path = "validator_client/initialized_validators" }
int_to_bytes = { path = "consensus/int_to_bytes" }
itertools = "0.10"
kzg = { path = "crypto/kzg" }
libp2p = { git = "https://github.com/libp2p/rust-libp2p.git", default-features = false, features = [
"identify",
"yamux",
"noise",
"dns",
"tcp",
"tokio",
"secp256k1",
"macros",
"metrics",
"quic",
"upnp",
"gossipsub",
] }
libp2p = { git = "https://github.com/libp2p/rust-libp2p.git", default-features = false, features = ["identify", "yamux", "noise", "dns", "tcp", "tokio", "secp256k1", "macros", "metrics", "quic", "upnp", "gossipsub"] }
libsecp256k1 = "0.7"
lighthouse_network = { path = "beacon_node/lighthouse_network" }
lighthouse_validator_store = { path = "validator_client/lighthouse_validator_store" }
@@ -219,13 +206,7 @@ r2d2 = "0.8"
rand = "0.9.0"
rayon = "1.7"
regex = "1"
reqwest = { version = "0.12", default-features = false, features = [
"blocking",
"json",
"stream",
"rustls-tls",
"native-tls-vendored",
] }
reqwest = { version = "0.12", default-features = false, features = ["blocking", "json", "stream", "rustls-tls", "native-tls-vendored"] }
ring = "0.17"
rpds = "0.11"
rusqlite = { version = "0.28", features = ["bundled"] }
@@ -254,12 +235,7 @@ sysinfo = "0.26"
system_health = { path = "common/system_health" }
task_executor = { path = "common/task_executor" }
tempfile = "3"
tokio = { version = "1", features = [
"rt-multi-thread",
"sync",
"signal",
"macros",
] }
tokio = { version = "1", features = ["rt-multi-thread", "sync", "signal", "macros"] }
tokio-stream = { version = "0.1", features = ["sync"] }
tokio-util = { version = "0.7", features = ["codec", "compat", "time"] }
tracing = "0.1.40"
@@ -302,5 +278,8 @@ inherits = "release"
debug = true
[patch.crates-io]
quick-protobuf = { git = "https://github.com/sigp/quick-protobuf.git", rev = "681f413312404ab6e51f0b46f39b0075c6f4ebfd" }
yamux = { git = "https://github.com/sigp/rust-yamux", rev = "575b17c0f44f4253079a6bafaa2de74ca1d6dfaa" }
quick-protobuf = { git = "https://github.com/sigp/quick-protobuf.git", rev = "87c4ccb9bb2af494de375f5f6c62850badd26304" }
[patch."https://github.com/libp2p/rust-libp2p.git"]
libp2p = { git = "https://github.com/sigp/rust-libp2p.git", rev = "defcaf1a78cf5b70a723b3fee0e0be051c1dbd88" }
libp2p-mplex = { git = "https://github.com/sigp/rust-libp2p.git", rev = "defcaf1a78cf5b70a723b3fee0e0be051c1dbd88" }

View File

@@ -324,7 +324,7 @@ install-audit:
cargo install --force cargo-audit
audit-CI:
cargo audit
cargo audit --ignore RUSTSEC-2026-0049
# Runs cargo deny (check for banned crates, duplicate versions, and source restrictions)
deny: install-deny deny-CI

View File

@@ -1,10 +1,7 @@
[package]
name = "account_manager"
version = { workspace = true }
authors = [
"Paul Hauner <paul@paulhauner.com>",
"Luke Anderson <luke@sigmaprime.io>",
]
authors = ["Paul Hauner <paul@paulhauner.com>", "Luke Anderson <luke@sigmaprime.io>"]
edition = { workspace = true }
[dependencies]

View File

@@ -1,10 +1,7 @@
[package]
name = "beacon_node"
version = { workspace = true }
authors = [
"Paul Hauner <paul@paulhauner.com>",
"Age Manning <Age@AgeManning.com",
]
authors = ["Paul Hauner <paul@paulhauner.com>", "Age Manning <Age@AgeManning.com"]
edition = { workspace = true }
[lib]
@@ -12,10 +9,10 @@ name = "beacon_node"
path = "src/lib.rs"
[features]
write_ssz_files = [
"beacon_chain/write_ssz_files",
] # Writes debugging .ssz files to /tmp during block processing.
testing = [] # Enables testing-only CLI flags
# Writes debugging .ssz files to /tmp during block processing.
write_ssz_files = ["beacon_chain/write_ssz_files"]
# Enables testing-only CLI flags.
testing = []
[dependencies]
account_utils = { workspace = true }

View File

@@ -8,9 +8,12 @@ autotests = false # using a single test binary compiles faster
[features]
default = ["participation_metrics"]
write_ssz_files = [] # Writes debugging .ssz files to /tmp during block processing.
participation_metrics = [] # Exposes validator participation metrics to Prometheus.
fork_from_env = [] # Initialise the harness chain spec from the FORK_NAME env variable
# Writes debugging .ssz files to /tmp during block processing.
write_ssz_files = []
# Exposes validator participation metrics to Prometheus.
participation_metrics = []
# Initialise the harness chain spec from the FORK_NAME env variable
fork_from_env = []
portable = ["bls/supranational-portable"]
test_backfill = []

View File

@@ -507,11 +507,6 @@ impl<'a, T: BeaconChainTypes> IndexedAggregatedAttestation<'a, T> {
chain: &BeaconChain<T>,
) -> Result<Self, Error> {
Self::verify_slashable(signed_aggregate, chain)
.inspect(|verified_aggregate| {
if let Some(slasher) = chain.slasher.as_ref() {
slasher.accept_attestation(verified_aggregate.indexed_attestation.clone());
}
})
.map_err(|slash_info| process_slash_info(slash_info, chain))
}
@@ -933,11 +928,6 @@ impl<'a, T: BeaconChainTypes> IndexedUnaggregatedAttestation<'a, T> {
chain: &BeaconChain<T>,
) -> Result<Self, Error> {
Self::verify_slashable(attestation, subnet_id, chain)
.inspect(|verified_unaggregated| {
if let Some(slasher) = chain.slasher.as_ref() {
slasher.accept_attestation(verified_unaggregated.indexed_attestation.clone());
}
})
.map_err(|slash_info| process_slash_info(slash_info, chain))
}

View File

@@ -1,4 +1,5 @@
#![cfg(not(debug_assertions))]
#![allow(clippy::result_large_err)]
use beacon_chain::attestation_verification::{
Error, batch_verify_aggregated_attestations, batch_verify_unaggregated_attestations,

View File

@@ -1,4 +1,5 @@
#![cfg(not(debug_assertions))]
#![allow(clippy::result_large_err)]
use beacon_chain::block_verification_types::RpcBlock;
use beacon_chain::{

View File

@@ -1,4 +1,5 @@
#![cfg(not(debug_assertions))]
#![allow(clippy::result_large_err)]
use beacon_chain::attestation_verification::Error as AttnError;
use beacon_chain::block_verification_types::RpcBlock;

View File

@@ -2205,7 +2205,7 @@ fn verify_builder_bid<E: EthSpec>(
.cloned()
.map(|withdrawals| {
Withdrawals::<E>::try_from(withdrawals)
.map_err(InvalidBuilderPayload::SszTypesError)
.map_err(|e| Box::new(InvalidBuilderPayload::SszTypesError(e)))
.map(|w| w.tree_hash_root())
})
.transpose()?;

View File

@@ -1,3 +1,4 @@
#![allow(clippy::result_large_err)]
//! This crate contains a HTTP server which serves the endpoints listed here:
//!
//! https://github.com/ethereum/beacon-APIs

View File

@@ -46,7 +46,7 @@ ELECTRA_FORK_VERSION: 0x05000064
ELECTRA_FORK_EPOCH: 1337856 # 2025-04-30T14:03:40.000Z
# Fulu
FULU_FORK_VERSION: 0x06000064
FULU_FORK_EPOCH: 18446744073709551615
FULU_FORK_EPOCH: 1714688 # Tue Apr 14 2026 12:06:20 GMT+0000
# Gloas
GLOAS_FORK_VERSION: 0x07000064
GLOAS_FORK_EPOCH: 18446744073709551615
@@ -156,6 +156,11 @@ NUMBER_OF_CUSTODY_GROUPS: 128
DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128
SAMPLES_PER_SLOT: 8
CUSTODY_REQUIREMENT: 4
VALIDATOR_CUSTODY_REQUIREMENT: 8
BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000
MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384
# `2**14` (= 16384 epochs, ~15 days)
MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 16384
MAX_BLOBS_PER_BLOCK_FULU: 12
# Gloas

View File

@@ -5,7 +5,8 @@ authors = ["blacktemplar <blacktemplar@a1.net>"]
edition = { workspace = true }
[features]
test_logger = [] # Print log output to stderr when running tests instead of dropping it
# Print log output to stderr when running tests instead of dropping it.
test_logger = []
[dependencies]
chrono = { version = "0.4", default-features = false, features = ["clock", "std"] }
@@ -13,7 +14,7 @@ logroller = { workspace = true }
metrics = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
tokio = { workspace = true, features = [ "time" ] }
tokio = { workspace = true, features = ["time"] }
tracing = { workspace = true }
tracing-appender = { workspace = true }
tracing-core = { workspace = true }

View File

@@ -35,7 +35,4 @@ tikv-jemallocator = { version = "0.6.0", optional = true, features = ["stats"] }
# Jemalloc's background_threads feature requires Linux (pthreads).
[target.'cfg(target_os = "linux")'.dependencies]
tikv-jemallocator = { version = "0.6.0", optional = true, features = [
"stats",
"background_threads",
] }
tikv-jemallocator = { version = "0.6.0", optional = true, features = ["stats", "background_threads"] }

View File

@@ -4,8 +4,8 @@ use milhouse::List;
use std::sync::Arc;
use types::{
BeaconStateError, Epoch, EthSpec, ParticipationFlags, ProgressiveBalancesCache, SyncCommittee,
Validator,
consts::altair::{TIMELY_HEAD_FLAG_INDEX, TIMELY_SOURCE_FLAG_INDEX, TIMELY_TARGET_FLAG_INDEX},
state::Validators,
};
/// Provides a summary of validator participation during the epoch.
@@ -26,7 +26,7 @@ pub enum EpochProcessingSummary<E: EthSpec> {
#[derive(PartialEq, Debug)]
pub struct ParticipationEpochSummary<E: EthSpec> {
/// Copy of the validator registry prior to mutation.
validators: List<Validator, E::ValidatorRegistryLimit>,
validators: Validators<E>,
/// Copy of the participation flags for the previous epoch.
previous_epoch_participation: List<ParticipationFlags, E::ValidatorRegistryLimit>,
/// Copy of the participation flags for the current epoch.
@@ -37,7 +37,7 @@ pub struct ParticipationEpochSummary<E: EthSpec> {
impl<E: EthSpec> ParticipationEpochSummary<E> {
pub fn new(
validators: List<Validator, E::ValidatorRegistryLimit>,
validators: Validators<E>,
previous_epoch_participation: List<ParticipationFlags, E::ValidatorRegistryLimit>,
current_epoch_participation: List<ParticipationFlags, E::ValidatorRegistryLimit>,
previous_epoch: Epoch,

View File

@@ -1,10 +1,7 @@
[package]
name = "types"
version = "0.2.1"
authors = [
"Paul Hauner <paul@paulhauner.com>",
"Age Manning <Age@AgeManning.com>",
]
authors = ["Paul Hauner <paul@paulhauner.com>", "Age Manning <Age@AgeManning.com>"]
edition = { workspace = true }
[features]

View File

@@ -1604,7 +1604,7 @@ impl ChainSpec {
* Fulu hard fork params
*/
fulu_fork_version: [0x06, 0x00, 0x00, 0x64],
fulu_fork_epoch: None,
fulu_fork_epoch: Some(Epoch::new(1714688)),
custody_requirement: 4,
number_of_custody_groups: 128,
data_column_sidecar_subnet_count: 128,
@@ -1673,8 +1673,7 @@ impl ChainSpec {
* Networking Fulu specific
*/
blob_schedule: BlobSchedule::default(),
min_epochs_for_data_column_sidecars_requests:
default_min_epochs_for_data_column_sidecars_requests(),
min_epochs_for_data_column_sidecars_requests: 16384,
max_data_columns_by_root_request: default_data_columns_by_root_request(),
/*

View File

@@ -14,6 +14,7 @@ use serde::{Deserialize, Deserializer, Serialize};
use ssz::{Decode, DecodeError, Encode, ssz_encode};
use ssz_derive::{Decode, Encode};
use ssz_types::{BitVector, FixedVector};
use std::collections::BTreeMap;
use superstruct::superstruct;
use swap_or_not_shuffle::compute_shuffled_index;
use test_random_derive::TestRandom;
@@ -58,7 +59,8 @@ pub const CACHED_EPOCHS: usize = 3;
const MAX_RANDOM_BYTE: u64 = (1 << 8) - 1;
const MAX_RANDOM_VALUE: u64 = (1 << 16) - 1;
pub type Validators<E> = List<Validator, <E as EthSpec>::ValidatorRegistryLimit>;
pub type Validators<E> =
List<Validator, <E as EthSpec>::ValidatorRegistryLimit, BTreeMap<usize, Validator>>;
pub type Balances<E> = List<u64, <E as EthSpec>::ValidatorRegistryLimit>;
#[derive(Debug, PartialEq, Clone)]
@@ -453,7 +455,7 @@ where
// Registry
#[compare_fields(as_iter)]
#[test_random(default)]
pub validators: List<Validator, E::ValidatorRegistryLimit>,
pub validators: Validators<E>,
#[serde(with = "ssz_types::serde_utils::quoted_u64_var_list")]
#[compare_fields(as_iter)]
#[test_random(default)]

View File

@@ -17,7 +17,7 @@ pub use balance::Balance;
pub use beacon_state::{
BeaconState, BeaconStateAltair, BeaconStateBase, BeaconStateBellatrix, BeaconStateCapella,
BeaconStateDeneb, BeaconStateElectra, BeaconStateError, BeaconStateFulu, BeaconStateGloas,
BeaconStateHash, BeaconStateRef, CACHED_EPOCHS,
BeaconStateHash, BeaconStateRef, CACHED_EPOCHS, Validators,
};
pub use committee_cache::{
CommitteeCache, compute_committee_index_in_epoch, compute_committee_range_in_epoch,

View File

@@ -1,3 +1,4 @@
#![allow(clippy::result_large_err)]
mod service;
pub use service::SlasherService;

View File

@@ -2,8 +2,17 @@ use crate::{AttesterRecord, Config, IndexedAttesterRecord};
use parking_lot::Mutex;
use std::collections::BTreeMap;
use std::sync::{Arc, Weak};
use tracing::warn;
use types::{EthSpec, Hash256, IndexedAttestation};
/// Hard cap on validator indices accepted by the slasher.
///
/// Any attestation referencing a validator index above this limit is silently dropped during
/// grouping. This is a defence-in-depth measure to prevent pathological memory allocation if an
/// attestation with a bogus index somehow reaches the slasher. The value (2^23 = 8,388,608)
/// provides generous headroom above the current mainnet validator set (~2M).
const MAX_VALIDATOR_INDEX: u64 = 8_388_608;
/// Staging area for attestations received from the network.
///
/// Attestations are not grouped by validator index at this stage so that they can be easily
@@ -72,6 +81,14 @@ impl<E: EthSpec> AttestationBatch<E> {
let mut grouped_attestations = GroupedAttestations { subqueues: vec![] };
for ((validator_index, _), indexed_record) in self.attesters {
if validator_index >= MAX_VALIDATOR_INDEX {
warn!(
validator_index,
"Dropping slasher attestation with out-of-range validator index"
);
continue;
}
let subqueue_id = config.validator_chunk_index(validator_index);
if subqueue_id >= grouped_attestations.subqueues.len() {