Skip to content
This repository has been archived by the owner on Mar 9, 2023. It is now read-only.

Setup: Ethereum Nodes and Providers

nmeilick edited this page Aug 6, 2020 · 1 revision

General info

The Graph indexer requires access to the full state history of the Ethereum blockchain, which only an archive node provides. A light- or full-node will not work for this purpose. It's possible to self-host archive nodes or access nodes in the cloud on a subscription basis from a number of companies.

If you'd like to host one or more nodes yourself, which can be significantly cheaper than a commercial subscription (largely depending on the number of archive requests needed), you should be aware that an archive node

  • needs a significant amount of resources, currently for example 5+TB of SSD storage, and likely to double within a year
  • is very slow to sync - it will take several weeks before the node is fully synced

It's also important to note that not every Ethereum archive node suits the requirements of the indexer, as it depends on the RPC calls that are supported by the underlying client. If critical functionality is missing, the node either can't be used at all, or a mechanism needs to be used that allows to supplement the feature set, e.g., by routing unsupported calls to another node.

List of Ethereum clients and compatibility

  • OpenEthereum/Parity:

    • It's the reference client and provides everything the indexer needs.
  • Geth:

    • It supports everything except trace_* calls, which certain subgraphs need. It can be used for the Graph testnet, but there'll likely be some points deducted, as, i.e., Uniswap can't be fully indexed without it. Geth does has some support for transaction tracing in the debug module, but those are not supported by the indexer.
  • TurboGeth:

    • It lacks a number of RPC functions and thus cannot be used without supplementing these from a different source.
  • Nethermind:

    • It looks like it supports all the required RPC calls, including tracing, but it wasn't verified as working yet.

List of archive node providers

List of hosting providers

  • Hetzner (https://www.hetzner.com) offers a number of dedicated servers that could run an archive node for a very competitive price. The AX-line (especially AX61 and AX161), which is comprised of AMD Ryzen and Epyc servers, when customized with two extra 3.84GB NVMe SSD, has enough power for approx. 200-250€/month (plus one-time setup fee). Provisioning in the Helsinki location is markedly faster than when ordering the server in the Falkenstein location.