Release v1.0.0
Lodestar started nearly 4 years ago when it was told to Greg (CTO @ ChainSafe Systems) that developing a consensus client with JavaScript was a crazy idea. However, we’re now one step closer to living in a dream where we can have browser-compatible access to blockchain data directly from a decentralized Ethereum blockchain. Thanks to everyone that has participated in this journey, Lodestar is today production-ready and merge-ready.
Breaking Changes
Lodestar CLI flags have changed for all commands. Below there's a sample usage of a validator node for v0.41.0 and v1.0.0
v0.41.0
lodestar beacon
--rootDir /data
--api.rest.enabled
--api.rest.host 0.0.0.0
--execution.urls http://localhost:8551
--jwt-secret /jwtsecret
--weakSubjectivitySyncLatest
--weakSubjectivityServerUrl http://other-beacon-node
lodestar validator
--rootDir /data
--server http://localhost:9596
--importKeystoresPath /keystores
--importKeystoresPassword /password.txt
v1.0.0
lodestar beacon
--dataDir /data
--rest
--rest.address 0.0.0.0
--execution.urls http://localhost:8551
--jwt-secret /jwtsecret
--checkpointSyncUrl http://other-beacon-node
lodestar validator
--dataDir /data
--server http://localhost:9596
--importKeystores /keystores
--importKeystoresPassword /password.txt
Exhaustive list of all flag changes:
global flags
Previous flag | New flag |
---|---|
rootDir |
dataDir |
logLevelFile |
logFileLevel |
logRotate |
logFileDailyRotate |
logMaxFiles |
logFileDailyRotate |
network prater |
network goerli |
lodestar beacon command
Previous flag | New flag |
---|---|
api.rest.api |
rest |
api.rest.cors |
rest.cors |
api.rest.enabled |
rest.namespace |
api.rest.address |
rest.address |
api.rest.host |
rest.address |
api.rest.port |
rest.port |
builder.enabled |
builder |
chain.proposerBoostEnabled |
dropped |
chain.computeUnrealized |
dropped |
chain.defaultFeeRecipient |
suggestedFeeRecipient |
eth1.enabled |
eth1 |
eth1.providerUrl |
dropped |
eth1.depositContractDeployBlock |
hidden |
metrics.listenAddress |
metrics.address |
metrics.enabled |
metrics |
network.discv5.enabled |
discv5 |
network.discv5.bindAddr |
listenAddress |
network.discv5.bootEnrs |
bootnodes |
network.maxPeers |
dropped |
network.targetPeers |
targetPeers |
network.bootMultiaddrs |
dropped |
network.localMultiaddrs |
use port + listenAddress |
network.subscribeAllSubnets |
subscribeAllSubnets |
weakSubjectivityStateFile |
dropped |
weakSubjectivitySyncLatest |
set to default |
weakSubjectivityServerUrl |
checkpointSyncUrl |
weakSubjectivityCheckpoint |
wssCheckpoint |
lodestar validator command
Previous flag | New flag |
---|---|
importKeystoresPath |
importKeystores |
defaultFeeRecipient |
suggestedFeeRecipient |
Changelog
Merged pull requests:
- Frame encode reqresp error (#4466) (@dapplion)
- Skip waitForSlot pre-genesis (#4468) (@dapplion)
- Fix getDomain() (#4461) (@tuyennhv)
- Rename CLI flags for v1 (#4457) (@wemeetagain)
- Consider state slot in getDomain (#4430) (@wemeetagain)
- Re-enable full merge interop tests (#4458) (@g11tech)
- Update spec tests to v1.2.0-rc.3 skipping not yet supported testcases (#4456) (@g11tech)
- config/network: remove kiln and prater (#4451) (@q9f)
- cli/cmds: remove account subcommand (#4452) (@q9f)
- Update the gossip max chunk size to bellatrix specs (#4450) (@g11tech)
- Fix the prepareNextSlot scheduler and add payload metrics (#4446) (@g11tech)
- unregisterValidator when removing key from API (#4438) (@dapplion)
- Improve isValidAddress validation (#4440) (@dapplion)
- Update Docs Regarding Public Exposure of API (#4443) (@philknows)
- Throw Error if slot is too far into the future (#4437) (@dapplion)
- Fix isValidatePubkeyHex regex (#4439) (@dapplion)
- Remove rmDir bad implementation (#4441) (@dapplion)
- Validate pubkeys args in keymanager API (#4442) (@dapplion)
- Configure mainnet merge (#4429) (@g11tech)
- Revert "Move archive logic to BeaconChain class" (#4425) (@dapplion)
- Add dumpDb debug routes (#4418) (@dapplion)
- Move archive logic to BeaconChain class (#4379) (@dapplion)
- Remove premature log 'start search pow block' (#4416) (@dapplion)
- Log process block errors (#4422) (@dapplion)
- prefix light client paths with beacon (#4413) (@dadepo)
- Add error handling to exchangeTransitionConfiguration (#4414) (@dapplion)
- Add and heartbeat to engine exchangeTransitionConfigurationV1 method (#4411) (@g11tech)
- Replace usage of chai assertion to.be.$value_name (#4407) (@dapplion)
- Remove dependentRoot from getSyncCommitteeDuties (#4406) (@dapplion)
- Fix heap memory issue when processing attestations for altair (#4404) (@tuyennhv)
- Parse remote key's pubkeys into format expected by validator store. (#4405) (@dadepo)
- Add option to run beacon node in follow mode to EL (#4399) (@g11tech)
- Fix the merge block found condition while syncing (#4398) (@g11tech)
- Fix a test file name (#4389) (@nazarhussain)
- Use BeaconChain this in processBlock fns (#4377) (@dapplion)
- Update outdated examples in cli reference (#4386) (@dadepo)
- Use snake case in REST APIs (#4384) (@dapplion)
- Dont track getEffectiveBalanceIncrementsZeroInactive perf test (#4383) (@dapplion)
- Add RootCache performance test (#4374) (@dapplion)
- Make BeaconChain dependencies readonly (#4376) (@dapplion)
- Fix docker image history used tag (#4373) (@dapplion)
- Add metrics to LightClientServer (#4372) (@dapplion)
- Speed up arm64 docker build (#4369) (@dapplion)
- Add execution stats in grafana dashboard (#4362) (@g11tech)
- Build from source by default (#4359) (@dapplion)
- Add execution status to notifier on/post bellatrix (#4366) (@g11tech)
- Add eth1.forcedEth1DataVote hidden flag (#4361) (@dapplion)
- Separate E2E and Browser github workflow tests (#4356) (@g11tech)
- Optimize merge tracker and add merge metrics (#4350) (@g11tech)
- Refactor sync hashBlocks (#4343) (@tuyennhv)
- msgIdFn: use Buffer.subarray() (#4342) (@tuyennhv)
- Produce block: filter out incompatible shuffling attestations (#4336) (@tuyennhv)
- Add e2e testing support for browsers (#4292) (@nazarhussain)
- Bump @node/types (#4346) (@dapplion)
- Fix safe optimistic import (#4340) (@g11tech)
- Added retry mechanism in executionEngine for executePayload (#3854) (@dadepo)
- Cleanup merge-scripts and update quickstart reference in docs (#4347) (@g11tech)
- Add Eth1 and builder metrics (#4344) (@g11tech)
- Add mev-integration.md to docs navigation (#4339) (@philknows)
- Integrate Erigon into merge-script (#4334) (@philknows)
- Fix the installation links (#4331) (@come-maiz)
- Consume progressive balances (#4326) (@dapplion)
- Add prater ttd and bellatrix epoch (#4328) (@dapplion)
- Add mev builder usage doc (#4329) (@g11tech)
- Improve sync speed (#3989) (@dapplion)
- Reject many skipped blocks (#4020) (@dadepo)
- Use proper case in routes definition body (#4313) (@dapplion)
- Skip PrepareNextSlot scheduler for forkchoice spec tests (#4327) (@tuyennhv)
- Disable workers for e2e test runs (#4325) (@dapplion)
- Make dev command handler transparent (#4314) (@dapplion)
- Add goerli TTD to merge-script (#4323) (@philknows)
- Rename proposerBalanceDiff to proposerBalanceDelta (#4324) (@dapplion)
- Add logs to slashing protection import/export for better UX (#4257) (@g11tech)
- Adapt RangeSync process blocks in same epoch only (#4322) (@dapplion)
- Clone states only when necessary (#4279) (@dapplion)
- Add goerli flag (#4316) (@dapplion)
- Disable @typescript-eslint/member-ordering (#4321) (@dapplion)
- Add skipCreateStateCacheIfAvailable (#4319) (@dapplion)
- Add verifyBlocksSanityChecks (#4318) (@dapplion)
- Merge single and multi block processors (#4317) (@dapplion)
- Review bellatrix assembleBody (#4307) (@dapplion)
- Drop typedocs (#4312) (@dapplion)
- Allow usage of mocha --grep in spec tests (#4310) (@dapplion)
- Stop running CI for node v18 until #4145 (#4315) (@dapplion)
- Make slashingProtectionStr optional (#4296) (@dapplion)
- Run fork-choice spec tests against production code (#4299) (@dapplion)
- Update execution engine mock (#4309) (@dapplion)
- Consistent use of RootHex in notifyForkchoiceUpdate (#4308) (@dapplion)
- Preserve backslash character in panda banner (#4306) (@dapplion)
- Use EpochContext.epoch as current epoch (#4302) (@tuyennhv)
- Update stalebot settings with standardized labels (#4301) (@philknows)
- Progressively compute target stake (#4294) (@tuyennhv)
- Fix build:refdocs script in cli package (#4297) (@dapplion)
- Bump moment from 2.29.1 to 2.29.4 (#4249) (@dependabot[bot])
- Bump async from 3.2.0 to 3.2.4 (#4200) (@dependabot[bot])
- Checkpoint balances cache (#4290) (@tuyennhv)
- [README] Add GitPOAP Badge to Display Number of Minted GitPOAPs for Contributors (#4288) (@nixorokish)
- Contributing.md doc Update (#4289) (@philknows)
- Allow to verify sync committee signatures on any state (#4280) (@dapplion)
- Skip benchmark workflow for dependabot PRs (#4286) (@dapplion)
- Run lint across all packages at once (#4287) (@dapplion)
- Add startTmpBeaconDb util (#4281) (@dapplion)
- Merge getBlockSignatureSets fns into one (#4283) (@dapplion)
- Use parentBlockSlot in importBlock (#4282) (@dapplion)
- Add stateInternalCacheMiss metric (#4278) (@dapplion)
- Add stateClonedCount metric (#4128) (@dapplion)
- Add proposerBalanceDiff metric (#4124) (@dapplion)
- Add config matching tests for validator interop with other beacon nodes (#4271) (@g11tech)