Changelog
Features
- activate Gloas on Ephemery iteration 165 (#10457) (@lodekeeper)
- enable native gloas transitions (#10345) (@nflaig)
- add flag to disable validation of published execution payload bids (#10429) (@nflaig)
- implement FOCIL EIP-7805 in heze (#10312) (@ensi321)
- implement quick slots EIP-8198 in heze (#10355) (@nflaig)
- remove
depositandeth1datafields (eip8015) (#10335) (@spiral-ladder) - builder: minimal wiring, bidding and revealing (#10379) (@markolazic01)
- docs: add CLI option comparison between versions (#10393) (@yarkinreis)
- types: add EIP-8025 execution proof SSZ types (#10391) (@spiral-ladder)
Bug Fixes
- cap payload DA wait at the slot duration of the payload's fork (#10433) (@ensi321)
- use the correct PTC duties dependent root for the Gloas fork epoch (#10468) (@nflaig)
- stop flooring the import-time seen timestamp of a block (#10453) (@ensi321)
- avoid slow LevelDB scans over deleted legacy data column entries (#10460) (@lodekeeper)
- recompute unrealized checkpoints for blocks with slashings (#10467) (@lodekeeper)
- round slot component durations (#10466) (@nflaig)
- floor slot component durations as the spec does (#10456) (@ensi321)
- avoid per-validator reads in fast confirmation scans (#10371) (@GrapeBaBa)
- avoid legacy column scans during archiving (#10447) (@lodekeeper)
- harden validator client shutdown (#10441) (@b0a7)
- check the parent payload before importing a repeat proposal in gloas (#10424) (@nflaig)
- deduplicate incomplete payload sync at the payload deadline (#10289) (@wemeetagain)
- model Transactions as SerializedList types (#10399) (@twoeths)
- drop finalized block hash from payload id cache key (#10432) (@lodekeeper)
- use the block root for the genesis dependent root fallback (#10409) (@nflaig)
- isolate selection proof failures per validator (#10387) (@nflaig)
- prune queued messages by bufferred roots in NetworkProcessor (#10395) (@twoeths)
- remove signer from validator store if its index is known (#10386) (@nflaig)
- record source state clone count (#10348) (@nflaig)
- resolve builder pubkeys in a single pass in getStateBuilders (#10408) (@lodekeeper)
- assert doppelganger safety only for messages counted in liveness (#10396) (@lodekeeper)
- skip buffering unknown-root gossip messages from expired slots (#10388) (@nflaig)
- serialize attestation slashing protection checks per validator (#10303) (@nflaig)
- queue column reconstructions in event multiple come in before completion (#10331) (@matthewkeil)
- separate engine response timings (#10349) (@nflaig)
- do not treat hex block ids as slots in getBlockRoot fast path (#10352) (@b0a7)
- reset pendingDeposits with the fork's list type at genesis (#10353) (@spiral-ladder)
- archive: rework pruning for non-canonical block variants (#10022) (@spiral-ladder)
- docs: skip unknown defaults when comparing legacy CLI references (#10412) (@markolazic01)
- beacon-node: derive the sync aggregate size from the preset in serialized block offsets (#10334) (@spiral-ladder)
Performance
- avoid array concat when deserializing ENR subnets (#10382) (@lodekeeper)
- decode hex natively in nodejs fromHexInto (#10358) (@lodekeeper)
- avoid importing sync committee maps (#10350) (@nflaig)
- allocate once when serializing execution requests (#10356) (@twoeths)
Refactoring
- carry milliseconds through the fork choice timeliness API (#10455) (@ensi321)
- use gossip validation for execution payload bids published via api (#10444) (@markolazic01)
- make slot timing fork-aware to prepare for slot duration changes (#10138) (@nflaig)
- api: drop unreachable genesis block root fallbacks from duty endpoints (#10394) (@ensi321)
Continuous Integration
- add nightly mixed client interop workflow (#10361) (@nflaig)
- wait for the REST re-probe before judging the engine interop EL restart (#10372) (@lodekeeper)
Tests
- stop leaking loggers and db mocks per fork choice test case (#10469) (@ensi321)
- reuse mocked envelope repository in block archiver tests (#10452) (@lodekeeper)
- use fake timers instead of Date.now spies (#10440) (@nazarhussain)
- make promise duration checks deterministic (#10434) (@nflaig)
- raise the regression threshold for flaky benchmarks (#10378) (@lodekeeper)
- make data column range benchmarks report only (#10377) (@lodekeeper)
- pin fake clock in prepareNextSlot slot offset test (#10373) (@lodekeeper)
- retry oapi spec download on failure (#10364) (@lodekeeper)
- pipe dev node output in voluntary exit from api e2e test (#10360) (@lodekeeper)
- enforce native spec assertions (#10344) (@nflaig)
Maintenance
- bump lodestar-z to 2.2.0 (#10471) (@spiral-ladder)
- merge v1.50.1 back to unstable (#10463) (@matthewkeil)
- unschedule Gloas fork and 200M gas limit on Hoodi (#10461) (@lodekeeper)
- refresh Node.js runtimes for builds (#10459) (@wemeetagain)
- upgrade js-libp2p to 3.4.0 (#10427) (@lodekeeper-z)
- keep current slot duration in heze (#10398) (@nflaig)
- merge v1.50.0 back to unstable (#10362) (@matthewkeil)
- fix Builder API queries per slot panel (#10357) (@twoeths)
- deps: bump the actions group with 3 updates (#10439) (@dependabot[bot])
- deps: bump the actions group with 7 updates (#10376) (@dependabot[bot])
Documentation
- add builder CLI to CLI reference page (#10414) (@lodekeeper)
- document when to assert doppelganger safety (#10397) (@lodekeeper)