We've released some exciting updates we'd love to share in our v1.21.0 release! We recommend users upgrade to take advantage of some noticeable improvements we've seen on our testing.
Firstly, it's important to note that our docker image now uses debian instead of alpine for the docker build due to noticeable performance differences. This may break some tooling downstream, so please be aware if you're using our docker images as a base for your setup.
We now follow the new standard to expose execution layer client info alongside consensus layer client info by default if the graffiti is not explicitly set and you haven't enabled the --private flag. As documented in ethereum/execution-apis#517, we hope this will provide better and more reliable information regarding client diversity on Ethereum.
One of the larger performance upgrades on this release is using napi-rs BLST bindings, which has yielded much better results for important functions such as our epoch state transition times.
Changelog
Features
- track syncing status and fetch duties on resynced (#6995) (@nflaig)
- improve before process epoch (#6979) (@twoeths)
- include EL client info in graffiti (#6753) (@ensi321)
- add historical state regen (#6033) (@wemeetagain)
- use napi-rs blst bindings (#6894) (@wemeetagain)
- add yamux stream muxer (#5886) (@wemeetagain)
- add cli flag to disable light client server (#6913) (@nazarhussain)
- add option to disable thread pool for keystore decryption (#6949) (@nflaig)
Bug Fixes
- use default node image to build docker (#7004) (@twoeths)
- refactor the blockcontent types as fork aware types for api (#6999) (@g11tech)
- resolve state id as checkpoint (#6994) (@twoeths)
- revert yamux (#6990) (@twoeths)
- sanitize url in http client debug logs and metrics (#6974) (@nflaig)
- start clock last when initializing validator client (#6973) (@nflaig)
- return finalized as false if finalized epoch is genesis epoch (#6965) (@nflaig)
- ignore noisy eventstream errors due to DNS resolution errors (#6972) (@nflaig)
- fix the publish blinded block api parsing for optional header verison (#6966) (@g11tech)
- sepolia genesis delay (#6961) (@domiwei)
- update user-agent check for go-eth2-client (#6958) (@nflaig)
- expose metadata headers to scripts running in the browser (#6952) (@nflaig)
- add workaround to fix compatibility with go-eth2-client (#6953) (@nflaig)
- default to json if client accepts all media types (#6950) (@nflaig)
Dependencies
- update vitest to latest version (#6967) (@nazarhussain)
Maintenance
- release v1.21.0 (#7006) (@philknows)
- update default instance selected as filter on dashboards (#7001) (@nflaig)
- update lodestar_validator_monitor.json (#7000) (@SeaMonkey82)
- more log on updateHeadState() (#6997) (@twoeths)
- refactor chain event emits (#6993) (@wemeetagain)
- add more discovery logs (#6996) (@wemeetagain)
- fix reference to Heap memory limt in FAQs (#6992) (@nflaig)
- add additional instructions for hotfixes in release.md (#6971) (@philknows)
- bump blst-ts version (#6980) (@matthewkeil)
- refactor block and state api utils (#6963) (@wemeetagain)
- pin nodejs version to 22.4 (#6964) (@nflaig)
- bump @chainsafe/bls-keystore (#6956) (@wemeetagain)
- remove unused metricsRegistries (#6957) (@wemeetagain)
- merge v1.20.1 stable back to unstable (#6960) (@philknows)
- decompose AttesterStatus (#6945) (@wemeetagain)
- merge v1.20.0 stable back to unstable (#6944) (@philknows)
- optimize getSlotFromOffset (#6941) (@wemeetagain)
Documentation
- update dependency graph (#6981) (@philknows)
- update prover and light client documentation (#6983) (@nflaig)
- add note to local testnet setup (#6984) (@nflaig)
- fix formatting of RELEASE.md file (#6985) (@nflaig)
- updated Light Client url in Readme (#6948) (@guha-rahul)
- fix search, redirects and broken links (#6940) (@nflaig)