Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 0 additions & 10 deletions .cargo/audit.toml

This file was deleted.

20 changes: 18 additions & 2 deletions .github/workflows/test-suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,14 +100,29 @@ jobs:
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly-ca67d15f4abd46394b324c50e21e66f306a1162d
- name: Clear stale leveldb-sys cmake cache
run: rm -rf target/release/build/leveldb-sys-*/out/build 2>/dev/null || true
- name: Run tests in release
run: make test-release
- name: Show cache stats
if: env.SELF_HOSTED_RUNNERS == 'true'
continue-on-error: true
run: sccache --show-stats
proof-engine-tests:
name: proof-engine-tests
needs: [check-labels]
if: needs.check-labels.outputs.skip_ci != 'true'
runs-on: ${{ github.repository == 'sigp/lighthouse' && 'warp-ubuntu-latest-x64-4x' || 'ubuntu-latest' }}
steps:
- uses: actions/checkout@v5
- name: Get latest version of stable Rust
uses: moonrepo/setup-rust@v1
with:
channel: stable
cache-target: release
bins: cargo-nextest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Run proof engine tests sequentially
run: make test-proof-engine
beacon-chain-tests:
name: beacon-chain-tests
needs: [check-labels]
Expand Down Expand Up @@ -443,6 +458,7 @@ jobs:
'check-labels',
'target-branch-check',
'release-tests-ubuntu',
'proof-engine-tests',
'beacon-chain-tests',
'op-pool-tests',
'network-tests',
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/zkboost-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,5 @@ jobs:
bins: cargo-nextest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clear stale leveldb-sys cmake cache
run: rm -rf target/release/build/leveldb-sys-*/out/build 2>/dev/null || true
- name: Run proof_engine_zkboost integration tests
run: make test-zkboost
72 changes: 46 additions & 26 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 8 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,13 @@ build-release-tarballs:
test-release:
cargo nextest run --workspace --release --features "$(TEST_FEATURES)" \
--exclude ef_tests --exclude beacon_chain --exclude slasher --exclude network \
--exclude http_api
--exclude http_api --exclude proof_engine_test

# Runs the proof engine integration tests sequentially so they are not starved of
# CPU by the parallel test-release job. Each test spawns multiple beacon nodes and
# is sensitive to slot timing, so dedicated sequential execution is required.
test-proof-engine:
cargo nextest run -p proof_engine_test --release --test-threads 1


# Runs the full workspace tests in **debug**, without downloading any additional test
Expand Down Expand Up @@ -328,7 +334,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
Expand Down
7 changes: 6 additions & 1 deletion beacon_node/beacon_chain/src/beacon_chain.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7529,7 +7529,12 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
&self,
) -> tokio::sync::broadcast::Receiver<crate::internal_events::InternalBeaconNodeEvent> {
self.internal_event_tx
.get_or_init(|| tokio::sync::broadcast::channel(64).0)
.get_or_init(|| {
tokio::sync::broadcast::channel(
crate::internal_events::INTERNAL_EVENT_CHANNEL_CAPACITY,
)
.0
})
.subscribe()
}

Expand Down
15 changes: 13 additions & 2 deletions beacon_node/beacon_chain/src/internal_events.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,18 @@
//! no subscriber is ever registered.

use std::sync::Arc;
use types::execution::eip8025::{ProofStatus, SignedExecutionProof};
use types::execution::eip8025::{ProofByRootIdentifier, ProofStatus, SignedExecutionProof};
use types::{Hash256, Slot};

/// Capacity of the internal event broadcast channel.
///
/// The channel is lazily initialised only when a subscriber calls
/// [`BeaconChain::subscribe_internal_events`], so this has no overhead in
/// production where no subscriber is ever registered. The value is sized
/// generously to absorb the burst of events emitted when a late-joining node
/// rapidly imports a backlog of blocks during sync.
pub const INTERNAL_EVENT_CHANNEL_CAPACITY: usize = 16384;

/// Event emitted on the per-node internal event bus.
///
/// Each variant wraps the real message or result type that is already present at the emission
Expand All @@ -22,7 +31,9 @@ pub enum InternalBeaconNodeEvent {
/// An outbound `ExecutionProofsByRange` RPC request was sent to a peer.
OutboundExecutionProofsByRange { start_slot: Slot, count: u64 },
/// An outbound `ExecutionProofsByRoot` RPC request was sent to a peer.
OutboundExecutionProofsByRoot { block_root: Hash256 },
OutboundExecutionProofsByRoot {
identifiers: Vec<ProofByRootIdentifier>,
},
/// `verify_execution_proof` completed; carries the status and, when the block is known,
/// its root and slot.
ExecutionProofVerified {
Expand Down
Loading
Loading