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