graph-node icon indicating copy to clipboard operation
graph-node copied to clipboard

Graph node unable to connect to Anvil

Open rhlsthrm opened this issue 3 years ago • 5 comments

Do you want to request a feature or report a bug? Bug

What is the current behavior? Graph Node is not able to connect to Anvil (Foundry node).

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.

Docker compose file:

version: "3.3"

services:
  chain-1337:
    environment:
      - MNEMONIC=$MNEMONIC
    container_name: chain-1337-test
    image: ghcr.io/foundry-rs/foundry:nightly
    entrypoint: 'anvil --chain-id 1337 --mnemonic "$MNEMONIC" --host 0.0.0.0 --block-time 3 --verbosity'
    ports:
      - "8547:8545"

  graph-node-1337:
    container_name: graph-node-1337-test
    image: graphprotocol/graph-node:v0.26.0
    ports:
      - "8010:8000"
      - "8001:8001"
      - "8020:8020"
      - "8030:8030"
      - "8040:8040"
    depends_on:
      - ipfs
      - postgres-1337
      - chain-1337
    environment:
      postgres_host: postgres-1337
      postgres_user: graph-node
      postgres_pass: let-me-in
      postgres_db: graph-node
      ipfs: "ipfs:5001"
      ethereum: "mainnet:http://chain-1337:8545"
      GRAPH_LOG: info

  postgres-1337:
    container_name: postgres-1337-test
    image: postgres
    ports:
      - "5432:5432"
    command: ["postgres", "-cshared_preload_libraries=pg_stat_statements"]
    environment:
      POSTGRES_USER: graph-node
      POSTGRES_PASSWORD: let-me-in
      POSTGRES_DB: graph-node

  ipfs:
    container_name: ipfs-test
    image: ipfs/go-ipfs:v0.4.23
    ports:
      - "5001:5001"

Run docker compose up then docker logs graph-node-1337-test.

Observe log errors:

Jun 07 20:10:25.324 WARN Trying again after eth_getBlockByNumber(0, false) RPC call failed (attempt #12) with result Err(failed to send request: error sending request for url (http://host.docker.internal:8545/): error trying to connect: tcp connect error: Connection refused (os error 111)), provider: mainnet-rpc-0

What is the expected behavior?

It should work. If I use trufflesuite/ganache-cli instead of Anvil, it works. I expect it to work with both platforms.

I first filed a bug with Foundry, more context here:

https://github.com/foundry-rs/foundry/issues/1868

rhlsthrm avatar Jun 07 '22 20:06 rhlsthrm

Following up from the Foundry issue, we'll deviate from spec to support it (https://github.com/foundry-rs/foundry/issues/1868#issuecomment-1155486998) but IMO the graph code should be fixed so that it works with Geth (cf @rhlsthrm investigation tracking it here). It might also be a rust-web3 bug, no time to investigate on our end for Graph

gakonst avatar Jun 14 '22 17:06 gakonst

This was changed to 0 in https://github.com/graphprotocol/graph-node/pull/1658 because hardhat or ganache (can't remember) didn't like earliest. We should check if it works with 0x0 across the board and then use that instead if it does.

fubhy avatar Jun 15 '22 08:06 fubhy

Looks like this issue has been open for 6 months with no activity. Is it still relevant? If not, please remember to close it.

github-actions[bot] avatar Dec 13 '22 00:12 github-actions[bot]

still relevant, i'm getting tcp connect error: Connection refused when i use anvil for what seems like the same config as my HH node that was working previously

Can see the attempt at debugging here:

https://github.com/rainlanguage/rain.subgraph.docker/pull/3

thedavidmeister avatar Dec 23 '23 12:12 thedavidmeister