Skip to content

Document archive RPC discovery: how to find Osmosis (and other chains') archive nodes with full tx-index #7647

Description

@deepanshutr

Problem

When recovering historical IBC orphan packets (or doing forensic analysis), users need to find Osmosis archive nodes with full tx-index — going back to the original send_packet/write_acknowledgement events. Currently there's no documented way to discover such endpoints; chain-registry's apis.rpc[].address list contains only operators whose tx-index has been pruned to ~h=41M+ (roughly 6 months).

I recently exhausted ~30 public Osmosis RPC endpoints from chain-registry, restake.app, and validators.cosmos.directory while trying to recover 12 stuck IBC packets at h<41M. None retain tx-index that far back. Some endpoints advertise earliest_block_height=0 in /status but querying block_results?height=37000000 returns "lowest height is 41066117" — earliest_block_height reports state-archive depth, not tx-index depth.

Discussion + tracker: osmosis-labs/osmosis#9682

Proposal

Add an optional tx_index_earliest_block_height field to the apis schema, or document a convention/community list of true archive endpoints with full tx-index. This would help anyone doing:

  • IBC orphan recovery (any IBC operator may eventually need this)
  • Cross-chain forensic analysis
  • Reproducing historical chain state for debugging

It would also make explicit which providers commit to long-term tx-index retention vs. which prune for cost reasons.

Alternatives

A separate archives.json file per chain could list endpoints retaining state + tx-index for various depths (e.g., 6mo, 1y, full). Operators could opt in.

Specific ask (Osmosis)

If anyone reading this operates an Osmosis archive with tx-index from 2024, please reply with the endpoint or post the result of:

curl 'https://YOUR_RPC/tx_search?query=%22send_packet.packet_src_channel%3D%27channel-232%27%20AND%20send_packet.packet_sequence%3D%2751441%27%22'

That would unblock a small batch of stuck IBC packets (~$60-600 in user funds across 12 seqs).

Cross-posted at:

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions