Skip to content

Commit 2c4499a

Browse files
authored
feat: add Weighted Attestation Data (WAD) docs (#2116)
1 parent dd4a834 commit 2c4499a

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

beacon/goclient/WAD.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Weighted Attestation Data (WAD)
2+
3+
## Description
4+
5+
**Weighted Attestation Data (WAD)** is a feature designed to improve the correctness of attestations by utilizing all configured Beacon nodes for fetching and evaluating attestation data during the Beacon duty processing flow.
6+
7+
When enabled, the SSV Node will concurrently request attestation data from all configured Beacon nodes. Each response is then scored based on:
8+
9+
- **Source and Target Epochs** returned in the attestation data
10+
- **Proximity of the Block Root to the Slot** for which the attestation data was requested
11+
12+
The response with the **highest score** is selected. This mechanism is expected to improve the accuracy of the attestation head votes over time.
13+
14+
## Trade-offs
15+
16+
Fetching attestation data is part of the consensus duty flow. With WAD enabled, this phase may take slightly longer, as it waits for multiple responses. However, the implementation includes several **safeguards** (e.g., soft/hard timeouts, retries) to avoid negative impact from unresponsive or slow Beacon nodes.
17+
18+
To fully benefit from this feature, the SSV Node **must** be configured with **more than one Beacon node**. Enabling WAD with a single node has no performance gain.
19+
20+
## Recommended Companion Feature
21+
22+
It is **recommended** (but not required) to enable **Parallel Submissions** alongside WAD to further enhance node performance. This will submit the same duties to all Beacon nodes concurrently, increasing the load on the Beacon nodes to submit the duties at the fastest rate possible.
23+
24+
Related configuration: `WITH_PARALLEL_SUBMISSIONS` (environment variable) or `eth2.WithParallelSubmissions` (in `config.yaml`).
25+
26+
## Configuration
27+
28+
WAD is **disabled by default**. To enable it and configure properly:
29+
30+
```yaml
31+
eth2:
32+
WithWeightedAttestationData: true # Enable WAD feature
33+
BeaconNodeAddr: http://localhost:5052;http://localhost:5053 # Multiple beacon nodes required
34+
WithParallelSubmissions: true # Recommended for optimal performance
35+
```
36+
37+
Or using environment variables:
38+
```env
39+
WITH_WEIGHTED_ATTESTATION_DATA=true
40+
BEACON_NODE_ADDR=http://localhost:5052;http://localhost:5053
41+
WITH_PARALLEL_SUBMISSIONS=true
42+
```
43+
44+
Note: Multiple Beacon nodes are required for WAD to be effective. Parallel submissions are recommended but not required.

0 commit comments

Comments
 (0)