Request for Information about Disputes #GDR-47

The Arbitrators are contacting Indexer address 0x2f09092aacd80196fc984908c5a9a7ab3ee4f1ce and fisherman 0x0a015d9e17d3978164486473a2ddbb654418db07 for a new dispute filed in the protocol.

Dispute ID: 0xdbe1f623dcc8669f51ff2c0b41267ff15f5728990fce0ebc96ae531cc6b7f98b
Allocation: 0x85f5402d0ab86a21dd07e4ec2eeecb2321aa01d9
Subgraph: QmdDSA73QkFAvRZqtRoHgLvxonuSZTuJhoWkmBtEdVuTmz

Fisherman, could you share the insights or data you gathered that led to you filing the dispute? Please provide all relevant information and records about the open dispute. This will likely include POIs generated for the affected subgraph(s).


About the Procedure

The Arbitration Charter regulates the arbitration process. You can find it in Radicle project ID rad:git:hnrkrhnth6afcc6mnmtokbp4h9575fgrhzbay or at GIP-0009: Arbitration Charter.

Please use this forum for all communications.

Arbitration Team

Hello, fisherman here, firstly thank you for approving my sign up request, I was not able to reply to this forum post until this was processed. This is not ideal as a fisherman as you’re unable to contribute to the discussion, is it possible that this dispute could have been closed as a fisherman loss because I was unable to reply? If so, then I would encourage an automated system to process account onboarding.

Beyond that, to provide info on what data I collected before filing this dispute, please refer to the following dispute summary, note that if you need any additional information I am happy to collaborate in whatever way I can:

Dispute Summary

Field Value
Dispute ID 0xdbe1f623dcc8669f51ff2c0b41267ff15f5728990fce0ebc96ae531cc6b7f98b
Allocation ID 0x85f5402d0ab86a21dd07e4ec2eeecb2321aa01d9
Subgraph QmdDSA73QkFAvRZqtRoHgLvxonuSZTuJhoWkmBtEdVuTmz
Network Avalanche
POI Block Number 75,174,859
Closed At Epoch 1132

Disputed Indexer

Field Value
Indexer 0x2f09092aacd80196fc984908c5a9a7ab3ee4f1ce
Operator 0xf100e16d856bedee8ae0e0eb4f568f7aab21b5b7
Submitted POI 0xcf490b576f194303816d691570c674a22c4632ccd978d2f31aa1b23a07f539a4
Expected POI 0x7cbe229cc468781e0e9a57ca49e0154fbaa9635e2fc79c299d977aab555c7e4e
Result Mismatch

Corroborating Evidence

Another indexer closed an allocation on the same subgraph at the same POI block number (75,174,859) and submitted the correct POI:

Field Value
Indexer 0xe13840a2e92e0cb17a246609b432d0fa2e418774
Operator 0xf6bad1dca165c492006317b4f6e03a1ef5414e23
Allocation ID 0x49d056b3266018701bf08f963c839778611870c0
Submitted POI 0x3e50d1186686cbcf0d2fd50d8752e7eb68b8425a5c803d0d095ee5e4c38e3ab1
My Calculated POI 0x3e50d1186686cbcf0d2fd50d8752e7eb68b8425a5c803d0d095ee5e4c38e3ab1
Result Match

This corroborating evidence demonstrates that:

  1. The subgraph can be correctly indexed to block 75,174,859 (as proven by another indexer submitting a matching POI)
  2. The disputed indexer’s POI does not match what other indexers and my graph-node computed
  3. This suggests the mismatch is not caused by a determinism issue in the subgraph

Additional Evidence

I verified all other Horizon closed allocations on this subgraph QmdDSA73QkFAvRZqtRoHgLvxonuSZTuJhoWkmBtEdVuTmz against my graph-node. The disputed indexer is the only one with a mismatch and the subgraph matched correctly for all other indexers, even at higher block heights than the disputed POI, see the following table sorted by block height:

Indexer Block Submitted POI My Calculated POI Result
0xe9e284277648fcdb09b8efc1832c73c09b5ecf59 75,811,870 0xfd9d1ceb...07ee6d 0xfd9d1ceb...07ee6d Match
0xd9819426c82e2b8fc58b9b62a78efe93f78077c6 75,811,870 0x093d0d11...d185b2 0x093d0d11...d185b2 Match
0xe48b586eeb81bde60f14b0b8d80ddd06c7a24720 75,811,870 0xfe0637fc...7b6d40 0xfe0637fc...7b6d40 Match
0xa6ff993e0f6253f1b7f55c873577a2f0f0ceb325 75,811,870 0xee4a4c0e...ee4d9f 0xee4a4c0e...ee4d9f Match
0x2b3c7d1ef5fdfc0557934019c531d3e70d6200ae 75,738,330 0x4ef17d77...837718 0x4ef17d77...837718 Match
0x090f7382f9ea85c733cd501f4d87f16cb5b83ed3 75,738,330 0x9b4c4087...ee97b7 0x9b4c4087...ee97b7 Match
0xe91273727203bcc827521fc8b0c762d435c3c5d0 75,309,887 0x33ae9581...f3f0a0 0x33ae9581...f3f0a0 Match
0xe48b586eeb81bde60f14b0b8d80ddd06c7a24720 75,309,887 0x733ae005...8902ad 0x733ae005...8902ad Match
0xd9819426c82e2b8fc58b9b62a78efe93f78077c6 75,309,887 0xf54a0d18...5db817 0xf54a0d18...5db817 Match
0xe9e284277648fcdb09b8efc1832c73c09b5ecf59 75,309,887 0x67cd3b2b...7e4604 0x67cd3b2b...7e4604 Match
0x9af3fc811a66dbbca44acce94906d8743f9cf0d0 75,239,491 0xbb7415d6...bf38ef 0xbb7415d6...bf38ef Match
0x090f7382f9ea85c733cd501f4d87f16cb5b83ed3 75,239,491 0xc0641ab5...be5bd1 0xc0641ab5...be5bd1 Match
0x2f09092aacd80196fc984908c5a9a7ab3ee4f1ce 75,174,859 0xcf490b57...f539a4 0x7cbe229c...5c7e4e Mismatch
0xe13840a2e92e0cb17a246609b432d0fa2e418774 75,174,859 0x3e50d118...8e3ab1 0x3e50d118...8e3ab1 Match
0x2b3c7d1ef5fdfc0557934019c531d3e70d6200ae 74,795,540 0xde2b83bc...62efa7 0xde2b83bc...62efa7 Match
0x090f7382f9ea85c733cd501f4d87f16cb5b83ed3 74,666,332 0xc22489c9...797539 0xc22489c9...797539 Match
0xe91273727203bcc827521fc8b0c762d435c3c5d0 74,666,332 0x9f72246d...5ee65b 0x9f72246d...5ee65b Match
0xe48b586eeb81bde60f14b0b8d80ddd06c7a24720 74,666,332 0x43e54443...7d4f6d 0x43e54443...7d4f6d Match
0xd9819426c82e2b8fc58b9b62a78efe93f78077c6 74,666,332 0x5348289f...b0d08d 0x5348289f...b0d08d Match
0xe9e284277648fcdb09b8efc1832c73c09b5ecf59 74,472,074 0x381cbd3c...e5fc84 0x381cbd3c...e5fc84 Match
0xe91273727203bcc827521fc8b0c762d435c3c5d0 74,472,074 0x3dfec087...0261b9 0x3dfec087...0261b9 Match
0xe48b586eeb81bde60f14b0b8d80ddd06c7a24720 74,218,531 0xd868e8e2...60b7fa 0xd868e8e2...60b7fa Match
0x2b3c7d1ef5fdfc0557934019c531d3e70d6200ae 74,031,480 0x7d1d7ffc...e24415 0x7d1d7ffc...e24415 Match
0xd9819426c82e2b8fc58b9b62a78efe93f78077c6 74,031,480 0xb6381ac7...53ca07 0xb6381ac7...53ca07 Match
0xe9e284277648fcdb09b8efc1832c73c09b5ecf59 73,969,878 0xee0060f3...4c38b5 0xee0060f3...4c38b5 Match
0xe48b586eeb81bde60f14b0b8d80ddd06c7a24720 73,905,660 0xfc56199b...a963ad 0xfc56199b...a963ad Match
0xe91273727203bcc827521fc8b0c762d435c3c5d0 73,905,660 0x4fbf5cdc...7e155c 0x4fbf5cdc...7e155c Match
0x2b3c7d1ef5fdfc0557934019c531d3e70d6200ae 73,780,735 0xc53f51b7...02d246 0xc53f51b7...02d246 Match

Closing Transaction

The allocation was closed in Arbitrum block: 418,828,128

Final note

I am happy to provide any additional information the Arbitration Team requires.

1 Like

Hi @badcoffee, thanks for the thorough report. The information you provide checks out on our end. We are looking into a few other things before coming to a decision, while also giving the indexer a couple more days to respond. Stay tuned for the resolution.

Arbitration Council.

Hi! Sergey from P2P.org here, I’m responsible for the operations of the indexer in question.

The allocation in question was closed using standard indexer-agent behaviour, POI was obtained automatically by indexer-agent. We are using official images of indexer stack (indexer-agent and graph-node). Database has not been tampered with and we do not do any modifications to the databases manually.

I’ve double checked the POI of the subgraph deployment and still received 0xcf490b576f194303816d691570c674a22c4632ccd978d2f31aa1b23a07f539a4 as the result.

We’ve raised issues with POI consistency in the past and we are not the only indexer experiencing issues with subgraphs suddenly starting to diverge in POIs. We’ve got confirmation from Ørjan on IOH that the closing of the allocations with diverging POI caused by graph-node issue should not be slashed.

I am happy to provide any additional information needed for further investigation.

Hey @sk_p2p @badcoffee, thanks both for reaching out and contributing to this investigation.

We’ve tracked down the POI divergence to epoch 906, after that P2P indexer started producing POIs that do not match the consensus from at least other 5 indexers, see:

Given the information available it’s unclear if this is a bug on graph-node or an input data integrity issue (RPCs can sometimes miss blocks for instance). The widespread consensus on a POI from several other indexers would indicate it’s likely the latter.

In light of this, Arbitration Council has resolved to:

  • Resolve the dispute as a DRAW (no slashing).
  • Recommend the disputed indexer to take measures to rectify the discrepancy:
    • Ensure the blockchain client being used is producing accurate data (client node is up to date and running production versions).
    • Rewind the affected subgraph, forcing to re-index history at least as back as epoch 905.
    • Close any open allocations for this subgraph with POI 0x00.

As per section 13 of the Arbitration Charter in cases of discrepancies like this one the disputed indexer has 7 days to remediate the issue, after which any new POIs CAN be disputed and result in slashing.

Please let us know if there are any questions,

Arbitration Council

  1. p2p-org-arbitrum.ethindexer 0x2f09092aacd80196fc984908c5a9a7ab3ee4f1ce is well synced for this subgraph, and the subgraph was fully synced at the time the allocation was closed.
  2. All these time POI divergence is not slashable when a subgraph is properly closed via indexer-agent, unless it’s closed through a forced contract interaction or a copied POI. If POI divergence alone were slashable under these conditions, it would imply that many established indexers could be exposed to slashing risk, as such divergences are typically resolved through routine remediation steps (e.g.clearing call cache, clearing block cache and rewinding).
  3. An indexer that serves 0 queries and only claims indexing rewards initiating a slashing dispute against a long-term indexer that serves the network, what a cliche.

An indexer that serves 0 queries and only claims indexing rewards initiating a slashing dispute against a long-term indexer that serves the network, what a cliche.

Not collecting query fees and serving 0 queries is not the same thing.

Dispute was drawn here: Arbitrum One Transaction Hash: 0x304bd54106... | Arbitrum One