Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
ea45814
using events api for eager start attestation tasks
hopinheimer Aug 18, 2025
6f20083
merge `origin/unstable` into `hopinheimer/eager-send-attestation`
hopinheimer Aug 18, 2025
46fe220
minor nits
hopinheimer Aug 18, 2025
de7226f
clippy chill vibes
hopinheimer Aug 18, 2025
5f2a101
missed something
hopinheimer Aug 18, 2025
ae16705
linty
hopinheimer Aug 18, 2025
c13d0c3
implemented head monitoring service
hopinheimer Sep 19, 2025
8405f01
Merge branch 'unstable' of github.com:sigp/lighthouse into eager-send…
hopinheimer Sep 19, 2025
65e04fb
merge from feature branch
hopinheimer Sep 19, 2025
a1d36e6
fixing some linting issues
hopinheimer Sep 19, 2025
a489d32
comments and removing unwanted code
hopinheimer Sep 20, 2025
2b974db
clippy change
hopinheimer Sep 20, 2025
5600aef
Merge branch 'unstable' into eager-send-attestation
hopinheimer Oct 15, 2025
b65fc30
same data attestation bug solved
hopinheimer Oct 16, 2025
9024931
Merge branch 'unstable' into eager-send-attestation
hopinheimer Oct 20, 2025
b25703f
fixing dangling conditions and amaking head_monitor_service optional
hopinheimer Oct 20, 2025
e68548b
Merge branch 'eager-send-attestation' of github.com:hopinheimer/light…
hopinheimer Oct 20, 2025
c4d851c
fmt
hopinheimer Oct 20, 2025
daf5b2e
update comment
hopinheimer Oct 20, 2025
c49b8eb
Merge branch 'unstable' into eager-send-attestation
hopinheimer Oct 25, 2025
0e35ee5
massive refact
hopinheimer Oct 28, 2025
29867d2
fixes and linting
hopinheimer Oct 29, 2025
fd43876
remove unused code
hopinheimer Oct 31, 2025
b054a10
changes
hopinheimer Nov 1, 2025
eb057d0
Merge branch 'unstable' into eager-send-attestation
hopinheimer Nov 2, 2025
91e5980
Merge branch 'unstable' into eager-send-attestation
hopinheimer Nov 5, 2025
2e0c78c
Merge branch 'unstable' into eager-send-attestation
hopinheimer Nov 10, 2025
32eed9a
addressing comments
hopinheimer Nov 10, 2025
dac9f00
removing unwanted logs
hopinheimer Nov 11, 2025
bf1471c
fmt
hopinheimer Nov 11, 2025
9794737
Merge branch 'unstable' into eager-send-attestation
hopinheimer Nov 11, 2025
b20ded5
Merge branch 'unstable' into eager-send-attestation
hopinheimer Nov 12, 2025
39b9a58
fixing a unwanted service starting bug
hopinheimer Nov 14, 2025
2e6a8f9
Merge branch 'unstable' into eager-send-attestation
hopinheimer Nov 26, 2025
07d9a12
making the service feature flagged
hopinheimer Nov 26, 2025
a82960b
cleaned up some logic
hopinheimer Nov 26, 2025
6bddeeb
fix
hopinheimer Nov 26, 2025
409d937
updating docs
hopinheimer Nov 26, 2025
0d8160f
addressing comments
hopinheimer Nov 27, 2025
5e8c62b
Create attestation data service
eserilev Dec 1, 2025
4ea159b
Resolve merge conflicts
eserilev Dec 1, 2025
4d2e7e8
Merge conlficts
eserilev Dec 1, 2025
cc0be9f
Fix
eserilev Dec 1, 2025
b14ab28
fix
eserilev Dec 1, 2025
6ffcfdb
Clean up
eserilev Dec 1, 2025
70e6d18
testsss
hopinheimer Dec 1, 2025
84c8291
fmt
hopinheimer Dec 1, 2025
f174615
Merge branch 'eager-send-attestation' of github.com:hopinheimer/light…
hopinheimer Dec 1, 2025
cf9219b
Merge branch 'unstable' of https://github.com/sigp/lighthouse into at…
eserilev Dec 1, 2025
468fe8a
Merge branch 'unstable' of https://github.com/sigp/lighthouse into ea…
eserilev Dec 1, 2025
373f114
Merge branch 'eager-send-attestation' into attestation-data-service
eserilev Dec 1, 2025
5ce62b8
Test
eserilev Dec 1, 2025
69b8128
Remove write lock
eserilev Dec 3, 2025
1701118
Fmt
eserilev Dec 3, 2025
bdf62d9
Merge branch 'eager-send-attestation' of https://github.com/hopinheim…
eserilev Dec 3, 2025
94af503
Resolve merge conflicts
eserilev Dec 3, 2025
f25dce5
Resolve merge conflicts
eserilev Dec 3, 2025
833e074
fmt
eserilev Dec 9, 2025
ba92311
Implement consensus mechanism
eserilev Dec 9, 2025
d456dc8
Set default threshold to 3, just for testing
eserilev Dec 9, 2025
eb07e8f
Fix
eserilev Dec 9, 2025
618b686
Add score aggregation
eserilev Dec 10, 2025
c93bef2
fix
eserilev Dec 10, 2025
1665bbf
Merge conflicts
eserilev Jan 31, 2026
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
3 changes: 3 additions & 0 deletions Cargo.lock

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

7 changes: 7 additions & 0 deletions book/src/help_vc.md
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,13 @@ Flags:
--distributed
Enables functionality required for running the validator in a
distributed validator cluster.
--enable-beacon-head-monitor
Enable the beacon head monitor so fallback head updates trigger duties
when a lagging primary is detected. This keeps the attestation
service responsive when using multiple beacon nodes, but it relies on
the fallback service streaming head events which may increase network
usage. When not enabled (default), duties are only triggered on slot
boundaries and ignore fallback head changes.
--enable-doppelganger-protection
If this flag is set, Lighthouse will delay startup for three epochs
and monitor for messages on the network by any of the validators
Expand Down
17 changes: 17 additions & 0 deletions common/eth2/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ pub struct BeaconNodeHttpClient {
client: reqwest::Client,
server: SensitiveUrl,
timeouts: Timeouts,
index: usize,
}

impl Eq for BeaconNodeHttpClient {}
Expand All @@ -168,18 +169,34 @@ impl BeaconNodeHttpClient {
client: reqwest::Client::new(),
server,
timeouts,
index: 0,
}
}

pub fn index(&self) -> usize {
self.index
}

pub fn new_with_index(server: SensitiveUrl, timeouts: Timeouts, index: usize) -> Self {
Self {
client: reqwest::Client::new(),
server,
timeouts,
index,
}
}

pub fn from_components(
server: SensitiveUrl,
client: reqwest::Client,
timeouts: Timeouts,
index: usize,
) -> Self {
Self {
client,
server,
timeouts,
index,
}
}
// Returns a reference to the `SensitiveUrl` of the server.
Expand Down
4 changes: 4 additions & 0 deletions consensus/types/src/core/slot_epoch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ impl Slot {
pub fn max_value() -> Slot {
Slot(u64::MAX)
}

pub fn is_start_slot_in_epoch(&self, slots_per_epoch: u64) -> bool {
self.0.is_multiple_of(slots_per_epoch)
}
}

impl Epoch {
Expand Down
1 change: 1 addition & 0 deletions testing/node_test_rig/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ impl<E: EthSpec> LocalBeaconNode<E> {
beacon_node_url,
beacon_node_http_client,
Timeouts::set_all(HTTP_TIMEOUT),
0,
))
}
}
Expand Down
5 changes: 3 additions & 2 deletions testing/validator_test_rig/src/mock_beacon_node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@ pub struct MockBeaconNode<E: EthSpec> {
}

impl<E: EthSpec> MockBeaconNode<E> {
pub async fn new() -> Self {
pub async fn new(index: usize) -> Self {
// mock server logging
let server = Server::new_async().await;
let beacon_api_client = BeaconNodeHttpClient::new(
let beacon_api_client = BeaconNodeHttpClient::new_with_index(
SensitiveUrl::from_str(&server.url()).unwrap(),
Timeouts::set_all(Duration::from_secs(1)),
index,
);
Self {
server,
Expand Down
Loading
Loading