Skip to content

Releases: celestiaorg/celestia-node

v0.16.0

03 Sep 14:56
6744f64
Compare
Choose a tag to compare

NOTE: There is a bug in go1.23 that may cause networking and timeout issues(golang/go#69312). If you experience syncing/sampling instability, try running your node with GODEBUG="asynctimerchan=1"

What’s Changed:

  • Celestia-App v2 (Lemongrass) Upgrade:

    • The latest release integrates the Celestia-App v2 (Lemongrass) upgrade, which introduces key improvements such as Interchain Accounts and Packet Forward Middleware. This update is backward-compatible with existing node configurations, ensuring a smooth transition. However, there are minor API breaking changes for SubmitPayForBlob API to note:
      • Error Handling: The way errors are constructed within the SubmitPayForBlob function has been slightly modified. Despite this change, the errors returned will continue to contain the same information as before, ensuring that all necessary details are still available in the error.
      • API Response Changes: The return type for SubmitPayForBlob remains unchanged, but most fields in the response will now be omitted. Only the Code, TxHash, and Height fields will be populated, with all other fields set to empty values.
  • Community-Run Bootstrappers for Mocha Test Network:

    • We’ve added new community-operated bootstrappers to the Mocha Testnet, contributed by pops.one and qubelabs. These bootstrappers will enhance the network's decentralization and resilience.
  • Performance Improvements for Full and Bridge Nodes:

    • This release includes significant performance optimizations for Full and Bridge nodes, particularly in CPU and disk IOPS consumption. These improvements aim to reduce resource usage, providing a more efficient and stable node operation experience.

Changelog

Breaking

Celestia-App v2 (Lemongrass) Upgrade

  • chore(deps): upgrade to celestia-app v2.0.0 by @rootulp in #3453

Mocha bootstrapers update

  • feat(chore): Add the Pops.one bootstrapper to the Mocha test network by @rooiie in #3706
  • Add Qubelabs Bootstrapper for Mocha by @qubelabsio in #3708
  • feat: mocha update DNS of BN bootstrapper by @smuu in #3659
  • feat: mocha bootstrapper now with dnsaddr by @smuu in #3704

Performance improvements

Fixes

  • fix(p2p): couple bitswap client and server by @walldiss in #3641
  • fix(nodebuilder/state): overwrite state flags only if they were passed explicitly by @vgonkivs in #3663
  • fix(store/cache): force close Accessor if not closed within timeout by @walldiss in #3642

Other

  • chore: improve Make help command by @rootulp in #3640
  • refactor(header): Validate should check that the raw header's app version is not greater than latest app version by @renaynay in #3589
  • chore(deps): Bump golangci/golangci-lint-action from 6.0.1 to 6.1.0 by @dependabot in #3622
  • misc(ci): detect breaking change to any .proto files or config fields in nodebuilder/**/config.go and add kind:break! by @ramin in #3568
  • config(issues): extend bug report template to request DASer state for stuck nodes by @ramin in #3564
  • chore(deps): Bump alpine from 3.20.1 to 3.20.2 by @dependabot in #3602
  • ci(CODEOWNERS): remove @ramin by @ramin in #3660
  • ci: fix goreleaser check deprecation warning by @rootulp in #3667
  • deps(go.mod): bump boxo + libp2p by @renaynay in #3671
  • chore(deps): Bump google.golang.org/grpc from 1.64.0 to 1.65.0 by @dependabot in #3565
  • chore(deps): Bump github.com/rollkit/go-da from 0.4.0 to 0.5.0 by @dependabot in #3269
  • chore(deps): Bump github.com/gofrs/flock from 0.8.1 to 0.12.1 by @dependabot in #3588
  • chore(deps): Bump github.com/filecoin-project/go-jsonrpc from 0.4.0 to 0.6.0 by @dependabot in #3623
  • chore(deps): Bump github.com/libp2p/go-libp2p-routing-helpers from 0.7.3 to 0.7.4 by @dependabot in #3541
  • chore(ci): add lint imports ci action by @walldiss in #3677
  • chore(lint): bump golang-ci lint to 1.60 by @walldiss in #3678
  • chore: bump bump go to 1.23 by @walldiss in #3676
  • fix(share/discovery): fix TestDiscovery test by @walldiss in #3699
  • chore(deps): bump go-libp2p-kad-dht to v0.26.1 by @walldiss in #3698
  • refactor(share/bitswap): remove feature flag for bitswap fix by @walldiss in #3703
  • feat(metrics): send bitswap metric to prometheus by @walldiss in #3701

New Contributors

Full Changelog: v0.15.0...v0.16.0

v0.16.1-rc0

20 Aug 16:47
9fd66a5
Compare
Choose a tag to compare
v0.16.1-rc0 Pre-release
Pre-release

This release focuses on performance improvements in the P2P layer, aiming to reduce CPU load on the server side for both Full and Bridge nodes.

What's Changed

  • chore(deps): Bump golangci/golangci-lint-action from 6.0.1 to 6.1.0 by @dependabot in #3622
  • misc(ci): detect breaking change to any .proto files or config fields in nodebuilder/**/config.go and add kind:break! by @ramin in #3568
  • config(issues): extend bug report template to request DASer state for stuck nodes by @ramin in #3564
  • chore(deps): Bump alpine from 3.20.1 to 3.20.2 by @dependabot in #3602
  • fix(p2p): couple bitswap client and server by @walldiss in #3641
  • feat: mocha update DNS of BN bootstrapper by @smuu in #3659
  • ci(CODEOWNERS): remove @ramin by @ramin in #3660
  • fix(nodebuilder/state): overwrite state flags only if they were passed explicitly by @vgonkivs in #3663
  • ci: fix goreleaser check deprecation warning by @rootulp in #3667
  • fix(store/cache): force close Accessor if not closed within timeout by @walldiss in #3642
  • deps(go.mod): bump boxo + libp2p by @renaynay in #3671
  • fix(share): return fixed data size in blockstore by @cristaloleg in #3634

Full Changelog: v0.16.0-rc0...v0.16.1-rc0

v0.15.1-rc0

21 Aug 13:04
9fd66a5
Compare
Choose a tag to compare
v0.15.1-rc0 Pre-release
Pre-release

What's Changed

  • chore(deps): upgrade to celestia-app v2.0.0 by @rootulp in #3453
  • chore: improve Make help command by @rootulp in #3640
  • refactor(header): Validate should check that the raw header's app version is not greater than latest app version by @renaynay in #3589
  • chore(deps): Bump golangci/golangci-lint-action from 6.0.1 to 6.1.0 by @dependabot in #3622
  • misc(ci): detect breaking change to any .proto files or config fields in nodebuilder/**/config.go and add kind:break! by @ramin in #3568
  • config(issues): extend bug report template to request DASer state for stuck nodes by @ramin in #3564
  • chore(deps): Bump alpine from 3.20.1 to 3.20.2 by @dependabot in #3602
  • fix(p2p): couple bitswap client and server by @walldiss in #3641
  • feat: mocha update DNS of BN bootstrapper by @smuu in #3659
  • ci(CODEOWNERS): remove @ramin by @ramin in #3660
  • fix(nodebuilder/state): overwrite state flags only if they were passed explicitly by @vgonkivs in #3663
  • ci: fix goreleaser check deprecation warning by @rootulp in #3667
  • fix(store/cache): force close Accessor if not closed within timeout by @walldiss in #3642
  • deps(go.mod): bump boxo + libp2p by @renaynay in #3671
  • fix(share): return fixed data size in blockstore by @cristaloleg in #3634

Full Changelog: v0.15.0...v0.15.1-rc0

v0.16.0-rc0

08 Aug 18:57
6032885
Compare
Choose a tag to compare
v0.16.0-rc0 Pre-release
Pre-release
refactor(header): `Validate` should check that the raw header's app v…

…ersion is not greater than latest app version (#3589)

Co-authored-by: Callum Waters <[email protected]>

v0.15.0

07 Aug 13:23
b745c60
Compare
Choose a tag to compare

Note: this release is currently intended for mocha-4

This release breaks config, so a re-initialisation of the config is necessary. Please refer here for instructions on how to do it.

What’s Changed

This release brings a few notable API-breaking changes:

  • Adds a TxConfig struct that is applied to all write transactions(transfer/submitPFB etc)
  • Removes blob.GasPrice since blob.Submit requires SubmitOptions which are type alias of TxConfig
  • Removes SubmitTx endpoint from state Module
  • Returns empty values in the case that blob(s) were not found

Along with some config/CLI-breaking changes:

  • Renames KeyringAccName to DefaultKeyName and KeyringBackend to DefaultBackendName in the state config
  • Reworks flags for tx submission through CLI

It also brings some notable new features:

  • Ability to submit blobs / txs from multiple accounts
  • New proving endpoints introduced by the Blobstream API in both blob Module and the blobstream Module
  • Subscriptions to blobs from a given namespace
  • Adds websocket/webrtc support for better browser compatibility

Changelog

BREAKING

  • misc(blob/service)!: return empty values in case blobs were not found by @vgonkivs in #3223
  • feat!(state/core_access): add TxConfig by @vgonkivs in #3349
  • improvement(blob/cmd): remove base64 representation by @vgonkivs in #3553
  • refactor(state/gateway)!: remove SubmitTx endpoint from RPC and Gateway by @distractedm1nd in #3391

FEATURES

FIXES

  • fix(nodebuilder/p2p): LNs restricted to acting as DHT clients only by @renaynay in #3590
  • fix(cmd): fix namespace representation in cmd output by @vgonkivs in #3537
  • fix(libs/utils): rely on DNS for rpc/grpc requests to core by @ramin in #3624

OTHER

  • ci: remove golangci-lint action warning by @ramin in #3500
  • feat(metrics): add common labels to prometheus by @walldiss in #3508
  • ci: update celestia shared dep to remove node 16 warning by @ramin in #3507
  • chore(deps): Bump codecov/codecov-action from 4.4.1 to 4.5.0 by @dependabot in #3504
  • chore(deps): Bump github.com/spf13/cobra from 1.8.0 to 1.8.1 by @dependabot in #3501
  • feat(docgen): improve examples by @distractedm1nd in #3479
  • refactor: use libhead alias consistently by @cristaloleg in #3519
  • feat: arabica bootstrappers now dnsaddr multiaddr by @smuu in #3525
  • chore(deps): upgrade to celestia-app v1.12.0 by @rootulp in #3527
  • chore(deps): Bump github.com/hashicorp/go-getter from 1.7.4 to 1.7.5 by @dependabot in #3528
  • fix(nodebuilder/core): non default values from config.toml are written over by flag defaults in specific circumstances by @ramin in #3526
  • chore(deps): Bump alpine from 3.20.0 to 3.20.1 by @dependabot in #3521
  • fix(nodebuilder/p2p): remove prepended v against detected semantic version by @ramin in #3547
  • chore: bump cristalhq/jwt to v5 by @cristaloleg in #3476
  • chore(ci): formatting / whitespace by @ramin in #3495
  • docs(blob): update godoc comments to better match what Get and GetProof actually do by @ramin in #3530
  • refactor(pruner): reset maxHeadersPerLoop properly by @cristaloleg in #3552
  • chore(deps): Bump the otel group with 8 updates by @dependabot in #3457
  • fix(ci/release): golreleaser pre-release behavior by @ramin in #3569
  • ci(lint): correct cfmt argument in make lint by @ramin in #3562
  • chore: bump libp2p by @Wondertan in #3581
  • fix(share/getters): set minTimeout by @vgonkivs in #3591
  • chore(deps): Bump golang from 1.22.4-alpine3.20 to 1.22.5-alpine3.20 by @dependabot in #3558
  • refactor(share): use sync.Once instead of mutex for init by @cristaloleg in #3625
  • deps: bump libp2p and enable WebRTC by @Wondertan in #3627
  • deps: bump libp2p(again) by @Wondertan in #3631

Full Changelog: v0.14.0...v0.15.0

v0.14.1

24 Jul 11:10
6549873
Compare
Choose a tag to compare

This patch focuses on two things:

  • Fixing memory leaks coming from libp2p dependency #3581
  • Make LNs run only with DHT Client mode to see if that's causing churn and high provider record loss on the network #3574

Full Changelog: v0.14.0...v0.14.1

v0.15.0-rc0

05 Jul 08:57
1828f78
Compare
Choose a tag to compare
v0.15.0-rc0 Pre-release
Pre-release

What's Changed

  • ci: remove golangci-lint action warning by @ramin in #3500
  • feat(metrics): add common labels to prometheus by @walldiss in #3508
  • ci: update celestia shared dep to remove node 16 warning by @ramin in #3507
  • chore(deps): Bump codecov/codecov-action from 4.4.1 to 4.5.0 by @dependabot in #3504
  • chore(deps): Bump github.com/spf13/cobra from 1.8.0 to 1.8.1 by @dependabot in #3501
  • feat(docgen): improve examples by @distractedm1nd in #3479
  • refactor: use libhead alias consistently by @cristaloleg in #3519
  • feat: arabica bootstrappers now dnsaddr multiaddr by @smuu in #3525
  • chore(deps): upgrade to celestia-app v1.12.0 by @rootulp in #3527
  • chore(deps): Bump github.com/hashicorp/go-getter from 1.7.4 to 1.7.5 by @dependabot in #3528
  • fix(nodebuilder/core): non default values from config.toml are written over by flag defaults in specific circumstances by @ramin in #3526
  • chore(deps): Bump alpine from 3.20.0 to 3.20.1 by @dependabot in #3521
  • fix(nodebuilder/p2p): remove prepended v against detected semantic version by @ramin in #3547
  • chore: bump cristalhq/jwt to v5 by @cristaloleg in #3476
  • fix(cmd): fix namespace representation in cmd output by @vgonkivs in #3537
  • chore(ci): formatting / whitespace by @ramin in #3495
  • misc(blob/service)!: return empty values in case blobs were not found by @vgonkivs in #3223
  • feat!(state/core_access): add TxConfig by @vgonkivs in #3349
  • improvement(blob/cmd): remove base64 representation by @vgonkivs in #3553
  • refactor(state/gateway)!: remove SubmitTx endpoint from RPC and Gateway by @distractedm1nd in #3391
  • docs(blob): update godoc comments to better match what Get and GetProof actually do by @ramin in #3530

Full Changelog: v0.14.0...v0.15.0-rc0

v0.14.0

17 Jun 11:27
Compare
Choose a tag to compare

v0.14.0

Pruning

This release introduces block (or sample) pruning via the --experimental-pruning flag. When --experimental-pruning is enabled, light nodes will prune samples, while full and bridge nodes will prune blocks older than 30 days ( the availability window defined in https://github.com/celestiaorg/CIPs/blob/main/cips/cip-4.md).

Full and bridge nodes that run with pruning enabled will support serving samples and blocks within the availability window, and will continue to advertise on the full topic, whereas full and bridge nodes that upgrade to this version and do not enable pruning will retain all blocks and begin to advertise themselves on the new archival topic, signalling to the network that they are an "archival" node.

⚠️ Please note that this is an experimental feature. Once --experimental-pruning is enabled, it is not possible to go back to running as an "archival" node without resyncing from scratch or restoring from a snapshot. ⚠️

As a part of the pruning feature, it is now default behaviour for light, full and bridge nodes to additionally discover "archival" nodes in the network in order to maintain the ability to request blobs and blocks older than the availability window.

Discovery metrics

There are now two sets of discovery processes running simultaneously: one for archival peers and one for full. Discovery metrics have been broken to reflect that change, so now, full discovery-related metrics will have full_ prepended to the string.

E.g. discovery_amount_of_peers is now full_discovery_amount_of_peers for full peers and archival_discovery_amount_of_peers for archival peers.

State access via gRPC only

Via #3359, it is now possible to perform all state-related queries over a gRPC connection to a core consensus node only. This means that it is no longer required to pass a --core.rpc.port when configuring celestia-node for state access. Instead, only the gRPC port is necessary (which is still configured to default to 9090).

This does not yet apply for bridge nodes!!! Bridge nodes still require the same core configuration setup as before (RPC port for block sync and gRPC port for state access).


What's Changed

BREAKING

  • fix!(share/byzantine): use any available axis for befp nmt proofs construction by @walldiss in #3306
  • refactoring(cmd/state)!: remove submit-tx from cli by @vgonkivs in #3348
  • feat(p2p/discovery)!: Implement archival discovery + syncing of historic blocks and blobs by @renaynay in #3188
  • fix(share/getters)!: return nil shares from all getters in non-inclusion case by @walldiss in #3454

FEATURES

  • feat(pruner): Implement full and bridge node pruning by @renaynay in #3150
  • feat(core): Bridge node short-circuits storing a historical EDS if pruning is enabled by @renaynay in #3283
  • feat(state): enable fee granting by @vgonkivs in #3304
  • feat(share/eds): Store nmt nodes on failed reconstruction by @walldiss in #3305
  • feat(cmd/rpc): Automatically detect running node for RPC requests by @mastergaurang94 in #3246
  • refactor(state): Remove need for core RPC conn and rely only on gRPC for state reads by @renaynay in #3359
  • feat(pruner/light): implement light pruning by @Wondertan in #3388
  • feat(share/pruner): disallow converting pruned node to archival by @walldiss in #3467

BUG FIXES

  • fix(state/coreAccessor): fix txResponse by @vgonkivs in #3336
  • fix(pruner/light): Fix light availability window provided by @renaynay in #3370
  • fix(share/pruner) enable Light node pruner service by @walldiss in #3455
  • fix(nodebuilder/share): Pass light.Window to shrex getter construction regardless of node type / pruning mode by @renaynay in #3466

MISCELLANEOUS

  • feat(ci): call reusable workflow to track the release deployments and notify devops by @MSevey in #3291
  • chore(deps): bump .github version for release tracking epic by @MSevey in #3312
  • deps: bump go-header and go-fraud by @Wondertan in #3326
  • deps: bump celestia-app by @renaynay in #3316
  • chore(linters): add errorlint by @walldiss in #3334
  • chore(linter): add 6 more linteres by @walldiss in #3333
  • chore(makefile): comment for install-global to clarify linux support only by @mastergaurang94 in #3340
  • chore: bump to app v1.9.0 by @evan-forbes in #3366
  • chore(state/core_accessor)!: remove query cli by @vgonkivs in #3307
  • chore: add dupword CI && remove repetitive words globally by @goofylfg in #3360
  • feat(cmd): match upcoming node version with API by @vgonkivs in #3318
  • refactor: changed user UserAgent name by @ramin in #3379
  • chore: fix function names in comment by @studystill in #3337
  • refactor: add missing stop ticker by @hoank101 in #3389
  • feat(tracer): Add shutdown hook for tracer by @dougEfresh in #1524
  • chore(deps): Bump github.com/hashicorp/go-retryablehttp from 0.7.5 to 0.7.6 by @dependabot in #3395
  • chore(deps): Bump golang.org/x/text from 0.14.0 to 0.15.0 by @dependabot in #3398
  • chore(deps): Bump golangci/golangci-lint-action from 5.3.0 to 6.0.1 by @dependabot in #3400
  • chore(deps): Bump celestiaorg/.github from 0.2.8 to 0.3.1 by @dependabot in #3124
  • chore(nodebuilder/das | pruner): Privatise samplingWindow in DAS params, add Duration method to AvailabilityWindow by @renaynay in #3378
  • ci: generate and store openrpc.json with the tagged release artifacts by @ramin in #3350
  • add @cristaloleg to .github/CODEOWNERS by @ramin in #3418
  • chore(deps): Bump codecov/codecov-action from 4.3.1 to 4.4.1 by @dependabot in #3420
  • doc: improve godoc for the blob service by @vgonkivs in #3422
  • chore(deps): Bump actions/checkout from 3 to 4 by @dependabot in #3436
  • chore(deps): Bump celestiaorg/.github from 0.3.2 to 0.4.1 by @dependabot in #3412
  • chore(deps): Bump github.com/filecoin-project/go-jsonrpc from 0.3.1 to 0.4.0 by @dependabot in #3439
  • chore(logs): lower bitswap-server verbosity by @Wondertan in #3434
  • chore(deps): Bump github.com/celestiaorg/nmt from v0.20.0 to v0.21.0 by @walldiss in #3443
  • chore(deps): Bump google.golang.org/protobuf from 1.32.0 to 1.34.1 by @dependabot in #3374
  • chore(deps): Bump golang.org/x/crypto from 0.21.0 to 0.23.0 by @dependabot in #3399
  • refactor(core): remove unused test grpc server by @walldiss in #3445
  • fix(cmd): Add pruner flags to LN as well by @renaynay in #3449
  • chore(deps): Bump github.com/multiformats/go-multiaddr from 0.12.3 to 0.12.4 by @dependabot in #3414
  • chore(deps): Bump github.com/hashicorp/go-retryablehttp from 0.7.6 to 0.7.7 by @dependabot in #3460
  • chore(deps): Bump celestiaorg/.github from 0.4.1 to 0.4.2 by @dependabot in #3456
  • chore(deps): Bump alpine from 3.19.1 to 3.20.0 by @dependabot in #3435
  • chore(deps): Bump go.uber.org/fx from 1.21.1 to 1.22.0 by @dependabot in #3458
  • chore: bump libp2p, go-header and app by @Wondertan in #3446
  • chore(share/p2p/discovery): add log for start by @renaynay in #3471
  • chore(swamp): remove always failing assert by @cristaloleg in #3463
  • refactor(share): use atomic.Int64 and fix 'racy' bugs by @crist...
Read more

v0.14.0-rc2

11 Jun 12:07
fbce4b7
Compare
Choose a tag to compare
v0.14.0-rc2 Pre-release
Pre-release

What's Changed

  • refactor(share): use atomic.Int64 and fix 'racy' bugs by @cristaloleg in #3478
  • chore(deps): upgrade golangci-lint in ci to 1.59 by @walldiss in #3483
  • chore(deps): Bump golang.org/x/text from 0.15.0 to 0.16.0 by @dependabot in #3489
  • chore(deps): Bump golang.org/x/crypto from 0.23.0 to 0.24.0 by @dependabot in #3490
  • chore(das): move jobType declaration closer to consts by @cristaloleg in #3477
  • chore(share/p2p/discovery): Change success case logging for advertisement to INFO level by @renaynay in #3492

Full Changelog: v0.14.0-rc1...v0.14.0-rc2

v0.13.7

11 Jun 13:31
Compare
Choose a tag to compare

A patch release containing a fix for account sequence errors in some blob submission scenarios.

Original commit that was cherry-picked for this release: #3298

Full Changelog: v0.13.6...v0.13.7