graphprotocol / graphprotocol/indexer

Detect graph-node/indexer version mismatches to prevent bugs

Open
#194 1 comment 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

indexer-agent indexer-service p3
Dominant language
TypeScript
Stars
262
Forks
148
PR merge metrics
No merged PRs in 30d

Description

We just had a situation where an indexer was running the latest indexer-service and -agent but not the latest graph-node. The latest graph-node included a bugfix that was required for the latest indexer-service and -agent to work correctly, but now the indexer didn't have that fix. The end result was that they lost indexing rewards for one of their allocations.

Similar to the /version endpoint in index-service, we should have a way to detect the index/query node versions in indexer-service and (more importantly) indexer-agent. Then, when we release a new indexer version, we can set a semver-pattern for the required graph-node version. If the index or query nodes don't satisfy that pattern, we'd crash or at least not perform any criticial actions like closing allocations, which could have a zero POI due to a version mismatch.

The fact that indexer rewards are at risk deserves for this to be classified as a bug.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the existing /version endpoint in index-service and trace how indexer-service and indexer-agent communicate with graph-node and its index/query nodes. Define the required graph-node semver check and the safe behavior when versions do not match, including protection against critical allocation actions; done means mismatches are detected before rewards are put at risk.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend, distributed-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.