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
26658
is default for RPC communication with the node - port
26659
exposes 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.network
is 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/gateway
by @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.network
by @renaynay in #1443
FEATURE
- feat(blocksync):
share.WriteEDS
by @distractedm1nd in #1139 - feat(blocksync):
share.ReadEDS
by @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
Module
by @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.Store
to 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
Module
by @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
ReadEDS
andWriteEDS
by @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 aschan
by @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.network
flag by @renaynay in #1357 - tests(nodebuilder): sync and das over non-empty blocks by @Wondertan in #1341
- refactor: changing
nodebuilder/<pkg>/service.go
to<pkg>.go
by @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
DataHash
instead ofshare.Root
by @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
ValidateBasic
onExtendedHeader
to 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-gen
to 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.Module
method signatures to containcontext.Context
as 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
NamespaceSize
var 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(share/eds): adding test utility for generating embedded test data by @distractedm1nd in #1320
- chore: bump celestia app v0.9.0 by @evan-forbes in #1300
- 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(.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
- fix(share): incorrect TestGetSharesByNamespace test by @walldiss in #1342
- fix(nodebuilder): Use test node for tests instead of New by @renaynay in #1350
- docs(adr): Public API by @Wondertan in #506
- fix(das): Correct
WithMetrics
fx Invocation by @derrandz in #1366 - chore(deps): bump golangci/golangci-lint-action from 3.3.0 to 3.3.1 by @dependabot in #1360
- 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(deps): bump google.golang.org/grpc from 1.49.0 to 1.51.0 by @dependabot in #1387
- fix(nodebuilder/das): Skip config validation for bridge node by @renaynay in #1373
- Add
kind:docs
as an oprtion for required labels by @Wondertan in #1393 - improvement(header): remove pubsub topic from p2p.subscription by @vgonkivs in #1430
- chore(deps): bump github.com/filecoin-project/go-jsonrpc from 0.1.8 to 0.1.9 by @dependabot in #1403
- fix(share): update proto import path by @walldiss in #1435
- docs(adr-11): Block Data Sync Overhaul: Part I - Storage: Various Updates by @Wondertan in #1425
- chore: bump celestia-app v0.10.0 by @evan-forbes in #1389
- core: Deprecate/remove StartTestClient in favour of StartTestCoreWithApp by @dougEfresh in #1400
New Contributors
- @derrandz made their first contribution in #1225
- @dougEfresh made their first contribution in #1400
Full Changelog: v0.4.1...v0.5.0