Skip to content

[epic] Add Full ABCI++ Support to Nibiru (internal/cosmos-sdk) #1870

@matthiasmatt

Description

@matthiasmatt

[epic] Add Full ABCI++ Support to Nibiru’s Forked Cosmos-SDK

This ticket now covers adding full ABCI++ support to Nibiru’s forked internal/cosmos-sdk, including all ABCI++ request and response types and the full FinalizeBlock + proposal-flow execution lifecycle. The work enables production use of the new ABCI methods without migrating to higher Cosmos-SDK versions, and without inheriting unrelated breaking changes from upstream.

The implementation affects only:

  • internal/cosmos-sdk (baseapp, ABCI server/client logic, block lifecycle code)
  • nibiru/app integration points

No CometBFT update is required. Consensus remains independent of the execution-layer work performed here.

Goals

  • Support all ABCI++ methods:

    • PrepareProposal
    • ProcessProposal
    • FinalizeBlock (replacing BeginBlock / EndBlock)
    • ExtendVote
    • VerifyVoteExtension
  • Align baseapp’s internal execution model with ABCI++ semantics
    (state transitions, intermediate state handling, event emission changes)

  • Support downstream features such as:

    • improved pending-transaction management
    • better handling of tx interactions in the mempool
    • future parallel / optimistic execution paths
  • Backport only the ABCI++ logic required for stable production use
    (not migrating to full SDK v0.50+)

Migration Path (to be filled in)

  • [TODO]

Ticket Changelog

  • 2025-12-03 Pivot issue to instead involve updating CometBFT and the baseapp in isolation to Nibiru's forked cosmos-sdk dependency.
  • 2025-05-14 Ticket creation: feat: migrate to cosmos-sdk v0.50

[DEPRECATED] Migration Guide for Cosmos-SDK v0.50

This section is no longer the target of the ticket.
The original plan to migrate the entire codebase toward SDK v0.50 has been superseded by a narrower, more maintainable approach: selectively backporting ABCI++ into Nibiru’s forked SDK instead of synchronizing with upstream’s broader breaking changes.

Sub-issues

Metadata

Metadata

Labels

epicProject or large task that groups multiple tickets and PRs

Type

No type

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions