Technical indexer documentation and infrastructure templates for the Mission Control testnet.
For support, please join the #indexers
channel on our
Discord. The Graph team will be happy to
assist you in getting set up.
- FAQ
- Community Wiki (please edit responsibly!)
- Guides
There is only one mission in phase 2: honest profit maximization. To compete in phase 2, the indexer infrastructure needs to be updated to new releases.
Note: No new components were added aside from internal dependencies.
For NPM registry access, see the NPM registry guide.
- 2020-10-15: Indexer 0.3.1 release to restart phase 2 — updates indexer components to new contracts so that we can cleanly restart phase 2, as announced earlier this week.
- 2020-10-16: GDAI to GRT conversation utility for cost models.
- 2020-10-20: Graph Node v0.19.0 release allows to disable EIP-1898.
- 2020-10-21: Subgraph Deployment ID conversion utility.
- 2020-10-27: Updated Agora tool to use decimal GRT rather then wei.
- 2020-10-27: Updated GDAI to GRT conversion utility to output conversion rate in decimal format.
- 2020-10-27: Indexer 0.3.2 release.
- 2020-10-28: Indexer 0.3.3 release.
- 2020-10-30: Indexer 0.3.5 release.
- 2020-11-11: Indexer 0.3.6 "preTRAFFIC 🚦" release.
-
Graph Node now makes contracts calls by block hash instead of block number. This may affect Ethereum providers that are missing this feature. For reference, this feature was added to Ethereum via EIP-1989.
-
The Indexer Agent no longer automatically stakes on your behalf. This is because we've split up the indexer into two roles: indexer and operator.
This feature allows indexers to decouple their root keys from lower-risk operator keys that have limited capabilities. Only the indexer root key can stake (via the UI). Multiple operators can be defined, but only one can register a URL for the indexer at a time. Indexer and operator can use the same Ethereum address and key.
In order to set things up correctly, indexers need to:
- stake using the UI (Indexer Agent will automatically allocate using this stake),
- (if you want to use different indexer and operator keys) set one or more operators.
-
Indexer components now run as "operators" of indexers. This means that, in addition to
--mnemonic
orINDEXER_AGENT_MNEMONIC
/INDEXER_SERVICE_MNEMONIC
, an--indexer-address
orINDEXER_AGENT_INDEXER_ADDRESS
/INDEXER_SERVICE_INDEXER_ADDRESS
value needs to be passed to Indexer Agent and Service, with the Ethereum address of the indexer. -
Cost management and a
/cost
API have been added to the Indexer Service for price definition and discovery. It's a market now! -
The Indexer Service can now be scaled horizontally, and can also use worker threads for its state channel wallet.
A single wallet thread can only process a limited amount of payments per second, so it's worth doing this by setting the
AMOUNT_OF_WORKER_THREADS
environment variable for the Indexer Service.Assuming your Indexer Service runs on its own machine or in its own VM, we recommend using one thread per real CPU thread or vCPU. Also, leave one CPU thread or vCPU for the main thread of the indexer, and more threads/vCPUs for other processes if there are any.
If you scale the Indexer Service horizontally, make sure that the sum of main threads and worker threads does not exceed the CPU threads or vCPUs.
- There is a new network subgraph version. Make sure to update the
--network-subgraph-endpoint
orINDEXER_AGENT_NETWORK_SUBGRAPH_ENDPOINT
/INDEXER_SERVICE_NETWORK_SUBGRAPH_ENDPOINT
values tohttps://api.thegraph.com/subgraphs/name/graphprotocol/graph-network-testnet-phase2
.
- GRT:
0x496eec523c74c4BbF071e0c75573c9deb07929f4
- GDAI:
0xFb49BDaA59d4B7aE6260D22b7D86e6Fe94031b82
- Uniswap Pair:
0x9228373a1d330d502ed05c013b5989a71e1f5f8e
- Source code
- NPM
package
(release:
@graphprotocol/indexer-agent@0.3.6
) - Docker image (tag:
sha-f305b2d
) - Changes since the last phase 1 release
Notable changes that require changes in the indexer-agent configuration:
- The
INDEXER_AGENT_INDEXER_GEO_COORDINATES
environment variable is now space-separated ("<lat> <long>
).
- Source code
- NPM package
(release:
@graphprotocol/indexer-service@0.3.6
) - Docker image (tag:
sha-f305b2d
) - Changes since the last phase 1 release
- Source code
- NPM package
(release:
@graphprotocol/indexer-cli@0.3.6
) - Changes since the last phase 1 release