5c7d445500
* Add a stack for Gelato watcher * Add option to create and use a state snapshot * Add commands to create and import a state checkpoint * Rename ipld-eth-server endpoint env variables * Fix default env variable Former-commit-id: 8b4b5deba88bc5008a623a3826a5d2c0d76aadb6 |
||
---|---|---|
.. | ||
README.md | ||
stack.yml |
Gelato watcher
Instructions to setup and deploy Gelato watcher using laconic-stack-orchestrator
Setup
Prerequisite: ipld-eth-server
RPC and GQL endpoints
Clone required repositories:
laconic-so --stack gelato setup-repositories
# If this throws an error as a result of being already checked out to a branch/tag in a repo, remove the repositories mentioned below and re-run the command
Checkout to required version in the repo:
# gelato-watcher-ts
cd ~/cerc/gelato-watcher-ts
git checkout v0.1.0
Build the container images:
laconic-so --stack gelato build-containers
This should create the required docker images in the local image registry.
Deploy
Configuration
Create and update an env file to be used in the next step (defaults):
# External ipld-eth-server endpoints
CERC_IPLD_ETH_RPC=
CERC_IPLD_ETH_GQL=
# Whether to use a state snapshot to initialize the watcher
CERC_USE_STATE_SNAPSHOT=false
# State snapshot params
# Required if CERC_USE_STATE_SNAPSHOT is set to true
CERC_SNAPSHOT_GQL_ENDPOINT=
CERC_SNAPSHOT_BLOCKHASH=
- NOTE: If
ipld-eth-server
is running on the host machine, usehost.docker.internal
as the hostname to access the host port(s)
Deploy the stack
laconic-so --stack gelato deploy --env-file <PATH_TO_ENV_FILE> up
To list down and monitor the running containers:
laconic-so --stack gelato deploy ps
# With status
docker ps
# Check logs for a container
docker logs -f <CONTAINER_ID>
The stack runs an active watcher with following endpoints exposed on the host ports:
3008
: watcher endpoint9000
: watcher metrics9001
: watcher GQL metrics
Web Apps
TODO
Clean up
Stop all services running in the background:
laconic-so --stack gelato deploy down
Clear volumes created by this stack:
# List all relevant volumes
docker volume ls -q --filter "name=.*gelato_watcher_db_data|.*gelato_watcher_state_gql"
# Remove all the listed volumes
docker volume rm $(docker volume ls -q --filter "name=.*gelato_watcher_db_data|.*gelato_watcher_state_gql")