Skip to content

[Bug] MegaETH - Testnet local node returns 400 on eth_getBlockByHash #6076

@Luscha

Description

@Luscha

Bug report

I'm trying to run a local node v0.38.0 using the official docker compose for testing purpose indexing MegaETH Testnet.
I'm using the official RPC endpoint in the docker compose and deplying a subgraph.

The said subgraph works in the managed environment but gives 400 when trying to call eth_getBlockByHash in my local deployment.

I tried to curl the RPC directly and, in fact, it retuns a 400 because MegaETH do not support full block request.
I haven't found anything in the official documentation about how to properly configure a localnode against MegaETH.

The error appears before deploying the subgraph, when the node starts-up.


Docker compose:

version: '3'
services:
  graph-node:
    image: graphprotocol/graph-node
    restart: "no"
    ports:
      - '8000:8000'
      - '8001:8001'
      - '8020:8020'
      - '8030:8030'
      - '8040:8040'
    depends_on:
      - ipfs
      - postgres
    extra_hosts:
      - host.docker.internal:host-gateway
    environment:
      postgres_host: postgres
      postgres_user: graph-node
      postgres_pass: let-me-in
      postgres_db: graph-node
      ipfs: 'ipfs:5001'
      ethereum: 'megaeth-testnet::https://carrot.megaeth.com/rpc' #removed archive capability
      GRAPH_LOG: debug

  ipfs:
    image: ipfs/kubo:v0.17.0
    restart: "no"
    ports:
      - '5001:5001'
    volumes:
      - ./data/ipfs:/data/ipfs:Z

  postgres:
    image: postgres
    restart: "no"
    ports:
      - '5432:5432'
    command:
      [
        "postgres",
        "-cshared_preload_libraries=pg_stat_statements",
        "-cmax_connections=200"
      ]
    environment:
      POSTGRES_USER: graph-node
      POSTGRES_PASSWORD: let-me-in
      POSTGRES_DB: graph-node
      PGDATA: "/var/lib/postgresql/data"
      POSTGRES_INITDB_ARGS: "-E UTF8 --locale=C"
    volumes:
      - ./data/postgres:/var/lib/postgresql/data:Z

Subgraph manifest:

specVersion: 0.0.6
schema:
  file: ./schema.graphql

dataSources:
  - kind: ethereum/contract
    name: GameFactory
    network: megaeth-testnet
    source:
      abi: GameFactory
      address: "0x461733951532b44E229d52AFc8756729e2967959"
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.8
      language: wasm/assemblyscript
      file: ./src/mappings/factory.ts
      entities:
        - Game
        - Factory
      abis:
        .....

Relevant log output

Local Node output:

Jul 13 21:55:02.422 DEBG Trying again after eth_getBlockByHash RPC call for block hash 0xf365c3a3030b04646d93040e009ac61d0724b8466d703d64fd174cc18b6ad514 failed (attempt #8) with result Err(code 400), provider: megaeth-testnet-rpc-0, component: EthereumPollingBlockIngestor

Curl output against https://carrot.megaeth.com/rpc

>> curl -X POST https://carrot.megaeth.com/rpc \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc":"2.0",
    "method":"eth_getBlockByHash",
    "params": ["0x92e19450198a1320d581c9b461a195a8939fd0619a5992a3f2970ead75d71b3d", true],
    "id": 1
  }'
{"jsonrpc":"2.0","error":{"code":-32602,"message":"full block not allowed"},"id":null}

IPFS hash

No response

Subgraph name or link to explorer

No response

Some information to help us out

  • Tick this box if this bug is caused by a regression found in the latest release.
  • Tick this box if this bug is specific to the hosted service.
  • I have searched the issue tracker to make sure this issue is not a duplicate.

OS information

Other (please specify in your bug report)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions