v0.4.0 | 2022-10-17
This release includes large refactorings, breaking changes and improvements related to four primary work-streams: building out the public API, hardening HeaderExchange, refactoring blocksync architecture and increasing metrics coverage.
Most notably, this release contains:
- 2 breaking changes, in addition to other improvements, to
HeaderExchangeas part of our work to harden and optimise it - A large-scale refactoring to the structure of the new
nodebuilderpackage (formerlynode) as well as the way components are constructed/managed, in an effort to clarify the boundaries between components and create a cleaner foundation for building out the node's API - Upgrade to the latest breaking
celestia-appdependency, including using instance ofappinstead ofkvstorein our integration tests (located innodebuilder/tests) - Metrics coverage for
dasandfraudpackages, in addition to increased coverage for other key celestia-node behaviours - Consolidation of
ipldandsharepackages into a cleaner, better defined structure, as well as general improvements toipldto remove redundant/unnecessary behaviours
What's Changed
BREAKING
- feat!(header/p2p): add deadlines on stream and rework proto by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1038
- feat!(header/p2p): extend header response with status code by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1135
- chore!: upgrade to celestia-app v0.7.0 by @rootulp in https://github.com/celestiaorg/celestia-node/pull/1147
FEATURES
- feat(metrics): metrics for PFD transactions, sampling, and broadcasts by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1083
- feat(das): add metrics to DASer by @walldiss in https://github.com/celestiaorg/celestia-node/pull/1125
- feat(fraud): add metrics to fraud package by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1047
- feat(nodebuilder): add AccountAddress to state's Module by @Bidon15 in https://github.com/celestiaorg/celestia-node/pull/1209
- feat(header/p2p): implement ErrHeadersLimitExceeded error by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1153
IMPROVEMENTS
- refactor(node/state): Refactor node pkg -> nodebuilder and split services into modules by @distractedm1nd @renaynay in https://github.com/celestiaorg/celestia-node/pull/997
- refactor(nodebuilder): Move parse methods and flag definitions to nodebuilder subpackages by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1161
- refactor(nodebuilder): moving service/ services to respective node sub-packages by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1056
- fix(state): returning CoreAccessor from nodebuilder for state.WithMetrics by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1200
- refactor(header/p2p): request head from multiple peers by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1046
- refactor(swamp): use celestia-app instead of the kvstore by @evan-forbes in https://github.com/celestiaorg/celestia-node/pull/1160
- refactor(share): Consolidate share pkg by @walldiss in https://github.com/celestiaorg/celestia-node/pull/1177
- refactor(share): IPLD/NMT improvements by @walldiss in https://github.com/celestiaorg/celestia-node/pull/1223
BUG FIXES
- bugfix(fraud): close stream properly by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1152
- bugfix(nodebuilder/fraud): remove fraud.Subscriber from module by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1169
- bugfix: fix flakiness in TestFullReconstructFromLights by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1171
- fix(ipld/plugin): don't truncate a type byte when it's not in the data by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/1196
- fix(nodebuider/header): initialize Store during start lifecycle instead of fx.Invoke by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/1218
- fix(nodebuilder): fix broken shutdown for services on fraud proofs receival by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1220
MISC
- log(header): Add detailed error for non-adjacent header attempt by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1123
- log(das): add extra debug logs for sampled headers by @walldiss in https://github.com/celestiaorg/celestia-node/pull/1157
- chore(deps): bump go.opentelemetry.io/otel/metric from 0.32.0 to 0.32.1 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/1167
- chore(deps): bump codecov/codecov-action from 3.1.0 to 3.1.1 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/1164
- chore(deps): bump go.uber.org/fx from 1.18.1 to 1.18.2 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/1179
- Disable verbose log on Debug Level for badger, watchdog, and basichost. by @HoytRen in https://github.com/celestiaorg/celestia-node/pull/1180
- Fix markdown lint workflow to run on directories by @adlerjohn in https://github.com/celestiaorg/celestia-node/pull/1170
- fix (.github/workflows): Skip over integration tests in unit test action by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1193
- fix: README link for header doc by @rootulp in https://github.com/celestiaorg/celestia-node/pull/1192
- nodebuilder: Remove current borked RPC tests in favour of implementing better ones with #962 by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1190
- docs/adr: add daser parallelization adr by @walldiss in https://github.com/celestiaorg/celestia-node/pull/1096
- chore: disable debug log in Makefile by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/1210
- fix(nodebuilder/header): Only provide
p2p.Subscriberasp2p.Broadcasterforbridgenode by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1203 - chore(nodebuilder/header): remove dead metrics code by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/1217
- Remove watchdog since go 1.19 don't need it anymore. by @HoytRen in https://github.com/celestiaorg/celestia-node/pull/1212
- chore(deps): bump github.com/spf13/cobra from 1.5.0 to 1.6.0 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/1222
- .github: add new ci_release workflow to unify CI by @MSevey in https://github.com/celestiaorg/celestia-node/pull/1191
New Contributors
- @HoytRen made their first contribution in https://github.com/celestiaorg/celestia-node/pull/1180
- @MSevey made their first contribution in https://github.com/celestiaorg/celestia-node/pull/1191
Full Changelog: https://github.com/celestiaorg/celestia-node/compare/v0.3.1...v0.4.0