Releases: celestiaorg/celestia-node
v0.6.0 - Mocha
This release upgrades celestia-node's dependency on celestia-app to incorporate a fix to a share splitting bug.
The binary will also now point to mocha as the default network.
Also, transaction methods have been extended to include a fee argument which breaks the public API (and REST endpoints). Please see #1484 for further details.
What's Changed
BREAKING
- chore!(nodebuilder/p2p): Upgrade
mamakitomochaby @renaynay in #1434 - refactor(nodebuilder/p2p): Switch default network from
arabicatomochaby @renaynay in #1462 - feat(state)!: Adding fee parameter to
CoreAccessoroperations by @distractedm1nd in #1484
BUG FIXES
- fix(state): Verify the state inclusion proof without splitting keys by @evan-forbes in #1483
MISCELLANEOUS
- chore: bump celestia-app to v0.11.0 by @evan-forbes in #1478
Full Changelog: v0.5.0...v0.6.0
v0.5.0
This release contains several weeks-worth of progress in the direction of our three primary work streams: building out celestia-node's public API, hardening our header-ex, and refactoring blocksync storage (all of these epics can be viewed in more depth as they are pinned in our issues).
This release contains two breaking changes to the public API, including:
- port
26658is default for RPC communication with the node - port
26659exposes a RESTful gateway to access node endpoints that were previously available on26658
as well as a breaking change to the CLI for both the celestia and cel-key binaries:
--node.networkis now--p2p.network
and a breaking upgrade of our celestia-app dependency which changes the rsmt2d codec used and fixes an issue with share splitting.
What's Changed
BREAKING
- refactor!(params): Moving params to nodebuilder and adding config by @distractedm1nd in #1168
- feat!(
api/rpc): OpenRPC scaffolding, migrating OpenAPI gateway toapi/gatewayby @distractedm1nd in #1175 - feat!(gateway): reenabling gateway, adding flag to enable by @distractedm1nd in #1199
- chore!: bump celestia-app to v0.10.0-rc1 by @evan-forbes in #1338
- chore!(nodebuilder/p2p): increment the chain-id for arabica by @evan-forbes in #1370
- chore!(nodebuilder/p2p): change genesis hash for upgraded arabica-2 by @Bidon15 in #1371
- refactor!(cmd/cel-key): Unify flag names
--node.network->--p2p.networkby @renaynay in #1443
FEATURE
- feat(blocksync):
share.WriteEDSby @distractedm1nd in #1139 - feat(blocksync):
share.ReadEDSby @distractedm1nd in #1158 - feat(rpc): Add client wrapper by @distractedm1nd in #1195
- feat(rpc): tooling for openrpc spec autogeneration by @distractedm1nd in #1283
- feat(das): make WaitCatchUp public by @walldiss in #1380
- feat(module/das): add WaitCatchUp method to the module by @Wondertan in #1383
- feat(share): EDSStore scaffolding by @distractedm1nd in #1232
- feat(nodebuilder/p2p): Implement
Moduleby @renaynay in #1285 - feat(share): Implement ODSreader by @walldiss in #1377
- feat(share): add get proof by namespace by @walldiss in #1339
- feat(header/p2p): implement GetVerifiedRangeByHeight by @vgonkivs in #1305
- feat(share): Supplying
eds.Storeto bridge and full nodes by @distractedm1nd in #1363 - feat(rpc): creating scaffolding for JWT authentication by @distractedm1nd in #1325
- feat(share): eds.Blockstore by @distractedm1nd in #1395
- feat(share/discovery): add Peers method by @vgonkivs in #1451
- feat(share/availability): extend SharesAvailable method with peer param by @vgonkivs in #1452
- feat(share/blocksync): implementation of ShrEx/Sub by @vgonkivs in #1436
- feat(nodebuilder/node): Implement
Moduleby @renaynay in #1313
IMPROVEMENT
- fix: removing protocolIDs from global namespace in p2p and fraud by @distractedm1nd in #1268
- refactor(nodebuilder): Allow custom networks to work over already-initialised store by @renaynay in #1270
- feat(blocksync): Benchmarks for
ReadEDSandWriteEDSby @distractedm1nd in #1197 - feat(ipld): integration test for namespace hasher by @distractedm1nd in #1256
- refactor(share): move bad encoding fraud proof to share pkg by @walldiss in #1241
- refactor(daser): use functional options pattern to configure daser by @derrandz in #1225
- fix(rpc): custom JSON ExtendedHeader marshal/unmarshaling using amino wrapper by @distractedm1nd in #1292
- feat(rpc): adding daser stub for friendly API error by @distractedm1nd in #1308
- feat(api/gateway): Implement context cancellation middleware by @renaynay in #1321
- improvement(header/server): implement timeout for GetRangeByHeight request by @vgonkivs in #1318
- fix(rpc):
fraud.Proof(un)marshalling and subscription aschanby @distractedm1nd in #1307 - improvement(header/p2p): get bestHead if timeout is reached by @vgonkivs in #1319
- refactor(ipld): use Set/GetCell API from rstm2d by @Wondertan in #1173
- refactor(nodebuilder/p2p): Allow specifying network alias with
--p2p.networkflag by @renaynay in #1357 - tests(nodebuilder): sync and das over non-empty blocks by @Wondertan in #1341
- refactor: changing
nodebuilder/<pkg>/service.goto<pkg>.goby @distractedm1nd in #1301 - improvement(header/store): make all global variables configurable by @vgonkivs in #1388
- improvement(header/p2p): parallelize GetRangeByHeight request by @vgonkivs in #1206
- improvement(header/p2p): unify sendMessage method to request headers by @vgonkivs in #1405
- feat(header/p2p): add functional params for header/p2p package by @vgonkivs in #1398
- feat(share): Periodic GC over EDSStore by @distractedm1nd in #1359
- refactor(share/eds): Store methods take
DataHashinstead ofshare.Rootby @renaynay in #1439 - Extract common parsing logic into single function. by @HoytRen in #1394
- feat(header/p2p): implement gcing for peerTracker by @vgonkivs in #1298
- improvement(share/discovery): send peer to multiple readers by @vgonkivs in #1460
BUG FIX
- fix: restricting PFD metrics to successful PFDs by @distractedm1nd in #1255
- fix(das): Only debug log sampled header if it was actually successful by @renaynay in #1295
- fix(header): Extend
ValidateBasiconExtendedHeaderto include data root check by @renaynay in #1364 - fix(coreaccessor): pfd submission nil check by @distractedm1nd in #1368
- fix(eds/byzantine): trim
NMTWrapper's namespace during BEFP validation by @evan-forbes in #1354 - fix: allowing hostnames in gateway/rpc addr field by @distractedm1nd in #1378
- fix: pointing
make openrpc-gento the correct cmd by @distractedm1nd in #1390 - fix(header): add extra arg to fix build by @evan-forbes in #1410
- refactor(nodebuilder/p2p): Extend
p2p.Modulemethod signatures to containcontext.Contextas first param by @renaynay in #1415
MISCELLANEOUS
- chore: gen less acounts to reduce test execution times by @Wondertan in #1253
- chore(share/ipld): remove dead code by @Wondertan in #1257
- refactor(core/fetcher): Improve error messages for fetcher methods by @renaynay in #1263
- refactor(nodebuilder/header): Clarify error for init store failure by @renaynay in #1272
- add semver tags to docker image builds by @jbowen93 in #1277
- Makefile: update go-acc version due to errors and new release by @MSevey in #1281
- chore(nodebuilder/p2p): Update to new arabica chain-id by @evan-forbes in #1284
- refactor(share/ipld): Use
NamespaceSizevar for consistency by @renaynay in #1297 - chore(deps): bump golangci/golangci-lint-action from 3.2.0 to 3.3.0 by @dependabot in #1264
- chore...
v0.5.0-rc5
What's Changed
Full Changelog: v0.5.0-rc4...v0.5.0-rc5
v0.5.0-rc4
What's Changed
- chore(deps): bump go.opentelemetry.io/otel/metric from 0.32.1 to 0.33.0 by @dependabot in #1267
- Update Docker image build pipelines by @jbowen93 in #1337
- chore!(nodebuilder/p2p): increment the chain-id for arabica by @evan-forbes in #1370
Full Changelog: v0.5.0-rc3...v0.5.0-rc4
v0.5.0-rc3
What's Changed
- docs(adr): Public API by @Wondertan in #506
- fix(header): Extend
ValidateBasiconExtendedHeaderto include data root check by @renaynay in #1364 - fix(das): Correct
WithMetricsfx Invocation by @derrandz in #1366 - refactor(nodebuilder/p2p): Allow specifying network alias with
--p2p.networkflag by @renaynay in #1357 - fix(coreaccessor): pfd submission nil check by @distractedm1nd in #1368
- chore(deps): bump golangci/golangci-lint-action from 3.3.0 to 3.3.1 by @dependabot in #1360
- fix(eds/byzantine): trim
NMTWrapper's namespace during BEFP validation by @evan-forbes in #1354 - chore!: bump celestia-app to v0.10.0-rc1 by @evan-forbes in #1338
Full Changelog: v0.5.0-rc2...v0.5.0-rc3
v0.5.0-rc2
What's Changed
- feat(share/availability/light): Add some debug logs for sampling by @renaynay in #1294
- fix(gateway): switch to separate Listen/Serve by @distractedm1nd in #1314
- feat(api/gateway): Implement context cancellation middleware by @renaynay in #1321
- feat(.github): add labels on issues workflow by @renaynay in #1315
- refactor(nodebuilder): Logger names in subpackages to
constructor/<subpkg>by @renaynay in #1324 - refactor: linewrapping comments to 100 width by @distractedm1nd in #1274
- fix(.github): Point at correct action by @renaynay in #1335
- fix(.github/workflows): Implement working label automation by @renaynay in #1346
- improvement(header/server): implement timeout for GetRangeByHeight request by @vgonkivs in #1318
- fix(rpc):
fraud.Proof(un)marshalling and subscription aschanby @distractedm1nd in #1307 - fix(share): incorrect TestGetSharesByNamespace test by @walldiss in #1342
- fix(nodebuilder): Use test node for tests instead of New by @renaynay in #1350
- improvement(header/p2p): get bestHead if timeout is reached by @vgonkivs in #1319
- refactor(ipld): use Set/GetCell API from rstm2d by @Wondertan in #1173
Full Changelog: v0.5.0-rc1...v0.5.0-rc2
v0.5.0-rc1
Release candidate for v0.5.0
What's Changed
BREAKING
- refactor!(params): Moving params to nodebuilder and adding config by @distractedm1nd in #1168
- feat!(
api/rpc): OpenRPC scaffolding, migrating OpenAPI gateway toapi/gatewayby @distractedm1nd in #1175 - feat!(gateway): reenabling gateway, adding flag to enable by @distractedm1nd in #1199
- feat(rpc): Add client wrapper by @distractedm1nd in #1195
FEATURE
- feat(blocksync):
share.WriteEDSby @distractedm1nd in #1139 - feat(blocksync):
share.ReadEDSby @distractedm1nd in #1158 - feat(blocksync): Benchmarks for
ReadEDSandWriteEDSby @distractedm1nd in #1197 - feat(ipld): integration test for namespace hasher by @distractedm1nd in #1256
IMPROVEMENT
- fix: removing protocolIDs from global namespace in p2p and fraud by @distractedm1nd in #1268
- refactor(nodebuilder): Allow custom networks to work over already-initialised store by @renaynay in #1270
- refactor(share): move bad encoding fraud proof to share pkg by @walldiss in #1241
- refactor(daser): use functional options pattern to configure daser by @derrandz in #1225
- feat(rpc): adding daser stub for friendly API error by @distractedm1nd in #1308
- chore(share/eds): adding test utility for generating embedded test data by @distractedm1nd in #1320
BUG FIX
- fix: restricting PFD metrics to successful PFDs by @distractedm1nd in #1255
- fix(das): Only debug log sampled header if it was actually successful by @renaynay in #1295
- fix(rpc): custom JSON ExtendedHeader marshal/unmarshaling using amino wrapper by @distractedm1nd in #1292
MISCELLANEOUS
- chore: gen less acounts to reduce test execution times by @Wondertan in #1253
- chore(share/ipld): remove dead code by @Wondertan in #1257
- refactor(core/fetcher): Improve error messages for fetcher methods by @renaynay in #1263
- refactor(nodebuilder/header): Clarify error for init store failure by @renaynay in #1272
- add semver tags to docker image builds by @jbowen93 in #1277
- Makefile: update go-acc version due to errors and new release by @MSevey in #1281
- chore(nodebuilder/p2p): Update to new arabica chain-id by @evan-forbes in #1284
- refactor(share/ipld): Use
NamespaceSizevar for consistency by @renaynay in #1297 - chore(deps): bump golangci/golangci-lint-action from 3.2.0 to 3.3.0 by @dependabot in #1264
- chore: bump celestia app v0.9.0 by @evan-forbes in #1300
New Contributors
Full Changelog: v0.4.1...v0.5.0-rc1
v0.4.2 - Upgrade network ID to `arabica-1`
This patch release upgrades the network ID to arabica-1.
Full Changelog: v0.4.1...v0.4.2
v0.4.1 - Bug fixes for `namespaceHasher` and `CoreAccessor`
This patch release contains a two bug fixes for issues found during testing on v0.4.0.
-
namespaceHasher.Write's error is not properly handled for, so in the case that data comes in that is of an unexpected length, the error is not caught and causes a panic. To remedy that,namespaceHasher.Sumnow returns nil in the case that the data is empty such thatmultihash.encodeHashwill catch it and an error will be returned. -
CoreAccessorused the context passed into it from construction to manage its lifecycle which was incorrect as that context should only be used for the start operation rather than the management of its lifecycle.CoreAccessornow manages its own context internally to the component.
What's Changed
IMPROVEMENTS
BUG FIXES
- fix: returning nil sum when hasher receives data with incorrect length by @distractedm1nd in #1245
- fix(state):
CoreAccessormanages its own context by @renaynay in #1247
MISC
- .github: add triggering on versioned tags by @MSevey in #1237
- refactor(share/ipld): Use consts for node type determination by @renaynay in #1244
Full Changelog: v0.4.0...v0.4.1
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
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 #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.Subscriberasp2p.Broadcasterforbridgenode 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