github celestiaorg/celestia-node v0.29.3-mocha

pre-release11 hours ago

This is a patch release on top of v0.29.1-mocha.

Key highlights: fixes light node startup failure caused by syncer tail height overshooting the pruning window, bridge DASer gossip race fix, new delegation rewards API, core endpoint verification, go-header upgrade with parallel header fetching, and new cel-shed tools.

Header Sync

  • Fix syncer tail estimation overshoot (#4840) — The syncer was using nominal 6s block time to estimate tail height, but real block times on mocha average ~6.14s. Over the 7-day pruning window this caused the tail to land ~3.8 hours outside the window, making peers unable to serve those headers. Fixed by using 7s as the upper bound block time for tail estimation.
  • go-header v0.8.5-rc (#4841) — Includes parallel performRequest (go-header#381) so header fetches from trusted peers happen concurrently instead of sequentially.
  • go-header v0.8.4-rc (#4837) — Per-peer timeout in performRequest, Head() early return optimization.
  • Fix header store head height metric (#4806) — Fix for hdr_store_head_height_gauge metric.

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

  • Core endpoint network verification (#4781) — Nodes now verify that the core endpoint belongs to the expected network on startup.
  • Fix inverted gRPC readiness check (#4793) — The gRPC connection readiness check was inverted.

Bug Fixes

  • Fix pruner race condition (#4792) — Fixed race in TestFindPruneableHeaders.
  • Fix shrex off-by-one (#4810) — Fix off-by-one in GetRangeNamespaceData test.

Observability

  • Pyroscope basic auth (#4811) — Added basic auth support for Pyroscope continuous profiling.

Tooling (cel-shed)

  • cel-shed: erase samples (#4146) — Added datastore erase-samples command.
  • cel-shed: ODS verification and recovery (#4780) — Added ODS storage verification and recovery tool.

Testing

  • Consolidate core test retry helper (#4838) — All core tests now use the startNetwork retry helper.

Dependencies

  • celestia-app v7.0.2-mocha (#4791)
  • go-ethereum v1.17.0 (#4796)

What's Changed

  • store: close accessor in GetRow and GetRangeNamespaceData by @phrwlk in #4575
  • feat(cel-shed): datastore: erase samples by @Wondertan in #4146
  • feat(cel-shed): add ODS storage verification and recovery tool by @walldiss in #4780
  • feat(core): verify core endpoint network on startup by @walldiss in #4781
  • chrore: golang 1.26 by @walldiss in #4783
  • chore(deps): bump alpine from 3.20.2 to 3.23.3 by @dependabot in #4784
  • chore(deps): go mod parity for tastora by @walldiss in #4787
  • 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
  • fix(pruner): fix race condition in TestFindPruneableHeaders by @walldiss in #4792
  • fix(nodebuilder/core): fix inverted gRPC connection readiness check by @walldiss in #4793
  • chore(deps): bump github.com/ethereum/go-ethereum from 1.16.8 to 1.17.0 by @dependabot in #4796
  • feat(state): add WithdrawDelegatorReward and QueryDelegationRewards by @walldiss in #4800
  • docs: add CLAUDE.md for Claude Code guidance by @rootulp in #4805
  • fix: bump go-header to v0.8.1 to fix hdr_store_head_height_gauge metric by @rootulp in #4806
  • 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(das): prevent bridge DASer from receiving gossip headers before EDS is stored by @walldiss in #4820
  • fix: upate nodes ids by @tty47 in #4821
  • Revert "fix: upate nodes ids" by @walldiss in #4822
  • 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(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
  • chore(deps): bump actions/setup-node from 5 to 6 by @dependabot in #4647
  • chore(deps): bump golangci/golangci-lint-action from 8.0.0 to 9.2.0 by @dependabot in #4730
  • chore(deps): bump actions/upload-artifact from 4 to 6 by @dependabot in #4742
  • chore(deps): bump alpine from 3.20.2 to 3.23.3 by @dependabot in #4784

Full Changelog: v0.29.1-mocha...v0.29.3-mocha

Don't miss a new celestia-node release

NewReleases is sending notifications on new releases.