Release v1.18.0
Our new release contains some noticable facelifts! We recommend this update to all users of Lodestar.
Our documentation located at https://chainsafe.github.io/lodestar/ is now using Docusaurus for a better experience. We've attached Plausible metrics to further help improve the contents of our documentation with minimal intrusiveness and open-source analytics. We continue to do content additions and improve our documentation for the best user and builder experience possible.
This release addresses many compatibility issues discovered from cross-client testing with Lodestar and other consensus clients. This also includes fixes for compatibility with some external DVT platforms and remote signers.
Target peers by default has been increased from 50 to 100 peers. Many users have already set this for better validator effectiveness and now we have it set by default to become a better peer on the network.
builder.selection
now has a default
setting that gives slightly preferential treatment to locally produced blocks via builderBoostFactor=90
. This configurable setting is set to 90 instead of 100 by default, requiring builder blocks from relays to be above ~10% profit to be selected. The previous default setting was maxprofit
. This can be changed in your local configuration.
Basic devcontainer support is now integrated for easier development setups such as Github Codespaces. For more information, see https://chainsafe.github.io/lodestar/contribution/getting-started#devcontainer.
Changelog
Features
- synchronize keys between validator client and external signer (#6672) (@nflaig)
- add basic devcontainer support (#6667) (@jeluard)
- add POST endpoints for validators and validator_balances (#6655) (@nflaig)
- add
finalized
metadata field to HTTP API responses (#6645) (@nflaig) - increase default target peers to 100 (#6556) (@tuyennhv)
- track leaked libp2p connections (#6656) (@tuyennhv)
- set default builderBoostFactor to 90 (#6568) (@fredriksvantes)
- add token-file as an alias to configure keymanager token file (#6609) (@nflaig)
- introduce proposer boost reorg to fork choice (#6581) (@ensi321)
- enable gossipsub batch publish (#6597) (@tuyennhv)
- allow to configure keymanager token file path (#6525) (@nflaig)
- add anonymized analytics to docs (#6573) (@jeluard)
- n-historical states feature flags (#6538) (@tuyennhv)
- new BeaconState.balances ssz type (#6557) (@tuyennhv)
- add endpoint for attestations reward (#6484) (@ensi321)
- docusaurus migration (#6533) (@jeluard)
- pull block from peers after a cutoff if corresponding gossip blobs are seen (#6534) (@g11tech)
Bug Fixes
- convert getStateV2 response to Buffer without memory copy (#6687) (@nflaig)
- update @libp2p/tcp (#6676) (@wemeetagain)
- head state regen in n-historical state (#6674) (@tuyennhv)
- prune oldest slots first in aggregator tracker (#6668) (@nflaig)
- properly handle missing schema if route is not defined (#6650) (@nflaig)
- return 404 error if no aggregated attestation is available (#6648) (@nflaig)
- compute and get head once when producing block (#6617) (@tuyennhv)
- no state in cache for finalized checkpoint state (#6620) (@tuyennhv)
- add
accept: application/json
header to remote signer requests and improve invalid response handling (#6587) (@cnupy) - light-client start should never block (#6619) (@jeluard)
- checkpoint state cache grafana panel labels (#6618) (@tuyennhv)
- gossipsub seen_ttl should be in ms (#6607) (@tuyennhv)
- n historical states metrics (#6608) (@tuyennhv)
- no state id finalized (#6584) (@tuyennhv)
- reject promise on file stream error when writing heap snapshot (#6603) (@nflaig)
- improve state serialization (#6563) (@tuyennhv)
- set Eth-Consensus-Version header in publish block requests (#6593) (@jeluard)
- gossipsub seen_ttl for EIP-7045 (#6569) (@tuyennhv)
- handle skip_randao_verification query param as per spec (#6576) (@nazarhussain)
- gossipsub pre_validation metrics (#6562) (@tuyennhv)
- use right slot number for future epoch of proposers duties (#6545) (@nazarhussain)
- support eth_getBlockByNumber (#6442) (@jeluard)
Refactoring
- export beacon utils to be reused by other packages (#6640) (@nazarhussain)
Dependencies
- update fastify to v4.26.2 (#6626) (@nflaig)
- upgrade vitest to 1.4.0 (#6570) (@nazarhussain)
- upgrade typescript to 5.4 (#6552) (@nazarhussain)
Tests
- improve sim tests for some remaining feedback (#6654) (@nazarhussain)
- move 4844 tests to sim tests (#6622) (@nazarhussain)
- add support for web3.js to simulation tests (#6641) (@nazarhussain)
- rename all sim test files to camelCase (#6643) (@nazarhussain)
- make sure the docker container stopped (#6642) (@nazarhussain)
- update web3signer e2e tests to verify deneb signatures (#6630) (@nflaig)
- add debug messages to waitForSlot helper (#6639) (@nazarhussain)
- move syncing logic to helper functions (#6638) (@nazarhussain)
- fix multi-fork tests (#6610) (@nazarhussain)
- move withdrawal tests to sim tests (#6507) (@nazarhussain)
- upgrade geth version in the sim tests (#6540) (@nazarhussain)
Maintenance
- release v1.18.0 (#6702) (@wemeetagain)
- revert "fix: update @libp2p/tcp (#6676)" (#6701) (@nflaig)
- unify blockStateCache naming convention (#6695) (@tuyennhv)
- switch from gtag to plausible (#6680) (@jeluard)
- track leaked connections in grafana (#6675) (@tuyennhv)
- add beacon node info log when publishing block (#6661) (@nflaig)
- include slot in publish to topic log (#6662) (@nflaig)
- reuse setup action (#6659) (@jeluard)
- upgrade to maintained action (#6657) (@jeluard)
- fix heap allocations panel in VM + host dashboard (#6647) (@nflaig)
- upgrade docusaurus (#6623) (@jeluard)
- refactor DLLAttnetsService to AttnetsService (#6605) (@tuyennhv)
- remove AttnetsService (#6579) (@tuyennhv)
- reorder block production log statements (#6601) (@jeluard)
- allow to pass extra args to dev scripts (#6600) (@jeluard)
- track state hash_tree_root by bucket (#6599) (@tuyennhv)
- fix spelling in comments (#6588) (@matthewkeil)
- fix documentation CLI (#6566) (@jeluard)
- customize docusaurus title (#6560) (@jeluard)
- allow to serve docs from root folder (#6571) (@jeluard)
- use vs theme for docusaurus (#6572) (@jeluard)
- update the website docs (#6565) (@jeluard)
- use regular env for docs publishing (#6561) (@jeluard)
- remove repetitive words (#6544) (@acceptacross)
- remove now useless bls init (#6513) (@jeluard)
- apply a small cleanup in types (#6541) (@g11tech)
- use mitt where possible (#6535) (@jeluard)
- track epoch transition by reason and prepare next epoch duration (#6529) (@tuyennhv)
- release script commit update for clarity (#6526) (@philknows)
- merge v1.17.0 stable back to unstable (#6527) (@philknows)
- update release script to bump packages commit conventionally (#6524) (@philknows)
- deps: bump express from 4.18.3 to 4.19.2 in /docs (#6614) (@dependabot[bot])
- deps: bump web3-utils from 4.0.3 to 4.2.3 (#6698) (@dependabot[bot])
- deps: bump follow-redirects from 1.15.5 to 1.15.6 in /docs (#6558) (@dependabot[bot])
- deps: bump webpack-dev-middleware from 5.3.3 to 5.3.4 in /docs (#6585) (@dependabot[bot])
- deps: bump katex from 0.16.9 to 0.16.10 in /docs (#6592) (@dependabot[bot])
- deps: bump follow-redirects from 1.15.4 to 1.15.6 (#6555) (@dependabot[bot])
- deps: bump ip from 1.1.8 to 1.1.9 (#6461) (@dependabot[bot])
- deps: bump vite from 5.0.12 to 5.2.10 (#6697) (@dependabot[bot])
- deps: bump tar from 6.1.13 to 6.2.1 (#6658) (@dependabot[bot])