edit-ponder-sync

Diagnose and repair Ponder's RPC cache by clipping and purging block ranges.

41|19|Updated Dec 23, 2024
One-click install
npx skills add https://github.com/namehash/ensnode --skill edit-ponder-sync
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: edit-ponder-sync
Source: https://github.com/namehash/ensnode/tree/main/.agents/skills/edit-ponder-sync
Command: npx skills add https://github.com/namehash/ensnode --skill edit-ponder-sync

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Inspect and surgically edit Ponder's RPC cache (the ponder_sync Postgres schema): understand what's cached, diagnose stale/contaminated cache (e.g. a restarted ens-test-env devnet reusing chain id 31337), and clip/purge a block range so Ponder re-fetches it cleanly without re-syncing the whole chain. Use when a handler throws RecordNotFoundError on an entity that should exist, when cached block hashes diverge from the live chain, or when splicing one chain's sync data into another (upstream chain → a fork of it).

Core Features & Use Cases

  • Inspect and diagnose ponder_sync blocks/logs/intervals for a given chain_id
  • Clip cache ranges and purge affected blocks/transactions/logs to trigger safe re-fetch
  • Validate consistency against live chain hashes to recover from forks or restarts

Quick Start

Run the tool to inspect the current ponder_sync state, clip a safe range, and trigger re-fetch of the tail.

Frequently Asked Questions about edit-ponder-sync

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix Ponder RecordNotFoundError when a handler reports missing records?

Fix Ponder RecordNotFoundError by inspecting the ponder_sync Postgres schema to diagnose stale cache, then clipping and purging the affected block range to trigger a safe re-fetch from the RPC.

Why does Ponder cache show divergent block hashes after restarting an ens-test-env devnet?

Divergent block hashes occur because a restarted ens-test-env devnet reuses chain id 31337, contaminating the cache. Validate consistency against live chain hashes and purge the stale intervals to recover.

How do I clip a block range in ponder_sync to force Ponder to re-fetch data?

Clip a block range in ponder_sync by applying precise interval clipping scoped by chain_id. This purges affected blocks, transactions, and logs atomically, forcing Ponder to re-fetch the tail cleanly without re-syncing.

Can I splice sync data from an upstream chain into a fork using ponder_sync?

Yes, you can splice upstream chain sync data into a fork. The process enforces safe, atomic cache adjustments scoped by chain_id, guiding precise interval clipping and purging to maintain correct state during the splice.

Does repairing Ponder RPC cache corruption require re-syncing the whole blockchain?

No, repairing Ponder RPC cache corruption does not require re-syncing the whole chain. You surgically clip and purge the specific contaminated block range so Ponder cleanly re-fetches only that targeted interval.