Skip to content

Commit f93f848

Browse files
authored
Merge of #5934
2 parents f69ccc3 + 3af6b8a commit f93f848

File tree

6 files changed

+52
-16
lines changed

6 files changed

+52
-16
lines changed

book/src/checkpoint-sync.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,19 @@ For more information on historic state storage see the
146146
147147
To manually specify a checkpoint use the following two flags:
148148

149-
* `--checkpoint-state`: accepts an SSZ-encoded `BeaconState` blob
150-
* `--checkpoint-block`: accepts an SSZ-encoded `SignedBeaconBlock` blob
149+
* `--checkpoint-state`: accepts an SSZ-encoded `BeaconState` file
150+
* `--checkpoint-block`: accepts an SSZ-encoded `SignedBeaconBlock` file
151+
* `--checkpoint-blobs`: accepts an SSZ-encoded `Blobs` file
152+
153+
The command is as following:
154+
155+
```bash
156+
curl -H "Accept: application/octet-stream" "http://localhost:5052/eth/v2/debug/beacon/states/$SLOT" > state.ssz
157+
curl -H "Accept: application/octet-stream" "http://localhost:5052/eth/v2/beacon/blocks/$SLOT" > block.ssz
158+
curl -H "Accept: application/octet-stream" "http://localhost:5052/eth/v1/beacon/blob_sidecars/$SLOT" > blobs.ssz
159+
```
160+
161+
where `$SLOT` is the slot number. It can be specified as `head` or `finalized` as well.
151162

152163
_Both_ the state and block must be provided and the state **must** match the block. The
153164
state may be from the same slot as the block (unadvanced), or advanced to an epoch boundary,

book/src/database-migrations.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ validator client or the slasher**.
1616

1717
| Lighthouse version | Release date | Schema version | Downgrade available? |
1818
|--------------------|--------------|----------------|----------------------|
19+
| v5.2.0 | Jun 2024 | v19 | yes before Deneb |
1920
| v5.1.0 | Mar 2024 | v19 | yes before Deneb |
2021
| v5.0.0 | Feb 2024 | v19 | yes before Deneb |
2122
| v4.6.0 | Dec 2023 | v19 | yes before Deneb |

book/src/faq.md

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
- [My beacon node logs `WARN Error signalling fork choice waiter`, what should I do?](#bn-fork-choice)
1616
- [My beacon node logs `ERRO Aggregate attestation queue full`, what should I do?](#bn-queue-full)
1717
- [My beacon node logs `WARN Failed to finalize deposit cache`, what should I do?](#bn-deposit-cache)
18+
- [My beacon node logs `WARN Could not verify blob sidecar for gossip`, what does it mean?](#bn-blob)
1819

1920
## [Validator](#validator-1)
2021

@@ -214,6 +215,16 @@ This suggests that the computer resources are being overwhelmed. It could be due
214215

215216
This is a known [bug](https://github.com/sigp/lighthouse/issues/3707) that will fix by itself.
216217

218+
### <a name="bn-blob"></a> My beacon node logs `WARN Could not verify blob sidecar for gossip`, what does it mean?
219+
220+
An example of the full log is shown below:
221+
222+
```text
223+
Jun 07 23:05:12.170 WARN Could not verify blob sidecar for gossip. Ignoring the blob sidecar, commitment: 0xaa97…6f54, index: 1, root: 0x93b8…c47c, slot: 9248017, error: PastFinalizedSlot { blob_slot: Slot(9248017), finalized_slot: Slot(9248032) }, module: network::network_beacon_processor::gossip_methods:720
224+
```
225+
226+
The `PastFinalizedSlot` indicates that the time at which the node received the blob has past the finalization period. This could be due to a peer sending an earlier blob. The log will be gone when Lighthouse eventually drops the peer.
227+
217228
## Validator
218229

219230
### <a name="vc-activation"></a> Why does it take so long for a validator to be activated?
@@ -327,13 +338,24 @@ The first thing is to ensure both consensus and execution clients are synced wit
327338

328339
You can see more information on the [Ethstaker KB](https://ethstaker.gitbook.io/ethstaker-knowledge-base/help/missed-attestations).
329340

330-
Another cause for missing attestations is delays during block processing. When this happens, the debug logs will show (debug logs can be found under `$datadir/beacon/logs`):
341+
Another cause for missing attestations is the block arriving late, or there are delays during block processing.
342+
343+
An example of the log: (debug logs can be found under `$datadir/beacon/logs`):
331344

332345
```text
333-
DEBG Delayed head block set_as_head_delay: Some(93.579425ms), imported_delay: Some(1.460405278s), observed_delay: Some(2.540811921s), block_delay: 4.094796624s, slot: 6837344, proposer_index: 211108, block_root: 0x2c52231c0a5a117401f5231585de8aa5dd963bc7cbc00c544e681342eedd1700, service: beacon
346+
Delayed head block, set_as_head_time_ms: 27, imported_time_ms: 168, attestable_delay_ms: 4209, available_delay_ms: 4186, execution_time_ms: 201, blob_delay_ms: 3815, observed_delay_ms: 3984, total_delay_ms: 4381, slot: 1886014, proposer_index: 733, block_root: 0xa7390baac88d50f1cbb5ad81691915f6402385a12521a670bbbd4cd5f8bf3934, service: beacon, module: beacon_chain::canonical_head:1441
334347
```
335348

336-
The fields to look for are `imported_delay > 1s` and `observed_delay < 3s`. The `imported_delay` is how long the node took to process the block. The `imported_delay` of larger than 1 second suggests that there is slowness in processing the block. It could be due to high CPU usage, high I/O disk usage or the clients are doing some background maintenance processes. The `observed_delay` is determined mostly by the proposer and partly by your networking setup (e.g., how long it took for the node to receive the block). The `observed_delay` of less than 3 seconds means that the block is not arriving late from the block proposer. Combining the above, this implies that the validator should have been able to attest to the block, but failed due to slowness in the node processing the block.
349+
The field to look for is `attestable_delay`, which defines the time when a block is ready for the validator to attest. If the `attestable_delay` is greater than 4s which has past the window of attestation, the attestation wil fail. In the above example, the delay is mostly caused by late block observed by the node, as shown in `observed_delay`. The `observed_delay` is determined mostly by the proposer and partly by your networking setup (e.g., how long it took for the node to receive the block). Ideally, `observed_delay` should be less than 3 seconds. In this example, the validator failed to attest the block due to the block arriving late.
350+
351+
Another example of log:
352+
353+
```
354+
DEBG Delayed head block, set_as_head_time_ms: 22, imported_time_ms: 312, attestable_delay_ms: 7052, available_delay_ms: 6874, execution_time_ms: 4694, blob_delay_ms: 2159, observed_delay_ms: 2179, total_delay_ms: 7209, slot: 1885922, proposer_index: 606896, block_root: 0x9966df24d24e722d7133068186f0caa098428696e9f441ac416d0aca70cc0a23, service: beacon, module: beacon_chain::canonical_head:1441
355+
/159.69.68.247/tcp/9000, service: libp2p, module: lighthouse_network::service:1811
356+
```
357+
358+
In this example, we see that the `execution_time_ms` is 4694ms. The `execution_time_ms` is how long the node took to process the block. The `execution_time_ms` of larger than 1 second suggests that there is slowness in processing the block. If the `execution_time_ms` is high, it could be due to high CPU usage, high I/O disk usage or the clients are doing some background maintenance processes.
337359

338360
### <a name="vc-head-vote"></a> Sometimes I miss the attestation head vote, resulting in penalty. Is this normal?
339361

@@ -514,21 +536,23 @@ If you would still like to subscribe to all subnets, you can use the flag `subsc
514536

515537
### <a name="net-quic"></a> How to know how many of my peers are connected via QUIC?
516538

517-
With `--metrics` enabled in the beacon node, you can find the number of peers connected via QUIC using:
539+
With `--metrics` enabled in the beacon node, the [Grafana Network dashboard](https://github.com/sigp/lighthouse-metrics/blob/master/dashboards/Network.json) displays the connected by transport, which will show the number of peers connected via QUIC.
540+
541+
Alternatively, you can find the number of peers connected via QUIC manually using:
518542

519543
```bash
520-
curl -s "http://localhost:5054/metrics" | grep libp2p_quic_peers
544+
curl -s "http://localhost:5054/metrics" | grep 'transport="quic"'
521545
```
522546

523547
A response example is:
524548

525549
```text
526-
# HELP libp2p_quic_peers Count of libp2p peers currently connected via QUIC
527-
# TYPE libp2p_quic_peers gauge
528-
libp2p_quic_peers 4
550+
libp2p_peers_multi{direction="inbound",transport="quic"} 27
551+
libp2p_peers_multi{direction="none",transport="quic"} 0
552+
libp2p_peers_multi{direction="outbound",transport="quic"} 9
529553
```
530554

531-
which shows that there are 4 peers connected via QUIC.
555+
which shows that there are a total of 36 peers connected via QUIC.
532556

533557
## Miscellaneous
534558

book/src/slasher.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,13 +114,13 @@ changed after initialization.
114114

115115
* Flag: `--slasher-max-db-size GIGABYTES`
116116
* Argument: maximum size of the database in gigabytes
117-
* Default: 256 GB
117+
* Default: 512 GB
118118

119119
Both database backends LMDB and MDBX place a hard limit on the size of the database
120120
file. You can use the `--slasher-max-db-size` flag to set this limit. It can be adjusted after
121121
initialization if the limit is reached.
122122

123-
By default the limit is set to accommodate the default history length and around 600K validators (with about 30% headroom) but
123+
By default the limit is set to accommodate the default history length and around 1 million validators but
124124
you can set it lower if running with a reduced history length. The space required scales
125125
approximately linearly in validator count and history length, i.e. if you halve either you can halve
126126
the space required.

book/src/slashing-protection.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ Once you have the slashing protection database from your existing client, you ca
7575
using this command:
7676

7777
```bash
78-
lighthouse account validator slashing-protection import <my_interchange.json>
78+
lighthouse account validator slashing-protection import filename.json
7979
```
8080

8181
When importing an interchange file, you still need to import the validator keystores themselves
@@ -86,7 +86,7 @@ separately, using the instructions for [import validator keys](./mainnet-validat
8686
You can export Lighthouse's database for use with another client with this command:
8787

8888
```
89-
lighthouse account validator slashing-protection export <lighthouse_interchange.json>
89+
lighthouse account validator slashing-protection export filename.json
9090
```
9191

9292
The validator client needs to be stopped in order to export, to guarantee that the data exported is

slasher/src/config.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pub const DEFAULT_VALIDATOR_CHUNK_SIZE: usize = 256;
1111
pub const DEFAULT_HISTORY_LENGTH: usize = 4096;
1212
pub const DEFAULT_UPDATE_PERIOD: u64 = 12;
1313
pub const DEFAULT_SLOT_OFFSET: f64 = 10.5;
14-
pub const DEFAULT_MAX_DB_SIZE: usize = 256 * 1024; // 256 GiB
14+
pub const DEFAULT_MAX_DB_SIZE: usize = 512 * 1024; // 512 GiB
1515
pub const DEFAULT_ATTESTATION_ROOT_CACHE_SIZE: NonZeroUsize = new_non_zero_usize(100_000);
1616
pub const DEFAULT_BROADCAST: bool = false;
1717

0 commit comments

Comments
 (0)