Release v1.10.0
It's August! And Lodestar v1.10 is here! Two words: Performance upgrades. One of the biggest changes here is the NodeJS v20 upgrade. Please update your node environments accordingly - we no longer support anything before nodeJS v18.15.0. IPv6 is now supported. Lots of bug fixes and included bandwidth optimizations that are largely beneficial to larger node operators. For users, there is a --builder.selection=builderonly
block proposal option for DVT users so you sign the same block through the relayer. If you've enabled doppelganger protection, the CLI flag has changed to --doppelgangerProtection
to better align with other implementations.
Changelog
Features
- add syncing_status query parameter to eth/v1/node/health (#5790) (@nflaig)
- enable deterministicLongLivedAttnets by default (#5822) (@tuyennhv)
- only subscribe to short lived subnets 2 slots in advanced (#5810) (@tuyennhv)
- poll proposer duties of next epoch in advance (#5794) (@tuyennhv)
- only dial subnet peers if needed (#5782) (@tuyennhv)
- code coverage for tests using c8 (#5225) (@0xTylerHolmes)
- enable commented deneb spec tests (#5789) (@g11tech)
- add verifySignatureSetsSameMessage BLS api (#5747) (@tuyennhv)
- extend attestation validity till end of next epoch - eip7045 (#5731) (@g11tech)
- add engine fcU v3 for devnet 8 (#5773) (@g11tech)
- add IPv6 support (#5758) (@wemeetagain)
- track participants of produced aggregates (#5750) (@dapplion)
- prioritize api signature sets (#5754) (@tuyennhv)
- support el_offline in eth/v1/node/syncing (#5723) (@nazarhussain)
- track attestationInBlockParticipants (#5749) (@dapplion)
- subscribe to 2 long lived subnets per node (#5704) (@tuyennhv)
- deprecate engine_exchangeTransitionConfigurationV1 (#5724) (@g11tech)
- freeze voluntary exit signature fork domain to Capella version from deneb fork onwards (#5688) (@g11tech)
- migrate to blob side cars validation from blobs side car (#5687) (@g11tech)
- emit eventstream events with incoming gossip (#5596) (@dapplion)
- implement eip 4788 for deneb (#5703) (@g11tech)
- add block proposal summary metric to validator monitor (#5603) (@dapplion)
- add EL sim utility fn to send big raw blob txs (#5661) (@g11tech)
- allow builder only proposal flow for benefit of DVT protocols (#5669) (@g11tech)
- skip serializing block after fetching from network (#5573) (@dapplion)
- publish blobsidecars instead of blobssidecar (#5662) (@g11tech)
Bug Fixes
- parse bootnode entires with IP and location information (#5834) (@nflaig)
- make SLOTS_TO_SUBSCRIBE_IN_ADVANCE as hidden cli param (#5819) (@tuyennhv)
- prevent non-local IP enr warning (#5802) (@wemeetagain)
- eventstream invalid topic error (#5787) (@nflaig)
- gracefully terminate connections when closing http server (#5786) (@nflaig)
- contract eth_call bug and made some improvements (#5785) (@nazarhussain)
- eventstream listen on socket for close/end event (#5795) (@nflaig)
- prevent eventstream errors on shutdown or client aborts (#5784) (@nflaig)
- metrics server listen on localhost by default (#5777) (@nflaig)
- prevent updating execution engine state during shutdown (#5770) (@nflaig)
- correct subscribedToNetworkEvents flag of UnknownBlockSync (#5764) (@tuyennhv)
- lower the block production wait cutoff time for timely proposal publish (#5760) (@g11tech)
- abort and headers already sent errors for the rest api (#5722) (@nazarhussain)
- improve error logging of voluntary-exit command (#5756) (@nflaig)
- fix eslint for import/no-extraneous-dependencies (#5752) (@nazarhussain)
- ignore discovered peers with no multiaddrs (#5736) (@wemeetagain)
- explicitly exit process after beacon node closed (#5716) (@nflaig)
- ignore ALREADY_KNOWN gossip block error (#5714) (@tuyennhv)
- correct subscribedToCoreTopics flag (#5715) (@tuyennhv)
- prevEpochBlockProposalSummary typo (#5707) (@dapplion)
- do not warn out-of-synced status at start up (#5708) (@tuyennhv)
- prometheus-gc-stats metrics bugfix (#5683) (@wemeetagain)
- update the rate limit quota for blobs req/resp by range/by root methods (#5682) (@g11tech)
- fix max responses that can be received by blobs side car by range (#5681) (@g11tech)
- simplify snappy frame encoding (#5617) (@wemeetagain)
- update validator liveness API to be spec compliant (#5667) (@nflaig)
- gossipsub to yield more to the macro queue (#5664) (@tuyennhv)
- prover: allow payload provider to work with no finalized block (#5820) (@nazarhussain)
- validator: close gc collection process on graceful shutdown (#5686) (@nflaig)
- validator: abortable sleep in prepareForNextEpoch (#5666) (@nflaig)
- validator: abortable doppelganger detection (#5665) (@nflaig)
Refactoring
- rename data gas to blob gas for relevant deneb fields (#5816) (@g11tech)
- switch to native fetch implementation (#5811) (@nflaig)
- update distributed aggregation selection error logs (#5780) (@nflaig)
- update execution client state change logs (#5771) (@nflaig)
- align metrics and REST API server logs (#5778) (@nflaig)
- increase batch size to get validator indices to 64 (#5743) (@nflaig)
- remove now defunct network zhejiang (#5721) (@g11tech)
- clean up validator import options (#5689) (@nflaig)
- rename CLI flag to enable doppelganger protection (#5676) (@nflaig)
- beacon-node: simplify libp2p init (#5774) (@wemeetagain)
Dependencies
- update @chainsafe/threads to 1.11.1 (#5759) (@nflaig)
- update libp2p to 0.45.x (#5506) (@wemeetagain)
- update fastify to 4.19.0 (#5726) (@nflaig)
- update typescript and related dependencies (#5720) (@nazarhussain)
Continuous Integration
- update sim tests to node v20 (#5808) (@nflaig)
- assert yarn prints no warnings (#5565) (@dapplion)
- check docs spelling (#5527) (@dapplion)
Tests
- db: add check for gdu vs du (#5788) (@matthewkeil)
- prover: improve test coverage (#5648) (@nazarhussain)
Maintenance
- release 1.10.0 (#5836) (@wemeetagain)
- add produced aggregate metrics to dashboard (#5828) (@tuyennhv)
- fix format of input in dashboard lint script (#5830) (@nflaig)
- update docker nodejs to 20 (#5825) (@wemeetagain)
- bump multiaddr dependency (#5824) (@wemeetagain)
- format inputs on all dashboards to reduce diff (#5821) (@nflaig)
- add request next epoch proposal duties panel (#5815) (@tuyennhv)
- add capella state transition perf tests (#5807) (@dapplion)
- downgrade docker nodejs to 18 (#5812) (@wemeetagain)
- downgrade cross-fetch to v3 (#5806) (@wemeetagain)
- remove redundant eventstream error listener (#5798) (@nflaig)
- bump test-utils to 1.9.2 (#5781) (@wemeetagain)
- automatic meta-bug labels for bug report issues template (#5776) (@philknows)
- use node v20 throughout monorepo (#5730) (@wemeetagain)
- publish the @lodestar/prover package (#5744) (@nazarhussain)
- re-add explicit exit after beacon node closed (#5748) (@nflaig)
- remove winston from packages other than logger (#5742) (@nflaig)
- misc dashboards update (#5738) (@dapplion)
- remove explicit exit after beacon node closed (#5735) (@nflaig)
- disable rate limiting on local testnet node (#5728) (@nflaig)
- merge branch 'stable' into unstable (#5725) (@wemeetagain)
- fix local testnet dev scripts (#5719) (@nflaig)
- fix yarn install warnings (#5711) (@nflaig)
- use availableParallelism to determine thread pool size (#5691) (@nflaig)
- set node version requirement to >=18.15.0 (#5690) (@wemeetagain)
- update prometheus-gc-stats dependency (#5677) (@wemeetagain)
- review fixes for PR-5527 (#5678) (@nflaig)
- merge stable to unstable (#5679) (@tuyennhv)
- update cpu-features subdependency (#5674) (@wemeetagain)
- fix lint-grafana-dashboard.mjs id assertion (#5673) (@nflaig)
- typesafe options and cli args (#4576) (@dapplion)
- add job names to __inputs if used by dashboard (#5672) (@nflaig)
- track block source in lodestar summary dashboard (#5668) (@tuyennhv)
- deps: bump semver from 5.7.1 to 5.7.2 (#5745) (@dependabot[bot])
Documentation
- update instructions on how to contribute to dashboards (#5832) (@nflaig)
- correction on weak subjectivity (#5712) (@matthewkeil)