mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-21 22:04:44 +00:00
Implement checkpoint sync (#2244)
## Issue Addressed Closes #1891 Closes #1784 ## Proposed Changes Implement checkpoint sync for Lighthouse, enabling it to start from a weak subjectivity checkpoint. ## Additional Info - [x] Return unavailable status for out-of-range blocks requested by peers (#2561) - [x] Implement sync daemon for fetching historical blocks (#2561) - [x] Verify chain hashes (either in `historical_blocks.rs` or the calling module) - [x] Consistency check for initial block + state - [x] Fetch the initial state and block from a beacon node HTTP endpoint - [x] Don't crash fetching beacon states by slot from the API - [x] Background service for state reconstruction, triggered by CLI flag or API call. Considered out of scope for this PR: - Drop the requirement to provide the `--checkpoint-block` (this would require some pretty heavy refactoring of block verification) Co-authored-by: Diva M <divma@protonmail.com>
This commit is contained in:
@@ -353,4 +353,58 @@ curl -X POST "http://localhost:5052/lighthouse/liveness" -d '{"indices":["0","1"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
```
|
||||
|
||||
### `/lighthouse/database/info`
|
||||
|
||||
Information about the database's split point and anchor info.
|
||||
|
||||
```bash
|
||||
curl "http://localhost:5052/lighthouse/database/info" | jq
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
"schema_version": 5,
|
||||
"split": {
|
||||
"slot": "2034912",
|
||||
"state_root": "0x11c8516aa7d4d1613e84121e3a557ceca34618b4c1a38f05b66ad045ff82b33b"
|
||||
},
|
||||
"anchor": {
|
||||
"anchor_slot": "2034720",
|
||||
"oldest_block_slot": "1958881",
|
||||
"oldest_block_parent": "0x1fd3d855d03e9df28d8a41a0f9cb9d4c540832b3ca1c3e1d7e09cd75b874cc87",
|
||||
"state_upper_limit": "2035712",
|
||||
"state_lower_limit": "0"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
For more information about the split point, see the [Database Configuration](./advanced_database.md)
|
||||
docs.
|
||||
|
||||
The `anchor` will be `null` unless the node has been synced with checkpoint sync and state
|
||||
reconstruction has yet to be completed. For more information
|
||||
on the specific meanings of these fields see the docs on [Checkpoint
|
||||
Sync](./checkpoint-sync.md#reconstructing-states).
|
||||
|
||||
### `/lighthouse/database/reconstruct`
|
||||
|
||||
Instruct Lighthouse to begin reconstructing historic states, see
|
||||
[Reconstructing States](./checkpoint-sync.md#reconstructing-states). This is an alternative
|
||||
to the `--reconstruct-historic-states` flag.
|
||||
|
||||
```
|
||||
curl -X POST "http://localhost:5052/lighthouse/database/reconstruct" | jq
|
||||
```
|
||||
|
||||
```json
|
||||
"success"
|
||||
```
|
||||
|
||||
The endpoint will return immediately. See the beacon node logs for an indication of progress.
|
||||
|
||||
### `/lighthouse/database/historical_blocks`
|
||||
|
||||
Manually provide `SignedBeaconBlock`s to backfill the database. This is intended
|
||||
for use by Lighthouse developers during testing only.
|
||||
Reference in New Issue
Block a user