-
Notifications
You must be signed in to change notification settings - Fork 742
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge unstable deneb june 6th #4477
Merge unstable deneb june 6th #4477
Commits on Jun 29, 2023
-
avoid relocking head during builder health check (sigp#4323)
## Issue Addressed sigp#4314 ## Proposed Changes avoid relocking head during builder health check ## Additional Info NA
Configuration menu - View commit details
-
Copy full SHA for 23b06aa - Browse repository at this point
Copy the full SHA 23b06aaView commit details -
Add broadcast validation routes to Beacon Node HTTP API (sigp#4316)
## Issue Addressed - sigp#4293 - sigp#4264 ## Proposed Changes *Changes largely follow those suggested in the main issue*. - Add new routes to HTTP API - `post_beacon_blocks_v2` - `post_blinded_beacon_blocks_v2` - Add new routes to `BeaconNodeHttpClient` - `post_beacon_blocks_v2` - `post_blinded_beacon_blocks_v2` - Define new Eth2 common types - `BroadcastValidation`, enum representing the level of validation to apply to blocks prior to broadcast - `BroadcastValidationQuery`, the corresponding HTTP query string type for the above type - ~~Define `_checked` variants of both `publish_block` and `publish_blinded_block` that enforce a validation level at a type level~~ - Add interactive tests to the `bn_http_api_tests` test target covering each validation level (to their own test module, `broadcast_validation_tests`) - `beacon/blocks` - `broadcast_validation=gossip` - Invalid (400) - Full Pass (200) - Partial Pass (202) - `broadcast_validation=consensus` - Invalid (400) - Only gossip (400) - Only consensus pass (i.e., equivocates) (200) - Full pass (200) - `broadcast_validation=consensus_and_equivocation` - Invalid (400) - Invalid due to early equivocation (400) - Only gossip (400) - Only consensus (400) - Pass (200) - `beacon/blinded_blocks` - `broadcast_validation=gossip` - Invalid (400) - Full Pass (200) - Partial Pass (202) - `broadcast_validation=consensus` - Invalid (400) - Only gossip (400) - ~~Only consensus pass (i.e., equivocates) (200)~~ - Full pass (200) - `broadcast_validation=consensus_and_equivocation` - Invalid (400) - Invalid due to early equivocation (400) - Only gossip (400) - Only consensus (400) - Pass (200) - Add a new trait, `IntoGossipVerifiedBlock`, which allows type-level guarantees to be made as to gossip validity - Modify the structure of the `ObservedBlockProducers` cache from a `(slot, validator_index)` mapping to a `((slot, validator_index), block_root)` mapping - Modify `ObservedBlockProducers::proposer_has_been_observed` to return a `SeenBlock` rather than a boolean on success - Punish gossip peer (low) for submitting equivocating blocks - Rename `BlockError::SlashablePublish` to `BlockError::SlashableProposal` ## Additional Info This PR contains changes that directly modify how blocks are verified within the client. For more context, consult [comments in-thread](sigp#4316 (comment)). Co-authored-by: Michael Sproul <michael@sigmaprime.io>
Configuration menu - View commit details
-
Copy full SHA for 1aff082 - Browse repository at this point
Copy the full SHA 1aff082View commit details
Commits on Jun 30, 2023
-
added debounce to log (sigp#4269)
## Issue Addressed [sigp#4259](sigp#4259) ## Proposed Changes debounce spammy `Unable to send message to the beacon processor` log messages ## Additional Info We could potentially debounce other logs that have the potential to be "spammy". After some feedback we decided to additionally add the following change: create a newtype wrapper around `mpsc::Sender<BeaconWorkEvent<T>>`. When there is an error on the try_send method on the wrapper, we increase a counter metric with one label per work type.
Configuration menu - View commit details
-
Copy full SHA for edd0932 - Browse repository at this point
Copy the full SHA edd0932View commit details -
Configuration menu - View commit details
-
Copy full SHA for 826e090 - Browse repository at this point
Copy the full SHA 826e090View commit details -
Cache target attester balances for unrealized FFG progression calcula…
…tion (sigp#4362) ## Issue Addressed sigp#4118 ## Proposed Changes This PR introduces a "progressive balances" cache on the `BeaconState`, which keeps track of the accumulated target attestation balance for the current & previous epochs. The cached values are utilised by fork choice to calculate unrealized justification and finalization (instead of converting epoch participation arrays to balances for each block we receive). This optimization will be rolled out gradually to allow for more testing. A new `--progressive-balances disabled|checked|strict|fast` flag is introduced to support this: - `checked`: enabled with checks against participation cache, and falls back to the existing epoch processing calculation if there is a total target attester balance mismatch. There is no performance gain from this as the participation cache still needs to be computed. **This is the default mode for now.** - `strict`: enabled with checks against participation cache, returns error if there is a mismatch. **Used for testing only**. - `fast`: enabled with no comparative checks and without computing the participation cache. This mode gives us the performance gains from the optimization. This is still experimental and not currently recommended for production usage, but will become the default mode in a future release. - `disabled`: disable the usage of progressive cache, and use the existing method for FFG progression calculation. This mode may be useful if we find a bug and want to stop the frequent error logs. ### Tasks - [x] Initial cache implementation in `BeaconState` - [x] Perform checks in fork choice to compare the progressive balances cache against results from `ParticipationCache` - [x] Add CLI flag, and disable the optimization by default - [x] Testing on Goerli & Benchmarking - [x] Move caching logic from state processing to the `ProgressiveBalancesCache` (see [this comment](sigp#4362 (comment))) - [x] Add attesting balance metrics Co-authored-by: Jimmy Chen <jimmy@sigmaprime.io>
Configuration menu - View commit details
-
Copy full SHA for 46be05f - Browse repository at this point
Copy the full SHA 46be05fView commit details
Commits on Jul 3, 2023
-
Ipv6 bootnodes update (sigp#4394)
We now officially have ipv6 support. The mainnet bootnodes have been updated to support ipv6. This PR updates lighthouse's internal bootnodes for mainnet to avoid fetching them on initial load.
Configuration menu - View commit details
-
Copy full SHA for 8e65419 - Browse repository at this point
Copy the full SHA 8e65419View commit details
Commits on Jul 4, 2023
-
## Issue Addressed NA ## Proposed Changes Bump versions ## Additional Info NA
Configuration menu - View commit details
-
Copy full SHA for dfcb336 - Browse repository at this point
Copy the full SHA dfcb336View commit details
Commits on Jul 6, 2023
-
Correct checks for backfill completeness (sigp#4465)
## Issue Addressed sigp#4331 ## Proposed Changes - Use comparison rather than strict equality between the earliest epoch we know about and the backfill target (which will be the most recent WSP by default or genesis) - Add helper function `BackFillSync<T>::would_complete` to achieve this in one location ## Additional Info - There's an ad hoc test for this in sigp#4461 Co-authored-by: Age Manning <Age@AgeManning.com>
Configuration menu - View commit details
-
Copy full SHA for a6d5c7d - Browse repository at this point
Copy the full SHA a6d5c7dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 246d52d - Browse repository at this point
Copy the full SHA 246d52dView commit details -
Merge branch 'remove-into-gossip-verified-block' of https://github.co…
…m/realbigsean/lighthouse into merge-unstable-deneb-june-6th
Configuration menu - View commit details
-
Copy full SHA for cfe2452 - Browse repository at this point
Copy the full SHA cfe2452View commit details
Commits on Jul 7, 2023
-
Configuration menu - View commit details
-
Copy full SHA for c4da1ba - Browse repository at this point
Copy the full SHA c4da1baView commit details
Commits on Jul 8, 2023
-
Bump default checkpoint sync timeout to 3 minutes (sigp#4466)
## Issue Addressed [Users on Twitter](https://twitter.com/ashekhirin/status/1676334843192397824) are getting checkpoint sync URL timeouts with the default of 60s, so this PR increases the default timeout to 3 minutes. I've also added a short section to the book about adjusting the timeout with `--checkpoint-sync-url-timeout`.
Configuration menu - View commit details
-
Copy full SHA for ea2420d - Browse repository at this point
Copy the full SHA ea2420dView commit details
Commits on Jul 10, 2023
-
Move the
BeaconProcessor
into a new crate (sigp#4435)*Replaces sigp#4434. It is identical, but this PR has a smaller diff due to a curated commit history.* ## Issue Addressed NA ## Proposed Changes This PR moves the scheduling logic for the `BeaconProcessor` into a new crate in `beacon_node/beacon_processor`. Previously it existed in the `beacon_node/network` crate. This addresses a circular-dependency problem where it's not possible to use the `BeaconProcessor` from the `beacon_chain` crate. The `network` crate depends on the `beacon_chain` crate (`network -> beacon_chain`), but importing the `BeaconProcessor` into the `beacon_chain` crate would create a circular dependancy of `beacon_chain -> network`. The `BeaconProcessor` was designed to provide queuing and prioritized scheduling for messages from the network. It has proven to be quite valuable and I believe we'd make Lighthouse more stable and effective by using it elsewhere. In particular, I think we should use the `BeaconProcessor` for: 1. HTTP API requests. 1. Scheduled tasks in the `BeaconChain` (e.g., state advance). Using the `BeaconProcessor` for these tasks would help prevent the BN from becoming overwhelmed and would also help it to prioritize operations (e.g., choosing to process blocks from gossip before responding to low-priority HTTP API requests). ## Additional Info This PR is intended to have zero impact on runtime behaviour. It aims to simply separate the *scheduling* code (i.e., the `BeaconProcessor`) from the *business logic* in the `network` crate (i.e., the `Worker` impls). Future PRs (see sigp#4462) can build upon these works to actually use the `BeaconProcessor` for more operations. I've gone to some effort to use `git mv` to make the diff look more like "file was moved and modified" rather than "file was deleted and a new one added". This should reduce review burden and help maintain commit attribution.
Configuration menu - View commit details
-
Copy full SHA for c25825a - Browse repository at this point
Copy the full SHA c25825aView commit details -
Revert "remove into gossip verified block"
This reverts commit 246d52d.
Configuration menu - View commit details
-
Copy full SHA for 6fd2ef4 - Browse repository at this point
Copy the full SHA 6fd2ef4View commit details
Commits on Jul 11, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 782a53a - Browse repository at this point
Copy the full SHA 782a53aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 57bb1d9 - Browse repository at this point
Copy the full SHA 57bb1d9View commit details
Commits on Jul 12, 2023
-
Add state-root command and network support to lcli (sigp#4492)
## Proposed Changes * Add `lcli state-root` command for computing the hash tree root of a `BeaconState`. * Add a `--network` flag which can be used instead of `--testnet-dir` to set the network, e.g. Mainnet, Goerli, Gnosis. * Use the new network flag in `transition-blocks`, `skip-slots`, and `block-root`, which previously only supported mainnet. * **BREAKING CHANGE** Remove the default value of `~/.lighthouse/testnet` from `--testnet-dir`. This may have made sense in previous versions where `lcli` was more testnet focussed, but IMO it is an unnecessary complication and foot-gun today.
Configuration menu - View commit details
-
Copy full SHA for 420e9c4 - Browse repository at this point
Copy the full SHA 420e9c4View commit details -
Remove hidden re-exports to appease Rust 1.73 (sigp#4495)
## Issue Addressed sigp#4494 ## Proposed Changes - Remove explicit re-exports of various types to appease the new compiler lint ## Additional Info It seems `warn(hidden_glob_reexports)` is the main culprit.
Configuration menu - View commit details
-
Copy full SHA for 62c9170 - Browse repository at this point
Copy the full SHA 62c9170View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1599487 - Browse repository at this point
Copy the full SHA 1599487View commit details -
Configuration menu - View commit details
-
Copy full SHA for c016f5d - Browse repository at this point
Copy the full SHA c016f5dView commit details -
Merge branch 'unstable' of https://github.com/sigp/lighthouse into me…
…rge-unstable-deneb-june-6th
Configuration menu - View commit details
-
Copy full SHA for a6f48f5 - Browse repository at this point
Copy the full SHA a6f48f5View commit details -
## Issue Addressed Addresses issue: sigp#4459 ## Proposed Changes `cargo update -p proc-macro2` proc-macro2 v1.0.58 -> v1.0.63 ## Additional Info See: sigp#4459 / rust-lang/rust#113152
Configuration menu - View commit details
-
Copy full SHA for 0c7eed5 - Browse repository at this point
Copy the full SHA 0c7eed5View commit details
Commits on Jul 14, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 42f54ee - Browse repository at this point
Copy the full SHA 42f54eeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 405e95b - Browse repository at this point
Copy the full SHA 405e95bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1876082 - Browse repository at this point
Copy the full SHA 1876082View commit details
Commits on Jul 17, 2023
-
Fix HTTP state API bug and add
--epochs-per-migration
(sigp#4236)## Issue Addressed Fix an issue observed by `@zlan` on Discord where Lighthouse would sometimes return this error when looking up states via the API: > {"code":500,"message":"UNHANDLED_ERROR: ForkChoiceError(MissingProtoArrayBlock(0xc9cf1495421b6ef3215d82253b388d77321176a1dcef0db0e71a0cd0ffc8cdb7))","stacktraces":[]} ## Proposed Changes The error stems from a faulty assumption in the HTTP API logic: that any state in the hot database must have its block in fork choice. This isn't true because the state's hot database may update much less frequently than the fork choice store, e.g. if reconstructing states (where freezer migration pauses), or if the freezer migration runs slowly. There could also be a race between loading the hot state and checking fork choice, e.g. even if the finalization migration of DB+fork choice were atomic, the update could happen between the 1st and 2nd calls. To address this I've changed the HTTP API logic to use the finalized block's execution status as a fallback where it is safe to do so. In the case where a block is non-canonical and prior to finalization (permanently orphaned) we default `execution_optimistic` to `true`. ## Additional Info I've also added a new CLI flag to reduce the frequency of the finalization migration as this is useful for several purposes: - Spacing out database writes (less frequent, larger batches) - Keeping a limited chain history with high availability, e.g. the last month in the hot database. This new flag made it _substantially_ easier to test this change. It was extracted from `tree-states` (where it's called `--db-migration-period`), which is why this PR also carries the `tree-states` label.
Configuration menu - View commit details
-
Copy full SHA for 6c37520 - Browse repository at this point
Copy the full SHA 6c37520View commit details -
Use unique arg names for eth1-sim (sigp#4463)
## Issue Addressed When trying to run `eth1-sim` locally, the simulator doesn't start for me, and panicked due to duplicate arg names for `proposer-nodes` (using same arg names as `nodes`). Not sure why this isn't failing on CI but failing on mine 🤔 ``` thread 'main' panicked at 'Argument short must be unique thread 'main' panicked at 'Argument long must be unique ```
Configuration menu - View commit details
-
Copy full SHA for 5cd738c - Browse repository at this point
Copy the full SHA 5cd738cView commit details -
Remove instances of required arguments with default values (sigp#4489)
## Issue Addressed sigp#4488 ## Proposed Changes - Remove all instances of the `required` modifier where we have a default value specified for a subcommand ## Additional Info N/A
Configuration menu - View commit details
-
Copy full SHA for 1a5de8b - Browse repository at this point
Copy the full SHA 1a5de8bView commit details -
Update mev-rs and remove patches (sigp#4496)
## Issue Addressed Fixes occasional compilation errors with mev-rs (see sigp#4456). ## Proposed Changes - Update `mev-rs` to the latest version, which allows us to remove hacky `[patch]` sections - Update the `axum` version used in `watch` so LH only uses a single version
Configuration menu - View commit details
-
Copy full SHA for 03674c7 - Browse repository at this point
Copy the full SHA 03674c7View commit details -
Remove wget dependency (sigp#4497)
## Proposed Changes Replace `wget` in the EF-tests makefile with `curl`. On macOS `curl` is pre-installed, and I found myself making this change to avoid installing `wget`. The `-L` flag is used to follow redirects which is useful if a repo gets renamed, and more similar to `wget`'s default behaviour.
Configuration menu - View commit details
-
Copy full SHA for 5569d97 - Browse repository at this point
Copy the full SHA 5569d97View commit details -
Clean up local testnet files without prompting (sigp#4498)
## Issue Addressed Addresses an issue where CI could fail due to an nonexisting file error: ``` Run ./clean.sh rm: cannot remove '/home/runner/.lighthouse/local-testnet/geth_datadir4/geth/fastcache.tmp.1549331618': No such file or directory Error: Process completed with exit code 1. ``` This seems to happen quite frequently now, I'm not sure exactly why but perhaps worth trying suppressing the prompt? https://github.com/sigp/lighthouse/actions/runs/5455027574/jobs/9925916159?pr=4463
Configuration menu - View commit details
-
Copy full SHA for 68d5a6c - Browse repository at this point
Copy the full SHA 68d5a6cView commit details -
CI fix: add retries to eth1 sim tests (sigp#4501)
## Issue Addressed This PR attempts to workaround the recent frequent eth1 simulator failures caused by missing eth logs from Anvil. > FailedToInsertDeposit(NonConsecutive { log_index: 1, expected: 0 }) This usually occurs at the beginning of the tests, and it guarantees a timeout after a few hours if this log shows up, and this is currently causing our CIs to fail quite frequently. Example failure here: https://github.com/sigp/lighthouse/actions/runs/5525760195/jobs/10079736914 ## Proposed Changes The quick fix applied here adds a timeout to node startup and restarts the node again. - Add a 60 seconds timeout to beacon node startup in eth1 simulator tests. It takes ~10 seconds on my machine, but could take longer on CI runners. - Wrap the startup code in a retry function, that allows for 3 retries before returning an error. ## Additional Info We should probably raise an issue under the Anvil GitHub repo there so this can be further investigated.
Configuration menu - View commit details
-
Copy full SHA for d4a6175 - Browse repository at this point
Copy the full SHA d4a6175View commit details -
## Issue Addressed N/A ## Proposed Changes Add lints for rust 1.71 [3789134](sigp@3789134) is probably the one that needs most attention as it changes beacon state code. I changed the `is_in_inactivity_leak ` function to return a `ArithError` as not all consumers of that function work well with a `BeaconState::Error`.
Configuration menu - View commit details
-
Copy full SHA for f2223fe - Browse repository at this point
Copy the full SHA f2223feView commit details -
Speed up CI by installing foundry with Github action (sigp#4505)
## Issue Addressed Speed up CI by installing foundry with Github action instead of building Anvil from source. Building anvil from source on GItHub hosted runners currently takes about 10 mins. Using the `foundry-toolchain` action to install only takes about 2 seconds.
Configuration menu - View commit details
-
Copy full SHA for a25ec16 - Browse repository at this point
Copy the full SHA a25ec16View commit details -
Cleanup unreachable code in
lcli::generate_bootnode_enr
and some te……sts (sigp#4485) ## Issue Addressed n/a Noticed this while working on something else ## Proposed Changes - leverage the appropriate types to avoid a bunch of `unwrap` and errors ## Additional Info n/a
Configuration menu - View commit details
-
Copy full SHA for 4435a22 - Browse repository at this point
Copy the full SHA 4435a22View commit details -
Merge branch 'unstable' of https://github.com/sigp/lighthouse into me…
…rge-unstable-deneb-jul-14
Configuration menu - View commit details
-
Copy full SHA for b96db45 - Browse repository at this point
Copy the full SHA b96db45View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0f514cb - Browse repository at this point
Copy the full SHA 0f514cbView commit details -
Configuration menu - View commit details
-
Copy full SHA for a618830 - Browse repository at this point
Copy the full SHA a618830View commit details -
Configuration menu - View commit details
-
Copy full SHA for aeee5be - Browse repository at this point
Copy the full SHA aeee5beView commit details -
Merge branch 'merge-unstable-deneb-june-6th' of https://github.com/re…
…albigsean/lighthouse into merge-unstable-deneb-jul-14
Configuration menu - View commit details
-
Copy full SHA for 597389c - Browse repository at this point
Copy the full SHA 597389cView commit details -
Merge pull request #38 from realbigsean/merge-unstable-deneb-jul-14
Merge unstable deneb jul 14
Configuration menu - View commit details
-
Copy full SHA for 27a9901 - Browse repository at this point
Copy the full SHA 27a9901View commit details -
Configuration menu - View commit details
-
Copy full SHA for 382b5ab - Browse repository at this point
Copy the full SHA 382b5abView commit details -
Configuration menu - View commit details
-
Copy full SHA for e1d0724 - Browse repository at this point
Copy the full SHA e1d0724View commit details -
Configuration menu - View commit details
-
Copy full SHA for cffa562 - Browse repository at this point
Copy the full SHA cffa562View commit details