github celestiaorg/celestia-core v0.42.0

5 hours ago

This release of celestia-core hardens block propagation and consensus recovery, including proposer selection after WAL replay and handling of conflicting proposals. It includes a breaking change to the Go Propagator API and requires Go 1.26.6.

Breaking Changes

  • Atomic propagation consensus state API (#3287, #3290). Propagator.SetProposer and Propagator.SetHeightAndRound are replaced by SetConsensusState(height, round, proposer). Downstream implementations and callers must migrate to the new method so height, round, and proposer are installed together.

Consensus & sync hardening

  • Install propagation height, round, and proposer atomically so compact-block validation and cached-proposal replay cannot observe a partially updated consensus state (#3287).
  • Use the round-adjusted proposer after consensus WAL replay. When replay resumes at round 1 or later, propagation now validates compact blocks using that round's proposer instead of overwriting it with the round-0 proposer (#3290).
  • Reject cached proposals that conflict with an existing block identity at the same height and round before forwarding them to consensus or recovering their parts (#3286).
  • Reject conflicting incoming compact blocks before forwarding or gossiping them. When a commitment replaces a conflicting proposal, clear the old per-peer part state so stale request bits cannot prevent fetching the committed block's parts (#3298).

Improvements

  • Update the propagation identity regression test to use SetConsensusState (#3303).
  • Update NMT to v0.24.5, runc to v1.3.6, and AWS SDK, Prometheus, OpenTelemetry, and Go extension dependencies.
  • Sync release tags to the Linear release pipeline, set explicit workflow token permissions, and remove unused upstream CometBFT workflows and QA reporting scripts (#3308, #3320, #3318, #3319).

What's Changed

  • fix(propagation): reject conflicting cached proposals by @ninabarbakadze in #3286
  • fix(propagation)!: propagation consensus state updates should be atomic by @ninabarbakadze in #3287
  • build(deps): Bump github.com/celestiaorg/nmt from 0.24.3 to 0.24.4 by @dependabot[bot] in #3296
  • build(deps): Bump github.com/aws/aws-sdk-go-v2/config from 1.32.38 to 1.33.2 by @dependabot[bot] in #3297
  • build(deps): Bump github.com/prometheus/client_model from 0.6.2 to 0.6.3 by @dependabot[bot] in #3295
  • fix(propagation): reject conflicting compact blocks and purge replaced peer state by @rach-id in #3298
  • build(deps): Bump golang.org/x/crypto from 0.55.0 to 0.56.0 by @dependabot[bot] in #3291
  • build(deps): Bump go.opentelemetry.io/otel/exporters/stdout/stdouttrace from 1.45.0 to 1.46.0 by @dependabot[bot] in #3283
  • build(deps): Bump github.com/prometheus/common from 0.70.1 to 0.71.0 by @dependabot[bot] in #3292
  • fix(consensus)!: use the round-adjusted proposer for propagation after WAL replay by @rach-id in #3290
  • build(deps): Bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.109.1 to 1.110.0 by @dependabot[bot] in #3294
  • fix(propagation): use SetConsensusState in identity test by @rootulp in #3303
  • ci: sync GitHub releases to the Linear release pipeline by @rootulp in #3308
  • build(deps): Bump golang.org/x/sync from 0.22.0 to 0.23.0 by @dependabot[bot] in #3309
  • build(deps): Bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.110.0 to 1.113.0 by @dependabot[bot] in #3315
  • build(deps): Bump golang.org/x/net from 0.58.0 to 0.59.0 by @dependabot[bot] in #3311
  • build(deps): Bump github.com/aws/aws-sdk-go-v2/credentials from 1.20.2 to 1.20.4 by @dependabot[bot] in #3310
  • build(deps): Bump github.com/celestiaorg/nmt from 0.24.4 to 0.24.5 by @dependabot[bot] in #3316
  • build(deps): Bump github.com/aws/aws-sdk-go-v2/config from 1.33.2 to 1.33.4 by @dependabot[bot] in #3313
  • build(deps): bump github.com/opencontainers/runc to v1.3.6 by @rootulp in #3321
  • ci: set explicit GITHUB_TOKEN permissions on workflows by @rootulp in #3320
  • ci: delete dead upstream CometBFT workflows by @rootulp in #3318
  • chore: remove upstream CometBFT QA reporting scripts by @rootulp in #3319

Full Changelog: v0.41.0...v0.42.0

Don't miss a new celestia-core release

NewReleases is sending notifications on new releases.