Changelog
Features
- add flat file storage for data columns (#8899) (@wemeetagain)
- track stateTransition steps in metrics (#10016) (@markolazic01)
- enforce progressive list limits on deserialization (#10042) (@wemeetagain)
- add NewPayloadRequest ssz types (#10051) (@nflaig)
- track late canonical blocks (#9968) (@twoeths)
- gloas lc support (#9687) (@spiral-ladder)
- log builder configuration at startup (#9946) (@nflaig)
- reorg weak head when the proposer equivocated (#9929) (@nflaig)
- flood publish execution payload bids (#9914) (@markolazic01)
- track queue time of gossipsub messages (#9940) (@twoeths)
- builder: track proposer preferences (#9976) (@krisoshea-eth)
- builder: observe beacon node blocks (#9931) (@krisoshea-eth)
- builder: add bid ledger (#9975) (@krisoshea-eth)
- builder: bid policy (#9974) (@markolazic01)
- builder: payload store (#9970) (@markolazic01)
Bug Fixes
- dos protection for NetworkProcessor (#10039) (@twoeths)
- batch verify payload attestation signatures in blocks (#10055) (@nflaig)
- emit payload_attributes before EL payload preparation (#10037) (@ensi321)
- fall back to finalized safe block (#10027) (@nazarhussain)
- emit head event when fork choice head changes on clock tick (#10036) (@ensi321)
- reject attestation source epochs below the min-span lookback (#9999) (@wemeetagain)
- emit finalized_checkpoint event from fork choice finalized callback (#10035) (@ensi321)
- do not abort validator monitor epoch summaries on unknown block roots (#10026) (@nflaig)
- check the parent envelope block root in chain segment assertion (#10033) (@nflaig)
- ignore future slot gossip messages (#10023) (@twoeths)
- import payload envelopes of known blocks in range sync batches (#10006) (@nflaig)
- do not import orphaned payload envelopes of old blocks in range sync (#10005) (@nflaig)
- serve closest head state if head block post-state is not available (#10003) (@nflaig)
- omit GAS_LIMIT_SCHEDULE from getSpec until Gloas (#10004) (@b0a7)
- defer gossip handler to the next event loop (#9990) (@twoeths)
- handle orphaned parent payload envelope in range sync batches (#10002) (@nflaig)
- reject bids with block_hash equal to parent_block_hash (#9972) (@nflaig)
- minor improvement on ptc message gossip validation (#9969) (@twoeths)
- run cheap bid rejects before expensive validation (#9984) (@nflaig)
- keep event stream alive if an event can not be processed (#9964) (@nflaig)
- ignore bids from builders exiting in the parent payload (#9954) (@nflaig)
- pre-establish builder connections before requesting bids (#9947) (@nflaig)
- only track ACCEPT message job time (#9961) (@twoeths)
- avoid epoch transition when validating gossip block (#9959) (@twoeths)
- allow proposer boost reorg bid over epoch transition (#9944) (@twoeths)
- reqresp: floor rate-limiter request cost to at least 1 token (#10034) (@lodekeeper)
- beacon-node: skip empty Gloas payloads during range sync (#9937) (@eth2353)
Performance
- replace snappyjs with snappy-wasm (#10062) (@nflaig)
- state-transition: use native PTC sampling (#9903) (@GrapeBaBa)
- state-transition: batch inactivity score updates (#9911) (@GrapeBaBa)
Refactoring
- derive gloas p2p max sizes from ssz types (#10053) (@nflaig)
- simplify supported block proposal fields (#9993) (@lodekeeper-z)
- read parent slot from header for v1.7.0-beta.0 (#9955) (@nflaig)
- rename getLcExecutionRoot to getLightClientExecutionRoot (#9992) (@lodekeeper)
- builder: builder identity polling (#10045) (@markolazic01)
- bindings: split computeNewStateRoot computation (#9945) (@spiral-ladder)
Dependencies
Tests
- add compliance test for gloas (#9761) (@ensi321)
- accept zero finalizedBlockHash in mock execution engine (#10044) (@lodekeeper)
- enable payload attestation spec tests (#10015) (@nflaig)
- fail spec tests expecting an error if none is thrown (#9986) (@nflaig)
- builder: add builder sidecar kurtosis config and run script (#10010) (@markolazic01)
- builder: cover Builder lifecycle regressions (#9932) (@krisoshea-eth)
Maintenance
- bump lodestar-z to v1.1.0 (#10061) (@nflaig)
- improve log on REJECTED blocks, columns, payloads (#10058) (@twoeths)
- persist invalid signed block with block root file name (#10060) (@twoeths)
- replace EF bootnodes with NodeOps fleet (#10049) (@MysticRyuujin)
- rank and identify builder bid candidates in log (#9966) (@nflaig)
- track awaiting queues of NetworkProcessor on Grafana (#10047) (@twoeths)
- log orphaned payload source in range sync (#10021) (@twoeths)
- copy packages/builder/package.json in Dockerfile.dev (#10019) (@lodekeeper)
- log peer client serving orphaned payloads (#10009) (@twoeths)
- track persisted checkpoint states and epochs on Grafana (#10007) (@twoeths)
- fix typo in persisted keys comment (#10000) (@nflaig)
- remove bid pool addition via api path (#9998) (@markolazic01)
- add forkSeq to IBeaconStateView (#9927) (@lodekeeper)
- fix Switch gossip subscriptions panel of Sync dashboard (#9987) (@twoeths)
- fix sync dashboard (#9967) (@twoeths)
- merge v1.47.0 back to unstable (#9971) (@matthewkeil)
- builder log levels and value formatting (#9948) (@nflaig)
- stop registering validators with external builders post-gloas (#9950) (@nflaig)
- deps: bump js-yaml from 4.3.1 to 4.3.2 (#10052) (@dependabot[bot])
- deps: bump softprops/action-gh-release from 3.0.2 to 3.0.3 in the actions group (#10032) (@dependabot[bot])
- deps: bump qs from 6.15.2 to 6.16.0 (#9985) (@dependabot[bot])
- deps: bump fastify from 5.8.5 to 5.12.1 (#9977) (@dependabot[bot])
- deps: bump the actions group with 3 updates (#9952) (@dependabot[bot])
Documentation
- document why BuilderPendingPayment.weight is safe as UintNum64 (#10050) (@lodekeeper)
- update historical fork support boundaries (#9983) (@lodekeeper-z)
- clarify gloas builder configuration (#9949) (@nflaig)