github celestiaorg/celestia-node v0.5.0

21 months ago

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 on 26658

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 to api/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

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 and WriteEDS 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 as chan 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 of share.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 on ExtendedHeader 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 contain context.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

Full Changelog: v0.4.1...v0.5.0

Don't miss a new celestia-node release

NewReleases is sending notifications on new releases.