Good day Lodestar operators! We've just release v1.47.0 and recommend you upgrade your mainnet and testnet nodes. This one is BIG! We have moved our bls operations to Zig!! 🎉🎉 We are super proud to bring the first of many Zig releases to you as you will definitely notice performance benefits. But wait, there's more!!
We have been hunting for a bug in libp2p for a while, one that prevented graceful shutdown and this release has finally squashed that bug dead! You should not see any more issues with hanging shutdowns.
This is on top of all the work we've done to get ready for Glamsterdam. And ready we are. There is still some stuff you will see in the next release but for the most part your clients will be ready to rock and roll for the next fork. We just need to wait for scheduling to add the fork transition epochs into the codebase. Stay tuned...
We love you all and thank you for standing with us while we laid the foundation for a Zig encrusted future. We look forward to the next pieces that we will release and are excited to bring you more news in upcoming versions. Its going to be legen-wait-for-it-dary...
Features
- implement gloas builder api (#9832) (@nflaig)
- enhance UnknownBlockPeerBalancer for gloas (#9928) (@twoeths)
- implement should_apply_proposer_boost for gloas (#9233) (@ensi321)
- prepare for epoch boundary reorg (#9915) (@twoeths)
- tiered pruning of persisted checkpoint states (#9898) (@twoeths)
- defer voluntary exits with transient validation failures (#9216) (@markolazic01)
- allow proposer reorgs at epoch boundaries (#9769) (@nflaig)
- instrument builder onboarding at the gloas fork transition (#9828) (@nflaig)
- add plataberget network option 🐻❄️ (#9822) (@nflaig)
- support EIP-8261 gas limit schedule (#9808) (@nflaig)
- expose fast confirmation store variables via lodestar API (#9803) (@nazarhussain)
- blst: use lodestar-z blst (#8900) (@spiral-ladder)
- builder: add metrics to builder client (#9848) (@markolazic01)
- builder: add readiness gating and builder identity resolution (#9781) (@markolazic01)
Bug Fixes
- feed peer sync meta to UnknownBlockPeerBalancer on subscribeToNetwork (#9924) (@twoeths)
- bound payload envelope seen cache (#9904) (@twoeths)
- recompute head after pulling up checkpoints (#9864) (@twoeths)
- keep event stream alive if an event can not be serialized (#9872) (@nflaig)
- handle attributable peers on range sync (#9836) (@twoeths)
- always add api attestations to the pool (#9886) (@nflaig)
- key payload attesters by slot (#9882) (@GrapeBaBa)
- treat dial timeouts as HighToleranceError for all methods (#9877) (@nflaig)
- prune prefinalized pending items in BlockInputSync (#9852) (@twoeths)
- ignore proposer preferences for pre-gloas proposal slots (#9869) (@nflaig)
- contain errors thrown while sending events to a client (#9871) (@nflaig)
- fallback when native chacha20-poly1305 is unavailable (#9879) (@wemeetagain)
- fully initialize execution payload bid on gloas upgrade (#9847) (@nflaig)
- preserve request content length (#9834) (@nflaig)
- use progressive payload attestation pool response (#9838) (@nflaig)
- prevent builder payment weight double count (#9830) (@nflaig)
- reject repeat proposals in publish block API (#9818) (@nflaig)
- count canonical FULL and EMPTY blocks in circuit breaker (#9815) (@nflaig)
- trigger getBlobs in Unknown block sync (#9806) (@twoeths)
- process REPEAT_PROPOSAL block (#9805) (@twoeths)
- differentiate ALREADY_KNOWN vs REPEAT_PROPOSAL seen block proposal (#9814) (@twoeths)
- harden safe execution block hash handling (#9794) (@nflaig)
- harden range sync hashBlocks() (#9686) (@twoeths)
- fork-choice: preserve exact Gwei weights (#9821) (@GrapeBaBa)
- builder: catch transient failures on getStateBuilders (#9868) (@markolazic01)
- builder: wait for Gloas fork and improve startup logging (#9839) (@lodekeeper)
Performance
- resolve builder top-ups by index at the fork transition (#9861) (@nflaig)
- implement appendBuilderToRegistry() (#9840) (@twoeths)
Refactoring
- assert BeaconEvent type in eventstream handler (#9894) (@lodekeeper)
- use Wei type for produce block values (#9831) (@nflaig)
- use builder boost factor for gloas block production (#9807) (@nflaig)
- network: resolve zero peers publish policy per topic (#9887) (@nflaig)
Dependencies
- bump ssz to 1.6.3 (#9890) (@nflaig)
- patch @libp2p/tcp to fix network worker shutdown hang (#9825) (@nflaig)
- bump discv5 to 12.0.2 and enr to 6.0.2 (#9810) (@nflaig)
Continuous Integration
- cache perf-state interop pubkeys (#9906) (@lodekeeper-z)
- external contributor workflow error (#9905) (@matthewkeil)
Tests
- align benchmark pubkeys with lodestar-z global pubkey cache (#9893) (@lodekeeper)
- run standalone SSZ spec tests (#9859) (@nflaig)
- harden e2e child process cleanup (#9858) (@lodekeeper)
- dedupe builder/validator apiStub helpers into @lodestar/test-utils (#9826) (@lodekeeper)
- mimic http client error body in mockApiErrorResponse (#9798) (@lodekeeper)
- update fast confirmation spec tests to v1.7.0-alpha.13 (#9778) (@nazarhussain)
- perf: populate appended load-state pubkeys (#9897) (@lodekeeper-z)
- builder: handler tests (#9860) (@markolazic01)
Styles
- fork-choice: use .js extensions in relative imports (#9802) (@nazarhussain)
Maintenance
- v1.47.0 release (#9934) (@matthewkeil)
- update Chiado bootnodes (#9926) (@eth2353)
- more metrics for BlockInputSync (#9912) (@twoeths)
- follow up PR 9904 (#9909) (@twoeths)
- use released libp2p tcp shutdown fix (#9899) (@GrapeBaBa)
- restore pre-Fulu proposer shuffling check (#9850) (@nflaig)
- clarify code comment guidance (#9833) (@nflaig)
- track elapsed time for ptc and bid (#9796) (@twoeths)
- address builder circuit breaker review follow-ups (#9780) (@nflaig)
- copy patches into development image (#9816) (@nflaig)
- update changelog authors mapping (#9812) (@lodekeeper)
- merge v1.46.0 back to unstable (#9811) (@matthewkeil)
- address block validation and equivocation follow-ups (#9795) (@nflaig)
- deps: bump the actions group with 4 updates (#9907) (@dependabot[bot])
- deps: bump the actions group with 6 updates (#9841) (@dependabot[bot])
- deps: bump the actions group with 4 updates (#9797) (@dependabot[bot])
- builder: abort signal in while loop + logging nits (#9827) (@markolazic01)
Documentation
- fix broken gitpoap badge, add links to ES/Node version badges (#9901) (@Olexandr88)
- add historical fork support matrix (#9855) (@lodekeeper)
- explain why gloas ExecutionPayloadBid.value stays UintNum64 (#9835) (@lodekeeper)