waxwing: handing a synced subgraph between indexers, with evidence
I noticed there are many issues with graphman dump and restore, so I’m building waxwing, for handing a synced subgraph deployment from one indexer to another with enough evidence attached that the receiver can decide whether to trust it.
Works with stock graph-node, no patches:
- seal refuses a dump taken on a reverted fork or pruned past its last layer, which graphman accepts
- cut rewinds a dump to the finalized block
- restore keeps the dump’s indexes and is about 2.6x faster than graphman restore in our test
- attest signs a state root, counted against stake on Horizon
Tested on 6 real deployments on Arbitrum, Ethereum and Base, all identical after the handover. Not tried on a production sized one yet.
Anyone up for trying it?