Skip to content

Comments

Anchor Pre-PR: merge unstable#7200

Merged
jimmygchen merged 22 commits intosigp:anchorfrom
dknopik:into-anchor
Mar 25, 2025
Merged

Anchor Pre-PR: merge unstable#7200
jimmygchen merged 22 commits intosigp:anchorfrom
dknopik:into-anchor

Conversation

@dknopik
Copy link
Member

@dknopik dknopik commented Mar 25, 2025

The latest changes from unstable (especially hoodi and the small gossipsub update) are very desirable for Anchor, so this PR merges unstable into the Anchor branch.

Please merge without squashing!

dapplion and others added 22 commits March 13, 2025 13:26
Currently range sync download log errors just say `error: rpc_error` which isn't helpful. The actual error is suppressed unless logged somewhere else.


  Log the actual error that caused the batch download to fail as part of the log that states that the batch download failed.
- sigp#6452 (partially)


  Remove dependencies on `store` and `lighthouse_network`  from `eth2`. This was achieved as follows:

- depend on `enr` and `multiaddr` directly instead of using `lighthouse_network`'s reexports.
- make `lighthouse_network` responsible for converting between API and internal types.
- in two cases, remove complex internal types and use the generic `serde_json::Value` instead - this is not ideal, but should be fine for now, as this affects two internal non-spec endpoints which are meant for debugging, unstable, and subject to change without notice anyway. Inspired by sigp#6679. The alternative is to move all relevant types to `eth2` or `types` instead - what do you think?
I feel it's preferable to do this explicitly by updating the revision on `Cargo.toml` rather than implicitly by letting `Cargo.lock` control the revision of the branch.
It'll help us debug the issue with rolling file appender initialization (`Failed to initialize libp2p rolling file appender`)

cc: @macladson
…g_partial_withdrawals) (sigp#7006)

Resolves sigp#7003


  Added two endpoints as ethereum/beacon-APIs#500 proposed:
- `/eth/v1/beacon/states/{state_id}/pending_deposits`
- `/eth/v1/beacon/states/{state_id}/pending_partial_withdrawals`
sigp#7146


  Removes `filter_layer` from the builder as this was acting as a "global minimum". We don't actually need this, since we are using more granular control in `stdout_logging_layer` and `file_logging_layer`. Removing this restores control of the logfiles level back to the `--logfile-debug-level` flag (and defaults to debug).
sigp#7146


  Set `dep_logs` to false when building the `file_logging_layer`. This will remove both `discv5` and `libp2p` logs from the output.
Backport of:

- sigp#7067

For:

- sigp#7039


  - Prevent writing to state cache when migrating the database
- Add `state-cache-headroom` flag to control pruning
- Prune old epoch boundary states ahead of mid-epoch states
- Never prune head block's state
- Avoid caching ancestor states unless they are on an epoch boundary
- Log when states enter/exit the cache

Co-authored-by: Eitan Seri-Levi <eserilev@ucsc.edu>
Hardcode config for the upcoming `hoodi` testnet so we can run with `--network hoodi`.
This is a backport of:
-  sigp#7059
- sigp#7071

For:
- sigp#7039


  Introduce a new lighthouse endpoint that allows a user to force a pseudo finalization. This migrates data to the freezer db and prunes sidechains which may help reduce disk space issues on non finalized networks like Holesky

We also ban peers that send us blocks that conflict with the manually finalized checkpoint.

There were some CI fixes in sigp#7071 that I tried including here

Co-authored with: @jimmygchen  @pawanjay176 @michaelsproul
Backports:
- sigp#7072

To:
- sigp#7039

sigp#7103 should be merged first


  This PR introduces an endpoint that allows users to manually trigger background compaction.
Cross builds were failing since:

- sigp#7086

This seems to have been due to a regression upstream in `ring` which is noted in the v0.17.14 release notes. I'm hoping that updating remedies it.

> Compatibility with GNU binutils 2.29 (used on Amazon Linux 2), and probably even earlier versions, was restored. It is expected that ring 0.17.14 will build on all the systems that 0.17.12 would build on.

https://github.com/briansmith/ring/blob/main/RELEASES.md#version-01714-2025-03-11
New release for Hoodi testnet including clean versions of fixes from `holesky-rescue`.
Part of
- sigp#6258


  `RangeBlockComponentsRequest` handles a set of by_range requests. It's quite lose on these requests, not tracking them by ID. We want to implement individual request retries, so we must make `RangeBlockComponentsRequest` aware of its requests IDs. We don't want the result of a prior by_range request to affect the state of a future retry. Lookup sync uses this mechanism.

Now `RangeBlockComponentsRequest` tracks:

```rust
pub struct RangeBlockComponentsRequest<E: EthSpec> {
blocks_request: ByRangeRequest<BlocksByRangeRequestId, Vec<Arc<SignedBeaconBlock<E>>>>,
block_data_request: RangeBlockDataRequest<E>,
}

enum RangeBlockDataRequest<E: EthSpec> {
NoData,
Blobs(ByRangeRequest<BlobsByRangeRequestId, Vec<Arc<BlobSidecar<E>>>>),
DataColumns {
requests: HashMap<
DataColumnsByRangeRequestId,
ByRangeRequest<DataColumnsByRangeRequestId, DataColumnSidecarList<E>>,
>,
expected_custody_columns: Vec<ColumnIndex>,
},
}

enum ByRangeRequest<I: PartialEq + std::fmt::Display, T> {
Active(I),
Complete(T),
}
```

I have merged `is_finished` and `Into_responses` into the same function. Otherwise, we need to duplicate the logic to figure out if the requests are done.
Getting this when running lcli with `--osaka-time`:

```
error: unexpected argument '--osaka-time' found

tip: a similar argument exists: '--shanghai-time'
```

This PR adds the missing `--osaka-time` option to `lcli`.
* sigp#6447


  - Move some deprecated pages to a new section under `Archived`

- Remove fallback log in mev as the log will not be present after VC using `/eth/v3/validator/blocks` endpoint by default
- Add warning against using Btrfs file system (thank you @ChosunOne for the report)
- Add data shared by @mcdee  on tree states API queries time
- Rename partial withdrawals to validator sweep to differentiate it from the upcoming execution layer partial withdrawals
- Update NAT API response
- Update docs on IPv6

- Rename .md files to follow a standard prefix section name, e.g., installation_*.md, advanced_*.md
- Standardise .md files using underscore `_` instead of hyphen `-` to be consistent with other files naming conventions.
@dknopik dknopik requested a review from jxs as a code owner March 25, 2025 10:42
@jimmygchen jimmygchen merged commit 22faccb into sigp:anchor Mar 25, 2025
29 of 30 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants