ocean-subgraph/docker
Alex Coseru c6004336ae
Predictoor support (#678)
* first cut, still WIP

* use specific contracts image

* fix missing abi

* more predictoor

* more predictoor

* done predictoor logic

* fix

* update

* merge #682

* update ready logic

* fixes

* lint

* increase timeout

* add oasis-saphire-testnet

* bump to contracts v2.0.0-next.2

* add loop for crappy rpc

* merge template

* fixes 1

* fixes

* fix predictor detection

* Use latest predictoor contracts (#708)

* Update tests.yml

* Update handlers

* Update schema

* Linter

* Update abi and fields

* use latest contracts

* use latest contracts

* expose agg preds in trueval

* fix abi path

* remove unused abis

* fix

---------

Co-authored-by: trizin <25263018+trizin@users.noreply.github.com>

* bump contracts

* Remove floatValue from predictoor trueval handler  (#714)

* Update predictSlot status on trueval submit (#716)

* Update status

* Fix

* Update contracts version

* Use number for predict slot

* Fixes

* Linter

* Fix

* Fix

* tostring

* Fix

* Fix

* Fix

* use contracts v2.0.0-next.11

* use latest graph-cli

* remove --debug flag

* Feature/add predictoor pause event (#723)

* bump contracts

* add pause for predictoorContract

* bump contracts to v2.0.0-13

* bum contracts & add sapphire mainnet

* fix lock

---------

Co-authored-by: trizin <25263018+trizin@users.noreply.github.com>
2023-11-21 15:55:49 +02:00
..
bin Activate dependabot, build tweaks, green CI (#6) 2021-02-09 11:13:31 +01:00
hooks Activate dependabot, build tweaks, green CI (#6) 2021-02-09 11:13:31 +01:00
.env.example Add swap volume, consume volume to subgraph (#64) 2021-07-30 00:36:44 -07:00
README.md fix pool exit values (#392) 2022-03-29 05:59:32 -07:00
docker-compose.yml Predictoor support (#678) 2023-11-21 15:55:49 +02:00
setup.sh Activate dependabot, build tweaks, green CI (#6) 2021-02-09 11:13:31 +01:00
start Activate dependabot, build tweaks, green CI (#6) 2021-02-09 11:13:31 +01:00
wait_for Activate dependabot, build tweaks, green CI (#6) 2021-02-09 11:13:31 +01:00

README.md

Graph Node Docker Image

Preconfigured Docker image for running a Graph Node.

Usage

docker run -it \
  -e postgres_host=<HOST> \
  -e postgres_port=<PORT> \
  -e postgres_user=<USER> \
  -e postgres_pass=<PASSWORD> \
  -e postgres_db=<DBNAME> \
  -e ipfs=<HOST>:<PORT> \
  -e ethereum=<NETWORK_NAME>:<ETHEREUM_RPC_URL> \
  graphprotocol/graph-node:latest

Example usage

docker run -it \
  -e postgres_host=host.docker.internal \
  -e postgres_port=5432 \
  -e postgres_user=graph-node \
  -e postgres_pass=oh-hello \
  -e postgres_db=graph-node \
  -e ipfs=host.docker.internal:5001 \
  -e ethereum=mainnet:http://localhost:8545/ \
  graphprotocol/graph-node:latest

Docker Compose

The Docker Compose setup requires an Ethereum network name and node to connect to. By default, it will use mainnet:http://host.docker.internal:8545 in order to connect to an Ethereum node running on your host machine. You can replace this with anything else in docker-compose.yaml.

Note for Linux users: On Linux, host.docker.internal is not currently supported. Instead, you will have to replace it with the IP address of your Docker host (from the perspective of the Graph Node container). To do this, run:

CONTAINER_ID=$(docker container ls | grep graph-node | cut -d' ' -f1) docker exec $CONTAINER_ID /bin/bash -c 'apt install -y iproute2 && ip route' | awk '/^default via /{print $3}'


This will print the host's IP address. Then, put it into `docker-compose.yml`:

sed -i -e 's/host.docker.internal//g' docker-compose.yml

After you have set up an Ethereum node—e.g. Ganache or Parity—simply clone this repository and run

docker-compose up

OR

docker-compose --env-file .env up | grep -a -E --color 'WARN.*|$'

This will start IPFS, Postgres and Graph Node in Docker and create persistent data directories for IPFS and Postgres in ./data/ipfs and ./data/postgres. You can access these via:

  • Graph Node:
    • GraphiQL: http://localhost:8000/
    • HTTP: http://localhost:8000/subgraphs/name/<subgraph-name>
    • WebSockets: ws://localhost:8001/subgraphs/name/<subgraph-name>
    • Admin: http://localhost:8020/
  • IPFS:
    • 127.0.0.1:5001 or /ip4/127.0.0.1/tcp/5001
  • Postgres:
    • postgresql://graph-node:let-me-in@localhost:5432/graph-node

Once this is up and running, you can use graph-cli to create and deploy your subgraph to the running Graph Node.