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 https://github.com/celestiaorg/celestia-node/pull/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 https://github.com/celestiaorg/celestia-node/pull/3306
- refactoring(cmd/state)!: remove submit-tx from cli by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/3348
- feat(p2p/discovery)!: Implement
archivaldiscovery + syncing of historic blocks and blobs by @renaynay in https://github.com/celestiaorg/celestia-node/pull/3188 - fix(share/getters)!: return nil shares from all getters in non-inclusion case by @walldiss in https://github.com/celestiaorg/celestia-node/pull/3454
FEATURES
- feat(pruner): Implement
fullandbridgenode pruning by @renaynay in https://github.com/celestiaorg/celestia-node/pull/3150 - feat(core): Bridge node short-circuits storing a historical EDS if pruning is enabled by @renaynay in https://github.com/celestiaorg/celestia-node/pull/3283
- feat(state): enable fee granting by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/3304
- feat(share/eds): Store nmt nodes on failed reconstruction by @walldiss in https://github.com/celestiaorg/celestia-node/pull/3305
- feat(cmd/rpc): Automatically detect running node for RPC requests by @mastergaurang94 in https://github.com/celestiaorg/celestia-node/pull/3246
- refactor(state): Remove need for core RPC conn and rely only on gRPC for state reads by @renaynay in https://github.com/celestiaorg/celestia-node/pull/3359
- feat(pruner/light): implement light pruning by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/3388
- feat(share/pruner): disallow converting pruned node to archival by @walldiss in https://github.com/celestiaorg/celestia-node/pull/3467
BUG FIXES
- fix(state/coreAccessor): fix txResponse by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/3336
- fix(pruner/light): Fix light availability window provided by @renaynay in https://github.com/celestiaorg/celestia-node/pull/3370
- fix(share/pruner) enable Light node pruner service by @walldiss in https://github.com/celestiaorg/celestia-node/pull/3455
- fix(nodebuilder/share): Pass
light.Windowto shrex getter construction regardless of node type / pruning mode by @renaynay in https://github.com/celestiaorg/celestia-node/pull/3466
MISCELLANEOUS
- feat(ci): call reusable workflow to track the release deployments and notify devops by @MSevey in https://github.com/celestiaorg/celestia-node/pull/3291
- chore(deps): bump .github version for release tracking epic by @MSevey in https://github.com/celestiaorg/celestia-node/pull/3312
- deps: bump go-header and go-fraud by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/3326
- deps: bump celestia-app by @renaynay in https://github.com/celestiaorg/celestia-node/pull/3316
- chore(linters): add errorlint by @walldiss in https://github.com/celestiaorg/celestia-node/pull/3334
- chore(linter): add 6 more linteres by @walldiss in https://github.com/celestiaorg/celestia-node/pull/3333
- chore(makefile): comment for install-global to clarify linux support only by @mastergaurang94 in https://github.com/celestiaorg/celestia-node/pull/3340
- chore: bump to app v1.9.0 by @evan-forbes in https://github.com/celestiaorg/celestia-node/pull/3366
- chore(state/core_accessor)!: remove query cli by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/3307
- chore: add dupword CI && remove repetitive words globally by @goofylfg in https://github.com/celestiaorg/celestia-node/pull/3360
- feat(cmd): match upcoming node version with API by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/3318
- refactor: changed user UserAgent name by @ramin in https://github.com/celestiaorg/celestia-node/pull/3379
- chore: fix function names in comment by @studystill in https://github.com/celestiaorg/celestia-node/pull/3337
- refactor: add missing stop ticker by @hoank101 in https://github.com/celestiaorg/celestia-node/pull/3389
- feat(tracer): Add shutdown hook for tracer by @dougEfresh in https://github.com/celestiaorg/celestia-node/pull/1524
- chore(deps): Bump github.com/hashicorp/go-retryablehttp from 0.7.5 to 0.7.6 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3395
- chore(deps): Bump golang.org/x/text from 0.14.0 to 0.15.0 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3398
- chore(deps): Bump golangci/golangci-lint-action from 5.3.0 to 6.0.1 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3400
- chore(deps): Bump celestiaorg/.github from 0.2.8 to 0.3.1 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3124
- chore(nodebuilder/das | pruner): Privatise
samplingWindowin DAS params, add Duration method toAvailabilityWindowby @renaynay in https://github.com/celestiaorg/celestia-node/pull/3378 - ci: generate and store openrpc.json with the tagged release artifacts by @ramin in https://github.com/celestiaorg/celestia-node/pull/3350
- add @cristaloleg to .github/CODEOWNERS by @ramin in https://github.com/celestiaorg/celestia-node/pull/3418
- chore(deps): Bump codecov/codecov-action from 4.3.1 to 4.4.1 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3420
- doc: improve godoc for the blob service by @vgonkivs in https://github.com/celestiaorg/celestia-node/pull/3422
- chore(deps): Bump actions/checkout from 3 to 4 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3436
- chore(deps): Bump celestiaorg/.github from 0.3.2 to 0.4.1 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3412
- chore(deps): Bump github.com/filecoin-project/go-jsonrpc from 0.3.1 to 0.4.0 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3439
- chore(logs): lower bitswap-server verbosity by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/3434
- chore(deps): Bump github.com/celestiaorg/nmt from v0.20.0 to v0.21.0 by @walldiss in https://github.com/celestiaorg/celestia-node/pull/3443
- chore(deps): Bump google.golang.org/protobuf from 1.32.0 to 1.34.1 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3374
- chore(deps): Bump golang.org/x/crypto from 0.21.0 to 0.23.0 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3399
- refactor(core): remove unused test grpc server by @walldiss in https://github.com/celestiaorg/celestia-node/pull/3445
- fix(cmd): Add pruner flags to LN as well by @renaynay in https://github.com/celestiaorg/celestia-node/pull/3449
- chore(deps): Bump github.com/multiformats/go-multiaddr from 0.12.3 to 0.12.4 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3414
- chore(deps): Bump github.com/hashicorp/go-retryablehttp from 0.7.6 to 0.7.7 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3460
- chore(deps): Bump celestiaorg/.github from 0.4.1 to 0.4.2 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3456
- chore(deps): Bump alpine from 3.19.1 to 3.20.0 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3435
- chore(deps): Bump go.uber.org/fx from 1.21.1 to 1.22.0 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3458
- chore: bump libp2p, go-header and app by @Wondertan in https://github.com/celestiaorg/celestia-node/pull/3446
- chore(share/p2p/discovery): add log for start by @renaynay in https://github.com/celestiaorg/celestia-node/pull/3471
- chore(swamp): remove always failing assert by @cristaloleg in https://github.com/celestiaorg/celestia-node/pull/3463
- refactor(share): use atomic.Int64 and fix 'racy' bugs by @cristaloleg in https://github.com/celestiaorg/celestia-node/pull/3478
- chore(deps): upgrade golangci-lint in ci to 1.59 by @walldiss in https://github.com/celestiaorg/celestia-node/pull/3483
- chore(deps): Bump golang.org/x/text from 0.15.0 to 0.16.0 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3489
- chore(deps): Bump golang.org/x/crypto from 0.23.0 to 0.24.0 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3490
- chore(das): move jobType declaration closer to consts by @cristaloleg in https://github.com/celestiaorg/celestia-node/pull/3477
- chore(share/p2p/discovery): Change success case logging for advertisement to INFO level by @renaynay in https://github.com/celestiaorg/celestia-node/pull/3492
- chore(deps): Bump goreleaser/goreleaser-action from 5 to 6 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3486
- chore(deps): Bump github.com/BurntSushi/toml from 1.3.2 to 1.4.0 by @dependabot in https://github.com/celestiaorg/celestia-node/pull/3491
- refactor(testing): replace require.TestingT with testing.TB by @walldiss in https://github.com/celestiaorg/celestia-node/pull/3497
New Contributors
- @mastergaurang94 made their first contribution in https://github.com/celestiaorg/celestia-node/pull/3246
- @kien6034 made their first contribution in https://github.com/celestiaorg/celestia-node/pull/3330
- @Erlangshen219 made their first contribution in https://github.com/celestiaorg/celestia-node/pull/3338
- @goofylfg made their first contribution in https://github.com/celestiaorg/celestia-node/pull/3360
- @studystill made their first contribution in https://github.com/celestiaorg/celestia-node/pull/3337
- @hoank101 made their first contribution in https://github.com/celestiaorg/celestia-node/pull/3389
- @cristaloleg made their first contribution in https://github.com/celestiaorg/celestia-node/pull/3463
Full Changelog: https://github.com/celestiaorg/celestia-node/compare/v0.13.7...v0.14.0