A local Graph network for debugging & integration tests.
Epochs are set up to be 554 blocks long, use scripts/mine-block.sh to advance (foundry installation required)
- The network id for manifests is hardhat.
- install Docker & Docker Compose
- docker compose down && docker compose up --build
- install foundry on the host for mining blocks
- docker compose up --build -d ${service}
- docker logs -f ${service}
- docker system prune
- source .env
- Foundry docs: https://book.getfoundry.sh/
- esplr block explorer available at: http://localhost:3000
- cat file via curl:
curl -X POST "http://localhost:5001/api/v0/cat?arg=f1220d6b169dcf83bfe0f615baa2d83e9adf77d520b52faf18a759eb7277b6d66fa7f"
- cat file via CLI:
ipfs --api=/ip4/127.0.0.1/tcp/5001 cat QmagRyTMp4qcRb8fJufk7urNwCQmmUEB9mC6nxHQuKwydb 
- note: if you have a hex digest, a valid CID for it is the hex digits prefixed by f1220. For example,0xd6b169dcf83bfe0f615baa2d83e9adf77d520b52faf18a759eb7277b6d66fa7f->f1220d6b169dcf83bfe0f615baa2d83e9adf77d520b52faf18a759eb7277b6d66fa7f
- psql -h localhost -U postgres
- GraphiQL interface: http://localhost:8000/subgraphs/name/${subgraph_name}/graphql
- Status endpoint: http://localhost:8030/graphql/playground
- 
subgraph: http://localhost:8000/subgraphs/name/graph-network { indexers { id url geoHash } provisions { id indexer { id stakedTokens } tokensProvisioned thawingPeriod maxVerifierCut dataService { id totalTokensProvisioned } } subgraphs { id versions { subgraphDeployment { ipfsHash indexerAllocations { id status indexer { id } } } } } _meta { block { number } deployment } }
- 
subgraph: http://localhost:8000/subgraphs/name/block-oracle { networks { id } _meta { block { number } deployment } }
- graph indexer connect http://localhost:7600
- graph indexer --network=hardhat status
- docker compose up --build indexer-service
- docker compose down indexer-service
- docker compose logs -f indexer-service
curl "http://localhost:7601/subgraphs/id/QmRcucmbxAXLaAZkkCR8Bdj1X7QGPLjfRmQ5H6tFhGqiHX" \
  -H 'content-type: application/json' -H "Authorization: Bearer freestuff" \
  -d '{"query": "{ _meta { block { number } } }"}'curl "http://localhost:7700/api/subgraphs/id/BFr2mx7FgkJ36Y6pE5BiXs1KmNUmVDCnL82KUSdcLW1g" \
  -H 'content-type: application/json' -H "Authorization: Bearer deadbeefdeadbeefdeadbeefdeadbeef" \
  -d '{"query": "{ _meta { block { number } } }"}'docker exec -it redpanda rpk topic consume gateway_client_query_results --brokers="localhost:9092"- 
subgraph: http://localhost:8000/subgraphs/name/semiotic/tap { escrowAccounts { balance sender { id } receiver { id } } _meta { block { number } deployment } }
The following components allow building from source by overriding docker-compose.yml:
- graph-node
- graph-contracts
- indexer-agent
Please refer to overrides/README.md for instructions.
The following components allow building from source by cloning them with submodules:
- indexer-service
- tap-agent
Building from source requires the Git submodules to be initialized first:
- git submodule update --init --recursive
And then select the wrapper-dev target when building the Docker image in the docker-compose.yaml file.
  indexer-service:
    container_name: indexer-service
    build: { 
-     target: "wrapper", # Set to "wrapper-dev" for building from source
+     target: "wrapper-dev", # Set to "wrapper-dev" for building from source
      context: indexer-service,
    }
  tap-agent:
    container_name: tap-agent
    build: { 
-     target: "wrapper", # Set to "wrapper-dev" for building from source
+     target: "wrapper-dev", # Set to "wrapper-dev" for building from source
      context: tap-agent,
    }Gateway error:
ERROR graph_gateway::network::subgraph_client: indexer=http://indexer-service:7601/subgraphs/id/Qmc2CbqucMvaS4GFvt2QUZWvRwSZ3K5ipeGvbC6UUBf616 network_subgraph_query_err="response too far behind"
Solution:
This happens because the network does not automine, can be fixed by running scripts/mine-block.sh 10