github celestiaorg/celestia-node v0.30.2

6 hours ago

This release adds support for celestia-app v8 and is safe to run before the migration. Once the v8 activation height takes place, upgrading to this version is required.

Key Highlights

  • TLS Support for JSON-RPC (#4839) — Users are encouraged to enable TLS in their RPC clients to secure connections to endpoints.
  • Export Prometheus Metrics to OpenTelemetry (#3702) — All telemetry, including libp2p metrics, is now exported via OpenTelemetry. A separate Prometheus instance is no longer required to collect these metrics.
  • Shrex server enabled on Bridge Nodes (#4288, #4758) — Bridge nodes can now serve samples over the shrex protocol.
  • Improved Bridge Node fresh start (#4768, #4776) — Bridge nodes can now start from non-archival consensus nodes and sync
       headers and data from the p2p network.
  • Full node option removed (#4773) — Full nodes were deprecated 6 months ago; this release finalizes deprecation.
  • Headers in subscription responses (#4752)

Header Sync

  • Fix syncer tail estimation overshoot (#4840) — The syncer was using nominal 6s block time to estimate tail height, but real block times average ~6.14s. Over the 7-day pruning window this caused the tail to land ~3.8 hours outside the window. Fixed by using 7s as the upper bound.
  • go-header v0.8.5-rc (#4841) — Parallel header fetches from trusted peers.

Bridge & DAS

  • Fix bridge DASer gossip race (#4820) — Bridge nodes were receiving gossip headers before the local core.Listener finished storing EDS, causing WARN “das requesting data from peer failed” floods. Fixed by adding FanoutOnly mode.

API & State

  • Delegation rewards API (#4800) — Added WithdrawDelegatorReward and QueryDelegationRewards to the state module.

Networking & Core

  • Verify core endpoint network on startup (#4781) — Prevents misconfiguration by checking the core endpoint belongs to the expected network.
  • Fix inverted gRPC connection readiness check (#4793)

What's Changed

  • chore: Update CODEOWNERS by @adlerjohn in #4714
  • fix(node): Harden keystore filesystem permissions (0700 dir; validate key modes) by @anim001k in #4476
  • chore: Update CODEOWNERS by @vgonkivs in #4715
  • chore(cmd): update flags description by @vgonkivs in #4717
  • core: return explicit error on AddPartWithoutProof ok=false in partsToBlock by @Forostovec in #4644
  • nodebuilder/header: remove unused exchange field by @GarmashAlex in #4632
  • fix(p2p): validate CELESTIA_CUSTOM netID and avoid empty network by @Galoretka in #4720
  • chore(blob|header|state): add and cleanup tracing and logs by @Wondertan in #4539
  • fix!(shwap/rangeNamespaceDataID): fix RangeNamespaceDataID fields type by @vgonkivs in #4696
  • fix(test): extendBlock tests by @moldis in #4298
  • fix(listener): fix memory leak in core.listener by @walldiss in #4733
  • doc: shrex specification by @vgonkivs in #4728
  • misc(cel-shed): add a data hash exists | get helper to cel-shed by @vgonkivs in #4736
  • chore(das): remove unused subscriberDone channel from DASer by @Forostovec in #4744
  • fix: simplify fs keystore delete and rely on os.Remove by @radik878 in #4745
  • fix(lint): fix lint errors by @vgonkivs in #4760
  • chore(lifecycle): disable service breaker by @vgonkivs in #4759
  • chore(befp): improve validation by @vgonkivs in #4761
  • enable getSamples and getRow in shrex by @vgonkivs in #4288
  • fix(shwap/rngNamespaceData): fix for RangeNamespaceDataFromShares by @vgonkivs in #4766
  • feat: implement routing exchange for bridge nodes by @vgonkivs in #4758
  • feat(pruning): allow pruning for Bridge Nodes by @vgonkivs in #4768
  • refactor: Delete option to run full node by @walldiss in #4773
  • chore: update CODEOWNERS by @walldiss in #4775
  • chore: bump celestia-app to v7.0.0-arabica by @walldiss in #4774
  • fix(state): Log signer + key name even when default account; and log estimated gas + gas price by @renaynay in #4751
  • feat(core): allow BN to BN sync by @walldiss in #4776
  • chore: bump to app v7.0.1-arabica by @walldiss in #4778
  • chore: add walldiss to docs owners by @walldiss in #4779
  • !feat(api):Add headers to subscription response by @alpe in #4752
  • store: close accessor in GetRow and GetRangeNamespaceData by @phrwlk in #4575
  • chrore: golang 1.26 by @walldiss in #4783
  • chore(deps): bump alpine from 3.20.2 to 3.23.3 by @dependabot[bot] in #4784
  • chore(deps): bump golangci/golangci-lint-action from 8.0.0 to 9.2.0 by @dependabot[bot] in #4730
  • chore(deps): bump actions/upload-artifact from 4 to 6 by @dependabot[bot] in #4742
  • chore(ci): pin golangci-lint to v2.10.0 and fix new gosec warnings by @walldiss in #4788
  • fix(shrex): return valid samples from empty EDS instead of empty slice by @walldiss in #4789
  • fix(core): retry test network start on port-in-use errors by @walldiss in #4790
  • chore: bump celestia-app to v7.0.2-mocha by @walldiss in #4791
  • chore(deps):go mod parity for tastora by @walldiss in #4787
  • fix(pruner): fix race condition in TestFindPruneableHeaders by @walldiss in #4792
  • feat(core): verify core endpoint network on startup by @walldiss in #4781
  • chore(deps): bump actions/setup-node from 5 to 6 by @dependabot[bot] in #4647
  • feat(cel-shed): add ODS storage verification and recovery tool by @walldiss in #4780
  • fix(nodebuilder/core): fix inverted gRPC connection readiness check by @walldiss in #4793
  • feat(state): add WithdrawDelegatorReward and QueryDelegationRewards by @walldiss in #4800
  • fix: bump go-header to v0.8.1 to fix hdr_store_head_height_gauge metric by @rootulp in #4806
  • feat(cel-shed): datastore: erase samples by @Wondertan in #4146
  • docs: add CLAUDE.md for Claude Code guidance by @rootulp in #4805
  • ci: add assign random reviewer workflow by @tty47 in #4808
  • fix(shrex): fix off-by-one in GetRangeNamespaceData test by @walldiss in #4810
  • feat(observability): add basic auth support for Pyroscope by @walldiss in #4811
  • fix: upate nodes ids by @tty47 in #4821
  • Revert "fix: upate nodes ids" by @tty47 in #4822
  • chore(deps): bump github.com/ethereum/go-ethereum from 1.16.8 to 1.17.0 by @dependabot[bot] in #4796
  • chore: add tastora submodule to dependabot config by @walldiss in #4826
  • chore(deps): bump go-header to v0.8.4-rc by @walldiss in #4837
  • fix(das): prevent bridge DASer from receiving gossip headers before EDS is stored by @walldiss in #4820
  • fix(core): use startNetwork retry helper in all core tests by @walldiss in #4838
  • fix(header): use upper bound block time for syncer tail estimation by @walldiss in #4840
  • chore(deps): bump go-header to v0.8.5-rc by @walldiss in #4841
  • feat(cel-shed): Add blob.Submit and blob.Retrieve latency monitor tool by @renaynay in #4718
  • chore(deps): bump github.com/libp2p/go-libp2p-kad-dht from 0.34.0 to 0.38.0 by @dependabot[bot] in #4834
  • chore(deps): bump go.opentelemetry.io/otel from 1.40.0 to 1.41.0 by @dependabot[bot] in #4835
  • chore(deps): bump go.opentelemetry.io/contrib/instrumentation/runtime from 0.45.0 to 0.66.0 by @dependabot[bot] in #4833
  • chore(deps): bump the patch-updates group across 2 directories with 5 updates by @dependabot[bot] in #4844
  • refactor(blob): match all shares in ProveCommitment by @rootulp in #4836
  • ci: remove required labels check by @walldiss in #4847
  • ci: add Go build and test cache to unit test jobs by @walldiss in #4812
  • ci: remove setup job and fix debug flag propagation by @walldiss in #4813
  • feat(rpc): add TLS support for JSON-RPC server by @walldiss in #4839
  • chore(deps): bump github.com/multiformats/go-multiaddr-dns from 0.4.1 to 0.5.0 by @dependabot[bot] in #4832
  • chore(deps): bump github.com/filecoin-project/go-jsonrpc from 0.6.0 to 0.10.1 by @dependabot[bot] in #4851
  • chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp from 1.27.0 to 1.42.0 by @dependabot[bot] in #4853
  • chore(deps): bump github.com/rollkit/go-da from 0.8.0 to 0.9.0 by @dependabot[bot] in #4831
  • chore(deps): bump golang.org/x/text from 0.34.0 to 0.35.0 by @dependabot[bot] in #4854
  • chore(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 by @dependabot[bot] in #4795
  • chore(deps): bump github.com/celestiaorg/celestia-app/v7 from 7.0.3-arabica to 7.0.3-mocha by @dependabot[bot] in #4850
  • chore(deps): bump github.com/dgraph-io/badger/v4 from 4.6.0 to 4.9.1 by @dependabot[bot] in #4830
  • chore: using testing.B.Loop by @Lorsmirq0cB in #4573
  • chore(deps): bump codecov/codecov-action from 5.5.1 to 5.5.2 in the patch-updates group by @dependabot[bot] in #4741
  • chore(deps): bump actions/stale from 9 to 10 by @dependabot[bot] in #4534
  • chore(deps): Bump actions/checkout from 4 to 5 by @dependabot[bot] in #4502
  • feat(metrics): export prometheus metrics to otel by @walldiss in #3702
  • chore(deps): bump github.com/celestiaorg/celestia-app/v7 from 7.0.3-arabica to 7.0.3-mocha in /nodebuilder/tests/tastora by @dependabot[bot] in #4855
  • ci: reintroduce breaking change detection as advisory workflow by @walldiss in #4859
  • Add ADR for Fibre API design by @cmwaters in #4843
  • chore: update CODEOWNERS to use protocol team by @rootulp in #4860
  • ci: separate fast unit tests from coverage collection by @walldiss in #4814
  • fix(pruner): rename failed gauge to prnr_failed_prunes_amount and fix description by @radik878 in #4702
  • chore: bump celestia-app to v8.0.0-rc0 by @ninabarbakadze in #4896
  • chore: bump app to v8.0.0-arabica by @ninabarbakadze in #4897
  • chore: bump celestia-app to v8.0.1-arabica by @ninabarbakadze in #4910
  • fix(p2p): remove broken mocha bootstrappers (backport to v0.30.x) by @rootulp in #4915
  • chore: remove remaining broken bootstrapper by @ninabarbakadze in #4920
  • chore(shrex/client): change log level in shrex-client (#4927) by @vgonkivs in #4928
  • chore: bump node to v8.0.3 by @ninabarbakadze in #4960

New Contributors

Full Changelog: v0.28.4...v0.30.2

Don't miss a new celestia-node release

NewReleases is sending notifications on new releases.