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 https://github.com/celestiaorg/celestia-node/pull/1168
- feat!(
api/rpc): OpenRPC scaffolding, migrating OpenAPI gateway toapi/gatewayby @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1175 - feat!(gateway): reenabling gateway, adding flag to enable by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1199
- chore!: bump celestia-app to v0.10.0-rc1 by @evan-forbes in https://github.com/celestiaorg/celestia-node/pull/1338
- chore!(nodebuilder/p2p): increment the chain-id for arabica by @evan-forbes in https://github.com/celestiaorg/celestia-node/pull/1370
- chore!(nodebuilder/p2p): change genesis hash for upgraded arabica-2 by @Bidon15 in https://github.com/celestiaorg/celestia-node/pull/1371
- refactor!(cmd/cel-key): Unify flag names
--node.network->--p2p.networkby @renaynay in https://github.com/celestiaorg/celestia-node/pull/1443
FEATURE
- feat(blocksync):
share.WriteEDSby @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1139 - feat(blocksync):
share.ReadEDSby @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1158 - feat(rpc): Add client wrapper by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1195
- feat(rpc): tooling for openrpc spec autogeneration by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1283
- feat(das): make WaitCatchUp public by @walldiss in https://github.com/celestiaorg/celestia-node/pull/1380
- feat(module/das): add WaitCatchUp method to the module by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/1383
- feat(share): EDSStore scaffolding by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1232
- feat(nodebuilder/p2p): Implement
Moduleby @renaynay in https://github.com/celestiaorg/celestia-node/pull/1285 - feat(share): Implement ODSreader by @walldiss in https://github.com/celestiaorg/celestia-node/pull/1377
- feat(share): add get proof by namespace by @walldiss in https://github.com/celestiaorg/celestia-node/pull/1339
- feat(header/p2p): implement GetVerifiedRangeByHeight by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1305
- feat(share): Supplying
eds.Storeto bridge and full nodes by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1363 - feat(rpc): creating scaffolding for JWT authentication by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1325
- feat(share): eds.Blockstore by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1395
- feat(share/discovery): add Peers method by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1451
- feat(share/availability): extend SharesAvailable method with peer param by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1452
- feat(share/blocksync): implementation of ShrEx/Sub by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1436
- feat(nodebuilder/node): Implement
Moduleby @renaynay in https://github.com/celestiaorg/celestia-node/pull/1313
IMPROVEMENT
- fix: removing protocolIDs from global namespace in p2p and fraud by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1268
- refactor(nodebuilder): Allow custom networks to work over already-initialised store by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1270
- feat(blocksync): Benchmarks for
ReadEDSandWriteEDSby @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1197 - feat(ipld): integration test for namespace hasher by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1256
- refactor(share): move bad encoding fraud proof to share pkg by @walldiss in https://github.com/celestiaorg/celestia-node/pull/1241
- refactor(daser): use functional options pattern to configure daser by @derrandz in https://github.com/celestiaorg/celestia-node/pull/1225
- fix(rpc): custom JSON ExtendedHeader marshal/unmarshaling using amino wrapper by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1292
- feat(rpc): adding daser stub for friendly API error by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1308
- feat(api/gateway): Implement context cancellation middleware by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1321
- improvement(header/server): implement timeout for GetRangeByHeight request by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1318
- fix(rpc):
fraud.Proof(un)marshalling and subscription aschanby @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1307 - improvement(header/p2p): get bestHead if timeout is reached by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1319
- refactor(ipld): use Set/GetCell API from rstm2d by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/1173
- refactor(nodebuilder/p2p): Allow specifying network alias with
--p2p.networkflag by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1357 - tests(nodebuilder): sync and das over non-empty blocks by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/1341
- refactor: changing
nodebuilder/<pkg>/service.goto<pkg>.goby @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1301 - improvement(header/store): make all global variables configurable by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1388
- improvement(header/p2p): parallelize GetRangeByHeight request by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1206
- improvement(header/p2p): unify sendMessage method to request headers by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1405
- feat(header/p2p): add functional params for header/p2p package by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1398
- feat(share): Periodic GC over EDSStore by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1359
- refactor(share/eds): Store methods take
DataHashinstead ofshare.Rootby @renaynay in https://github.com/celestiaorg/celestia-node/pull/1439 - Extract common parsing logic into single function. by @HoytRen in https://github.com/celestiaorg/celestia-node/pull/1394
- feat(header/p2p): implement gcing for peerTracker by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1298
- improvement(share/discovery): send peer to multiple readers by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1460
BUG FIX
- fix: restricting PFD metrics to successful PFDs by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1255
- fix(das): Only debug log sampled header if it was actually successful by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1295
- fix(header): Extend
ValidateBasiconExtendedHeaderto include data root check by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1364 - fix(coreaccessor): pfd submission nil check by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1368
- fix(eds/byzantine): trim
NMTWrapper's namespace during BEFP validation by @evan-forbes in https://github.com/celestiaorg/celestia-node/pull/1354 - fix: allowing hostnames in gateway/rpc addr field by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1378
- fix: pointing
make openrpc-gento the correct cmd by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1390 - fix(header): add extra arg to fix build by @evan-forbes in https://github.com/celestiaorg/celestia-node/pull/1410
- refactor(nodebuilder/p2p): Extend
p2p.Modulemethod signatures to containcontext.Contextas first param by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1415
MISCELLANEOUS
- chore: gen less acounts to reduce test execution times by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/1253
- chore(share/ipld): remove dead code by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/1257
- refactor(core/fetcher): Improve error messages for fetcher methods by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1263
- refactor(nodebuilder/header): Clarify error for init store failure by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1272
- add semver tags to docker image builds by @jbowen93 in https://github.com/celestiaorg/celestia-node/pull/1277
- Makefile: update go-acc version due to errors and new release by @MSevey in https://github.com/celestiaorg/celestia-node/pull/1281
- chore(nodebuilder/p2p): Update to new arabica chain-id by @evan-forbes in https://github.com/celestiaorg/celestia-node/pull/1284
- refactor(share/ipld): Use
NamespaceSizevar for consistency by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1297 - chore(deps): bump golangci/golangci-lint-action from 3.2.0 to 3.3.0 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/1264
- chore(share/eds): adding test utility for generating embedded test data by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1320
- chore: bump celestia app v0.9.0 by @evan-forbes in https://github.com/celestiaorg/celestia-node/pull/1300
- feat(share/availability/light): Add some debug logs for sampling by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1294
- fix(gateway): switch to separate Listen/Serve by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1314
- feat(.github): add labels on issues workflow by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1315
- refactor(nodebuilder): Logger names in subpackages to
constructor/<subpkg>by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1324 - refactor: linewrapping comments to 100 width by @distractedm1nd in https://github.com/celestiaorg/celestia-node/pull/1274
- fix(.github): Point at correct action by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1335
- fix(.github/workflows): Implement working label automation by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1346
- fix(share): incorrect TestGetSharesByNamespace test by @walldiss in https://github.com/celestiaorg/celestia-node/pull/1342
- fix(nodebuilder): Use test node for tests instead of New by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1350
- docs(adr): Public API by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/506
- fix(das): Correct
WithMetricsfx Invocation by @derrandz in https://github.com/celestiaorg/celestia-node/pull/1366 - chore(deps): bump golangci/golangci-lint-action from 3.3.0 to 3.3.1 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/1360
- chore(deps): bump go.opentelemetry.io/otel/metric from 0.32.1 to 0.33.0 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/1267
- Update Docker image build pipelines by @jbowen93 in https://github.com/celestiaorg/celestia-node/pull/1337
- chore(deps): bump google.golang.org/grpc from 1.49.0 to 1.51.0 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/1387
- fix(nodebuilder/das): Skip config validation for bridge node by @renaynay in https://github.com/celestiaorg/celestia-node/pull/1373
- Add
kind:docsas an oprtion for required labels by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/1393 - improvement(header): remove pubsub topic from p2p.subscription by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/1430
- chore(deps): bump github.com/filecoin-project/go-jsonrpc from 0.1.8 to 0.1.9 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/1403
- fix(share): update proto import path by @walldiss in https://github.com/celestiaorg/celestia-node/pull/1435
- docs(adr-11): Block Data Sync Overhaul: Part I - Storage: Various Updates by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/1425
- chore: bump celestia-app v0.10.0 by @evan-forbes in https://github.com/celestiaorg/celestia-node/pull/1389
- core: Deprecate/remove StartTestClient in favour of StartTestCoreWithApp by @dougEfresh in https://github.com/celestiaorg/celestia-node/pull/1400
New Contributors
- @derrandz made their first contribution in https://github.com/celestiaorg/celestia-node/pull/1225
- @dougEfresh made their first contribution in https://github.com/celestiaorg/celestia-node/pull/1400
Full Changelog: https://github.com/celestiaorg/celestia-node/compare/v0.4.1...v0.5.0