github celestiaorg/celestia-node v0.14.0

latest release: v0.15.0-alpha.0
9 days ago

v0.14.0

Note: This release is currently compatible with mocha-4 and arabica-11 ONLY.

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.

Core 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).


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 @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
  • chore(deps): Bump goreleaser/goreleaser-action from 5 to 6 by @dependabot in #3486
  • chore(deps): Bump github.com/BurntSushi/toml from 1.3.2 to 1.4.0 by @dependabot in #3491
  • refactor(testing): replace require.TestingT with testing.TB by @walldiss in #3497

New Contributors

Full Changelog: v0.13.7...v0.14.0

Don't miss a new celestia-node release

NewReleases is sending notifications on new releases.