Add stack for steer-protocol watcher (#1)
Part of https://www.notion.so/FEVM-Subgraph-Production-Deployment-089a34a10010495b9ccb5cd878c1bbe9 Reviewed-on: #1 Co-authored-by: Nabarun <nabarun@deepstacksoft.com> Co-committed-by: Nabarun <nabarun@deepstacksoft.com>
This commit is contained in:
parent
5b954a9dcd
commit
f1bfb2333b
10
package.json
10
package.json
@ -39,11 +39,11 @@
|
|||||||
"homepage": "https://github.com/cerc-io/watcher-ts#readme",
|
"homepage": "https://github.com/cerc-io/watcher-ts#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@apollo/client": "^3.3.19",
|
"@apollo/client": "^3.3.19",
|
||||||
"@cerc-io/cli": "^0.2.107",
|
"@cerc-io/cli": "^0.2.108",
|
||||||
"@cerc-io/ipld-eth-client": "^0.2.107",
|
"@cerc-io/ipld-eth-client": "^0.2.108",
|
||||||
"@cerc-io/solidity-mapper": "^0.2.107",
|
"@cerc-io/solidity-mapper": "^0.2.108",
|
||||||
"@cerc-io/util": "^0.2.107",
|
"@cerc-io/util": "^0.2.108",
|
||||||
"@cerc-io/graph-node": "^0.2.107",
|
"@cerc-io/graph-node": "^0.2.108",
|
||||||
"@ethersproject/providers": "^5.4.4",
|
"@ethersproject/providers": "^5.4.4",
|
||||||
"debug": "^4.3.1",
|
"debug": "^4.3.1",
|
||||||
"decimal.js": "^10.3.1",
|
"decimal.js": "^10.3.1",
|
||||||
|
@ -620,6 +620,10 @@ export class Indexer implements IndexerInterface {
|
|||||||
return this._baseIndexer.watchContract(address, kind, checkpoint, startingBlock, context);
|
return this._baseIndexer.watchContract(address, kind, checkpoint, startingBlock, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async removeContract (address: string, kind: string): Promise<void> {
|
||||||
|
return this._baseIndexer.removeContract(address, kind);
|
||||||
|
}
|
||||||
|
|
||||||
updateStateStatusMap (address: string, stateStatus: StateStatus): void {
|
updateStateStatusMap (address: string, stateStatus: StateStatus): void {
|
||||||
this._baseIndexer.updateStateStatusMap(address, stateStatus);
|
this._baseIndexer.updateStateStatusMap(address, stateStatus);
|
||||||
}
|
}
|
||||||
|
3
stacks/README.md
Normal file
3
stacks/README.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# steer-protocol-watcher-stack
|
||||||
|
|
||||||
|
- [steer-protocol-watcher](stack-orchestrator/stacks/steer-protocol)
|
@ -0,0 +1,82 @@
|
|||||||
|
version: '3.2'
|
||||||
|
|
||||||
|
services:
|
||||||
|
steer-protocol-watcher-db:
|
||||||
|
restart: unless-stopped
|
||||||
|
image: postgres:14-alpine
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=vdbm
|
||||||
|
- POSTGRES_MULTIPLE_DATABASES=steer-protocol-watcher,steer-protocol-watcher-job-queue
|
||||||
|
- POSTGRES_EXTENSION=steer-protocol-watcher-job-queue:pgcrypto
|
||||||
|
- POSTGRES_PASSWORD=password
|
||||||
|
volumes:
|
||||||
|
- ../config/postgresql/multiple-postgressql-databases.sh:/docker-entrypoint-initdb.d/multiple-postgressql-databases.sh
|
||||||
|
- steer_protocol_watcher_db_data:/var/lib/postgresql/data
|
||||||
|
ports:
|
||||||
|
- "5432"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "nc", "-v", "localhost", "5432"]
|
||||||
|
interval: 20s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 15
|
||||||
|
start_period: 10s
|
||||||
|
|
||||||
|
steer-protocol-watcher-job-runner:
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
steer-protocol-watcher-db:
|
||||||
|
condition: service_healthy
|
||||||
|
image: cerc/watcher-steer-protocol:local
|
||||||
|
environment:
|
||||||
|
CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG}
|
||||||
|
CERC_GQL_SERVER_PATH: ${CERC_GQL_SERVER_PATH:-/graphql}
|
||||||
|
CERC_ETH_RPC_SERVER_PATH: ${CERC_ETH_RPC_SERVER_PATH:-/rpc}
|
||||||
|
CERC_ETH_RPC_ENDPOINTS: ${CERC_ETH_RPC_ENDPOINTS}
|
||||||
|
command: ["bash", "./start-job-runner.sh"]
|
||||||
|
volumes:
|
||||||
|
- ../config/watcher-steer-protocol/watcher-config-template.toml:/app/environments/watcher-config-template.toml
|
||||||
|
- ../config/watcher-steer-protocol/start-job-runner.sh:/app/start-job-runner.sh
|
||||||
|
ports:
|
||||||
|
- "9000"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "nc", "-vz", "127.0.0.1", "9000"]
|
||||||
|
interval: 20s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 15
|
||||||
|
start_period: 5s
|
||||||
|
extra_hosts:
|
||||||
|
- "host.docker.internal:host-gateway"
|
||||||
|
|
||||||
|
steer-protocol-watcher-server:
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
steer-protocol-watcher-db:
|
||||||
|
condition: service_healthy
|
||||||
|
steer-protocol-watcher-job-runner:
|
||||||
|
condition: service_healthy
|
||||||
|
image: cerc/watcher-steer-protocol:local
|
||||||
|
environment:
|
||||||
|
CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG}
|
||||||
|
CERC_GQL_SERVER_PATH: ${CERC_GQL_SERVER_PATH:-/graphql}
|
||||||
|
CERC_ETH_RPC_SERVER_PATH: ${CERC_ETH_RPC_SERVER_PATH:-/rpc}
|
||||||
|
CERC_ETH_RPC_ENDPOINTS: ${CERC_ETH_RPC_ENDPOINTS}
|
||||||
|
command: ["bash", "./start-server.sh"]
|
||||||
|
volumes:
|
||||||
|
- ../config/watcher-steer-protocol/watcher-config-template.toml:/app/environments/watcher-config-template.toml
|
||||||
|
- ../config/watcher-steer-protocol/start-server.sh:/app/start-server.sh
|
||||||
|
- steer_protocol_watcher_gql_logs_data:/app/gql-logs
|
||||||
|
ports:
|
||||||
|
- "3008"
|
||||||
|
- "9001"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "nc", "-vz", "127.0.0.1", "3008"]
|
||||||
|
interval: 20s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 15
|
||||||
|
start_period: 5s
|
||||||
|
extra_hosts:
|
||||||
|
- "host.docker.internal:host-gateway"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
steer_protocol_watcher_db_data:
|
||||||
|
steer_protocol_watcher_gql_logs_data:
|
29
stacks/stack-orchestrator/config/watcher-steer-protocol/start-job-runner.sh
Executable file
29
stacks/stack-orchestrator/config/watcher-steer-protocol/start-job-runner.sh
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
if [ -n "$CERC_SCRIPT_DEBUG" ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
set -u
|
||||||
|
|
||||||
|
echo "Using env variables:"
|
||||||
|
echo "CERC_GQL_SERVER_PATH: ${CERC_GQL_SERVER_PATH}"
|
||||||
|
echo "CERC_ETH_RPC_SERVER_PATH: ${CERC_ETH_RPC_SERVER_PATH}"
|
||||||
|
echo "CERC_ETH_RPC_ENDPOINTS: ${CERC_ETH_RPC_ENDPOINTS}"
|
||||||
|
|
||||||
|
# Read in the config template TOML file and modify it
|
||||||
|
WATCHER_CONFIG_TEMPLATE=$(cat environments/watcher-config-template.toml)
|
||||||
|
|
||||||
|
# Convert the comma-separated list in CERC_ETH_RPC_ENDPOINTS to a JSON array
|
||||||
|
RPC_ENDPOINTS_ARRAY=$(echo "$CERC_ETH_RPC_ENDPOINTS" | tr ',' '\n' | awk '{print "\"" $0 "\""}' | paste -sd, - | sed 's/^/[/; s/$/]/')
|
||||||
|
|
||||||
|
WATCHER_CONFIG=$(echo "$WATCHER_CONFIG_TEMPLATE" | \
|
||||||
|
sed -E "s|REPLACE_WITH_CERC_GQL_SERVER_PATH|\"${CERC_GQL_SERVER_PATH}\"|g; \
|
||||||
|
s|REPLACE_WITH_CERC_ETH_RPC_SERVER_PATH|\"${CERC_ETH_RPC_SERVER_PATH}\"|g; \
|
||||||
|
s|REPLACE_WITH_CERC_ETH_RPC_ENDPOINTS|${RPC_ENDPOINTS_ARRAY}| ")
|
||||||
|
|
||||||
|
# Write the modified content to a new file
|
||||||
|
echo "$WATCHER_CONFIG" > environments/local.toml
|
||||||
|
|
||||||
|
echo "Running job-runner..."
|
||||||
|
DEBUG=vulcanize:* exec node --enable-source-maps dist/job-runner.js
|
29
stacks/stack-orchestrator/config/watcher-steer-protocol/start-server.sh
Executable file
29
stacks/stack-orchestrator/config/watcher-steer-protocol/start-server.sh
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
if [ -n "$CERC_SCRIPT_DEBUG" ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
set -u
|
||||||
|
|
||||||
|
echo "Using env variables:"
|
||||||
|
echo "CERC_GQL_SERVER_PATH: ${CERC_GQL_SERVER_PATH}"
|
||||||
|
echo "CERC_ETH_RPC_SERVER_PATH: ${CERC_ETH_RPC_SERVER_PATH}"
|
||||||
|
echo "CERC_ETH_RPC_ENDPOINTS: ${CERC_ETH_RPC_ENDPOINTS}"
|
||||||
|
|
||||||
|
# Read in the config template TOML file and modify it
|
||||||
|
WATCHER_CONFIG_TEMPLATE=$(cat environments/watcher-config-template.toml)
|
||||||
|
|
||||||
|
# Convert the comma-separated list in CERC_ETH_RPC_ENDPOINTS to a JSON array
|
||||||
|
RPC_ENDPOINTS_ARRAY=$(echo "$CERC_ETH_RPC_ENDPOINTS" | tr ',' '\n' | awk '{print "\"" $0 "\""}' | paste -sd, - | sed 's/^/[/; s/$/]/')
|
||||||
|
|
||||||
|
WATCHER_CONFIG=$(echo "$WATCHER_CONFIG_TEMPLATE" | \
|
||||||
|
sed -E "s|REPLACE_WITH_CERC_GQL_SERVER_PATH|\"${CERC_GQL_SERVER_PATH}\"|g; \
|
||||||
|
s|REPLACE_WITH_CERC_ETH_RPC_SERVER_PATH|\"${CERC_ETH_RPC_SERVER_PATH}\"|g; \
|
||||||
|
s|REPLACE_WITH_CERC_ETH_RPC_ENDPOINTS|${RPC_ENDPOINTS_ARRAY}| ")
|
||||||
|
|
||||||
|
# Write the modified content to a new file
|
||||||
|
echo "$WATCHER_CONFIG" > environments/local.toml
|
||||||
|
|
||||||
|
echo "Running server..."
|
||||||
|
DEBUG=vulcanize:* exec node --enable-source-maps dist/server.js
|
@ -0,0 +1,121 @@
|
|||||||
|
[server]
|
||||||
|
host = "0.0.0.0"
|
||||||
|
port = 3008
|
||||||
|
kind = "active"
|
||||||
|
|
||||||
|
# Checkpointing state.
|
||||||
|
checkpointing = true
|
||||||
|
|
||||||
|
# Checkpoint interval in number of blocks.
|
||||||
|
checkpointInterval = 2000
|
||||||
|
|
||||||
|
# Enable state creation
|
||||||
|
enableState = false
|
||||||
|
|
||||||
|
subgraphPath = "./subgraph-build"
|
||||||
|
|
||||||
|
# Interval to restart wasm instance periodically
|
||||||
|
wasmRestartBlocksInterval = 20
|
||||||
|
|
||||||
|
# Interval in number of blocks at which to clear entities cache.
|
||||||
|
clearEntitiesCacheInterval = 1000
|
||||||
|
|
||||||
|
# Flag to specify whether RPC endpoint supports block hash as block tag parameter
|
||||||
|
rpcSupportsBlockHashParam = false
|
||||||
|
|
||||||
|
# GQL server config
|
||||||
|
[server.gql]
|
||||||
|
path = REPLACE_WITH_CERC_GQL_SERVER_PATH
|
||||||
|
|
||||||
|
# Max block range for which to return events in eventsInRange GQL query.
|
||||||
|
# Use -1 for skipping check on block range.
|
||||||
|
maxEventsBlockRange = 1000
|
||||||
|
|
||||||
|
# Log directory for GQL requests
|
||||||
|
logDir = "./gql-logs"
|
||||||
|
|
||||||
|
# GQL cache settings
|
||||||
|
[server.gql.cache]
|
||||||
|
enabled = true
|
||||||
|
|
||||||
|
# Max in-memory cache size (in bytes) (default 8 MB)
|
||||||
|
# maxCacheSize
|
||||||
|
|
||||||
|
# GQL cache-control max-age settings (in seconds)
|
||||||
|
maxAge = 15
|
||||||
|
timeTravelMaxAge = 86400 # 1 day
|
||||||
|
|
||||||
|
# ETH RPC server config
|
||||||
|
[server.ethRPC]
|
||||||
|
enabled = true
|
||||||
|
path = REPLACE_WITH_CERC_ETH_RPC_SERVER_PATH
|
||||||
|
|
||||||
|
# Max number of logs that can be returned in a single getLogs request (default: 10000)
|
||||||
|
getLogsResultLimit = 10000
|
||||||
|
|
||||||
|
[metrics]
|
||||||
|
host = "0.0.0.0"
|
||||||
|
port = 9000
|
||||||
|
[metrics.gql]
|
||||||
|
port = 9001
|
||||||
|
|
||||||
|
[database]
|
||||||
|
type = "postgres"
|
||||||
|
host = "steer-protocol-watcher-db"
|
||||||
|
port = 5432
|
||||||
|
database = "steer-protocol-watcher"
|
||||||
|
username = "vdbm"
|
||||||
|
password = "password"
|
||||||
|
synchronize = true
|
||||||
|
logging = false
|
||||||
|
|
||||||
|
[upstream]
|
||||||
|
[upstream.ethServer]
|
||||||
|
rpcProviderEndpoints = REPLACE_WITH_CERC_ETH_RPC_ENDPOINTS
|
||||||
|
|
||||||
|
# Boolean flag to specify if rpc-eth-client should be used for RPC endpoint instead of ipld-eth-client (ipld-eth-server GQL client)
|
||||||
|
rpcClient = true
|
||||||
|
|
||||||
|
# Boolean flag to specify if rpcProviderEndpoint is an FEVM RPC endpoint
|
||||||
|
isFEVM = true
|
||||||
|
|
||||||
|
# Boolean flag to filter event logs by contracts
|
||||||
|
filterLogsByAddresses = true
|
||||||
|
# Boolean flag to filter event logs by topics
|
||||||
|
filterLogsByTopics = true
|
||||||
|
|
||||||
|
# Switch clients if eth_getLogs call takes more than threshold (in secs)
|
||||||
|
# Set to 0 for disabling switching
|
||||||
|
getLogsClientSwitchThresholdInSecs = 30
|
||||||
|
|
||||||
|
[upstream.cache]
|
||||||
|
name = "requests"
|
||||||
|
enabled = false
|
||||||
|
deleteOnStart = false
|
||||||
|
|
||||||
|
[jobQueue]
|
||||||
|
dbConnectionString = "postgres://vdbm:password@steer-protocol-watcher-db/steer-protocol-watcher-job-queue"
|
||||||
|
maxCompletionLagInSecs = 300
|
||||||
|
jobDelayInMilliSecs = 100
|
||||||
|
eventsInBatch = 50
|
||||||
|
subgraphEventsOrder = true
|
||||||
|
# Filecoin block time: https://docs.filecoin.io/basics/the-blockchain/blocks-and-tipsets#blocktime
|
||||||
|
blockDelayInMilliSecs = 30000
|
||||||
|
|
||||||
|
# Number of blocks by which block processing lags behind head
|
||||||
|
blockProcessingOffset = 0
|
||||||
|
|
||||||
|
# Boolean to switch between modes of processing events when starting the server.
|
||||||
|
# Setting to true will fetch filtered events and required blocks in a range of blocks and then process them.
|
||||||
|
# Setting to false will fetch blocks consecutively with its events and then process them (Behaviour is followed in realtime processing near head).
|
||||||
|
useBlockRanges = true
|
||||||
|
|
||||||
|
# Block range in which logs are fetched during historical blocks processing
|
||||||
|
historicalLogsBlockRange = 2000
|
||||||
|
|
||||||
|
# Max block range of historical processing after which it waits for completion of events processing
|
||||||
|
# If set to -1 historical processing does not wait for events processing and completes till latest canonical block
|
||||||
|
historicalMaxFetchAhead = 10000
|
||||||
|
|
||||||
|
# Max number of retries to fetch new block after which watcher will failover to other RPC endpoints
|
||||||
|
maxNewBlockRetries = 3
|
@ -0,0 +1 @@
|
|||||||
|
stacks
|
@ -0,0 +1,15 @@
|
|||||||
|
FROM node:18.17.1-alpine3.18
|
||||||
|
|
||||||
|
RUN apk --update --no-cache add git python3 alpine-sdk bash curl jq
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Get the latest Git commit hash and set in package.json
|
||||||
|
RUN COMMIT_HASH=$(git rev-parse HEAD) && \
|
||||||
|
jq --arg commitHash "$COMMIT_HASH" '.commitHash = $commitHash' package.json > tmp.json && \
|
||||||
|
mv tmp.json package.json
|
||||||
|
|
||||||
|
RUN echo "Installing dependencies and building steer-protocol-watcher-ts" && \
|
||||||
|
yarn && yarn build
|
@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build cerc/watcher-steer-protocol
|
||||||
|
|
||||||
|
source ${CERC_CONTAINER_BASE_DIR}/build-base.sh
|
||||||
|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||||
|
|
||||||
|
docker build -t cerc/watcher-steer-protocol:local -f ${SCRIPT_DIR}/Dockerfile ${build_command_args} ${CERC_REPO_BASE_DIR}/steer-protocol-watcher-ts
|
110
stacks/stack-orchestrator/stacks/steer-protocol/README.md
Normal file
110
stacks/stack-orchestrator/stacks/steer-protocol/README.md
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
# SteerProtocol Watcher
|
||||||
|
|
||||||
|
## Clone the stack repo
|
||||||
|
|
||||||
|
```bash
|
||||||
|
laconic-so fetch-stack git.vdb.to/cerc-io/steer-protocol-watcher-ts
|
||||||
|
```
|
||||||
|
|
||||||
|
## Build the container image
|
||||||
|
|
||||||
|
```bash
|
||||||
|
laconic-so --stack ~/cerc/steer-protocol-watcher-ts/stacks/stack-orchestrator/stacks/steer-protocol build-containers
|
||||||
|
```
|
||||||
|
|
||||||
|
## Create a spec file for the deployment
|
||||||
|
|
||||||
|
```bash
|
||||||
|
laconic-so --stack ~/cerc/steer-protocol-watcher-ts/stacks/stack-orchestrator/stacks/steer-protocol deploy init --output steer-protocol-spec.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ports
|
||||||
|
|
||||||
|
Edit `network` in the spec file to map container ports to host ports as required:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
...
|
||||||
|
network:
|
||||||
|
ports:
|
||||||
|
steer-protocol-watcher-db:
|
||||||
|
- 15432:5432
|
||||||
|
steer-protocol-watcher-job-runner:
|
||||||
|
- 9000:9000
|
||||||
|
steer-protocol-watcher-server:
|
||||||
|
- 3008:3008
|
||||||
|
- 9001:9001
|
||||||
|
```
|
||||||
|
|
||||||
|
## Create a deployment from the spec file
|
||||||
|
|
||||||
|
```bash
|
||||||
|
laconic-so --stack ~/cerc/steer-protocol-watcher-ts/stacks/stack-orchestrator/stacks/steer-protocol deploy create --spec-file steer-protocol-spec.yml --deployment-dir steer-protocol-deployment
|
||||||
|
```
|
||||||
|
|
||||||
|
### Configuration
|
||||||
|
|
||||||
|
Inside deployment directory, open the `config.env` file and set following env variables:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# External Filecoin (ETH RPC) endpoint to point the watcher to
|
||||||
|
CERC_ETH_RPC_ENDPOINTS=https://example-lotus-endpoint-1/rpc/v1,https://example-lotus-endpoint-2/rpc/v1
|
||||||
|
|
||||||
|
# GQL path of watcher to set in config (server.gql.path)
|
||||||
|
CERC_GQL_SERVER_PATH=/graphql
|
||||||
|
|
||||||
|
# ETH RPC path of watcher to set in config (server.ethRPC.path)
|
||||||
|
CERC_ETH_RPC_SERVER_PATH=/rpc
|
||||||
|
```
|
||||||
|
|
||||||
|
## Start the deployment
|
||||||
|
|
||||||
|
```bash
|
||||||
|
laconic-so deployment --dir steer-protocol-deployment start
|
||||||
|
```
|
||||||
|
|
||||||
|
* To list down and monitor the running containers:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# With status
|
||||||
|
docker ps -a
|
||||||
|
|
||||||
|
# Check logs for a container
|
||||||
|
docker logs -f <CONTAINER_ID>
|
||||||
|
```
|
||||||
|
|
||||||
|
* Open the GQL playground at <http://localhost:3008/graphql>
|
||||||
|
|
||||||
|
```graphql
|
||||||
|
# Example query
|
||||||
|
query {
|
||||||
|
_meta {
|
||||||
|
block {
|
||||||
|
hash
|
||||||
|
number
|
||||||
|
timestamp
|
||||||
|
}
|
||||||
|
deployment
|
||||||
|
hasIndexingErrors
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Clean up
|
||||||
|
|
||||||
|
Stop all the steer-protocol services running in background:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Only stop the docker containers
|
||||||
|
laconic-so deployment --dir steer-protocol-deployment stop
|
||||||
|
|
||||||
|
# Run 'start' to restart the deployment
|
||||||
|
```
|
||||||
|
|
||||||
|
To stop all the steer-protocol services and also delete data:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Stop the docker containers
|
||||||
|
laconic-so deployment --dir steer-protocol-deployment stop --delete-volumes
|
||||||
|
|
||||||
|
# Remove deployment directory (deployment will have to be recreated for a re-run)
|
||||||
|
rm -r steer-protocol-deployment
|
||||||
|
```
|
@ -0,0 +1,8 @@
|
|||||||
|
version: "1.0"
|
||||||
|
name: steer-protocol
|
||||||
|
description: "SteerProtocol watcher stack"
|
||||||
|
repos:
|
||||||
|
containers:
|
||||||
|
- cerc/watcher-steer-protocol
|
||||||
|
pods:
|
||||||
|
- watcher-steer-protocol
|
118
yarn.lock
118
yarn.lock
@ -194,10 +194,10 @@
|
|||||||
binaryen "101.0.0-nightly.20210723"
|
binaryen "101.0.0-nightly.20210723"
|
||||||
long "^4.0.0"
|
long "^4.0.0"
|
||||||
|
|
||||||
"@cerc-io/cache@^0.2.107":
|
"@cerc-io/cache@^0.2.108":
|
||||||
version "0.2.107"
|
version "0.2.108"
|
||||||
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcache/-/0.2.107/cache-0.2.107.tgz#45a8535a02c5753377f43099886d56f71021d3e5"
|
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcache/-/0.2.108/cache-0.2.108.tgz#92ed16720bbc542ce5101da5dcd6ad5f82848076"
|
||||||
integrity sha512-qgum0iXoucQ4cu9hYa0NFe15xoN7B6+Y9CyB5XK5Wj5Jd0u3+fYbK7hDplc4KRwfMlrmMoETy7xJsbghOEtr2Q==
|
integrity sha512-oIrIDn5161si5657F0GDyabx8IpUPngur5mplS1vlyVp6SwBzt+rlSM32S26CR0p8kJRwKFEgJDGxU1yxLUcwA==
|
||||||
dependencies:
|
dependencies:
|
||||||
canonical-json "^0.0.4"
|
canonical-json "^0.0.4"
|
||||||
debug "^4.3.1"
|
debug "^4.3.1"
|
||||||
@ -205,19 +205,19 @@
|
|||||||
fs-extra "^10.0.0"
|
fs-extra "^10.0.0"
|
||||||
level "^7.0.0"
|
level "^7.0.0"
|
||||||
|
|
||||||
"@cerc-io/cli@^0.2.107":
|
"@cerc-io/cli@^0.2.108":
|
||||||
version "0.2.107"
|
version "0.2.108"
|
||||||
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcli/-/0.2.107/cli-0.2.107.tgz#9d58b44046c7d5d7898bf9060f696691e744dd72"
|
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcli/-/0.2.108/cli-0.2.108.tgz#28dd548114cffbf6bbfa268acafef712236a1948"
|
||||||
integrity sha512-vApmnid5VgxVA2PSUyhJYHWZK6bwqODmhdyLvzg6qoFOFRxp61o5XeNaGHfN5842oAljMcL53ILpBnebJV58jw==
|
integrity sha512-x847X4+6k0JxRDXlkT8xgsBLuF7jDEhlUkEKoihVjQcGPcAAZQ8P1OkkXw56Mo3p/CaoP6oTTsd11CJxuLLN5Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@apollo/client" "^3.7.1"
|
"@apollo/client" "^3.7.1"
|
||||||
"@cerc-io/cache" "^0.2.107"
|
"@cerc-io/cache" "^0.2.108"
|
||||||
"@cerc-io/ipld-eth-client" "^0.2.107"
|
"@cerc-io/ipld-eth-client" "^0.2.108"
|
||||||
"@cerc-io/libp2p" "^0.42.2-laconic-0.1.4"
|
"@cerc-io/libp2p" "^0.42.2-laconic-0.1.4"
|
||||||
"@cerc-io/nitro-node" "^0.1.15"
|
"@cerc-io/nitro-node" "^0.1.15"
|
||||||
"@cerc-io/peer" "^0.2.107"
|
"@cerc-io/peer" "^0.2.108"
|
||||||
"@cerc-io/rpc-eth-client" "^0.2.107"
|
"@cerc-io/rpc-eth-client" "^0.2.108"
|
||||||
"@cerc-io/util" "^0.2.107"
|
"@cerc-io/util" "^0.2.108"
|
||||||
"@ethersproject/providers" "^5.4.4"
|
"@ethersproject/providers" "^5.4.4"
|
||||||
"@graphql-tools/utils" "^9.1.1"
|
"@graphql-tools/utils" "^9.1.1"
|
||||||
"@ipld/dag-cbor" "^8.0.0"
|
"@ipld/dag-cbor" "^8.0.0"
|
||||||
@ -238,16 +238,16 @@
|
|||||||
typeorm "0.2.37"
|
typeorm "0.2.37"
|
||||||
yargs "^17.0.1"
|
yargs "^17.0.1"
|
||||||
|
|
||||||
"@cerc-io/graph-node@^0.2.107":
|
"@cerc-io/graph-node@^0.2.108":
|
||||||
version "0.2.107"
|
version "0.2.108"
|
||||||
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fgraph-node/-/0.2.107/graph-node-0.2.107.tgz#55348641235104e12fa2e0194155e08e96b12bee"
|
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fgraph-node/-/0.2.108/graph-node-0.2.108.tgz#75e4936e26989e075c1c9fb25e5162e384914a3f"
|
||||||
integrity sha512-16vVq9CQ2roh7DJ7gHny5xCtWVk7sqfqqoMa75IX+7ua+fj6GcsHIQdEFf21R/8sdGbu/3aJt6lCLtOOnzL4tw==
|
integrity sha512-sSZHfTtswGDOlMGo//ezCdinpZTqcDCdiLVhxCYL2i86xvmS8lir0ho93jmfqUSomHLNZkMODiwtkli+qW8pUg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@apollo/client" "^3.3.19"
|
"@apollo/client" "^3.3.19"
|
||||||
"@cerc-io/assemblyscript" "0.19.10-watcher-ts-0.1.2"
|
"@cerc-io/assemblyscript" "0.19.10-watcher-ts-0.1.2"
|
||||||
"@cerc-io/cache" "^0.2.107"
|
"@cerc-io/cache" "^0.2.108"
|
||||||
"@cerc-io/ipld-eth-client" "^0.2.107"
|
"@cerc-io/ipld-eth-client" "^0.2.108"
|
||||||
"@cerc-io/util" "^0.2.107"
|
"@cerc-io/util" "^0.2.108"
|
||||||
"@types/json-diff" "^0.5.2"
|
"@types/json-diff" "^0.5.2"
|
||||||
"@types/yargs" "^17.0.0"
|
"@types/yargs" "^17.0.0"
|
||||||
bn.js "^4.11.9"
|
bn.js "^4.11.9"
|
||||||
@ -264,14 +264,14 @@
|
|||||||
typeorm-naming-strategies "^2.0.0"
|
typeorm-naming-strategies "^2.0.0"
|
||||||
yargs "^17.0.1"
|
yargs "^17.0.1"
|
||||||
|
|
||||||
"@cerc-io/ipld-eth-client@^0.2.107":
|
"@cerc-io/ipld-eth-client@^0.2.108":
|
||||||
version "0.2.107"
|
version "0.2.108"
|
||||||
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fipld-eth-client/-/0.2.107/ipld-eth-client-0.2.107.tgz#8bbeeb730b92965b75c42a7760cc95e5481e903a"
|
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fipld-eth-client/-/0.2.108/ipld-eth-client-0.2.108.tgz#455bd5d0cbe129ed266a7377246989d68d85a6a3"
|
||||||
integrity sha512-6y/nZrtU7tVsHhqlzpe/iGRVhgZ3yh7hKkpYVnur4LPQHMBdOGa0qW+rD1CDpKs5RuUMqNi6U+bU5UedQeF2lw==
|
integrity sha512-GwfPaWzhmYhPtu0S2vFQe8w9OTIMD007hhLl6myIsOTdHbVJtGj3RpzXQXmvs9NCpOj66YcFhGJ2YbV52hdUXg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@apollo/client" "^3.7.1"
|
"@apollo/client" "^3.7.1"
|
||||||
"@cerc-io/cache" "^0.2.107"
|
"@cerc-io/cache" "^0.2.108"
|
||||||
"@cerc-io/util" "^0.2.107"
|
"@cerc-io/util" "^0.2.108"
|
||||||
cross-fetch "^3.1.4"
|
cross-fetch "^3.1.4"
|
||||||
debug "^4.3.1"
|
debug "^4.3.1"
|
||||||
ethers "^5.4.4"
|
ethers "^5.4.4"
|
||||||
@ -394,7 +394,37 @@
|
|||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
uint8arrays "^4.0.3"
|
uint8arrays "^4.0.3"
|
||||||
|
|
||||||
"@cerc-io/peer@^0.2.107", "@cerc-io/peer@^0.2.65":
|
"@cerc-io/peer@^0.2.108":
|
||||||
|
version "0.2.108"
|
||||||
|
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fpeer/-/0.2.108/peer-0.2.108.tgz#327b86581d6750f21bd22105be0ecb39dcde5b6e"
|
||||||
|
integrity sha512-ywXetDME6JmfPRiOEI6N1R7j2p0Eo0OWbmumeNVuDhmsrkENwFUDu32PsOp3oomBHndgmcFhGQlppPWFxwUggg==
|
||||||
|
dependencies:
|
||||||
|
"@cerc-io/libp2p" "^0.42.2-laconic-0.1.4"
|
||||||
|
"@cerc-io/prometheus-metrics" "1.1.4"
|
||||||
|
"@chainsafe/libp2p-gossipsub" "^6.0.0"
|
||||||
|
"@chainsafe/libp2p-noise" "^11.0.0"
|
||||||
|
"@chainsafe/libp2p-yamux" "3.0.7"
|
||||||
|
"@libp2p/floodsub" "^6.0.0"
|
||||||
|
"@libp2p/mplex" "^7.1.1"
|
||||||
|
"@libp2p/peer-id-factory" "^2.0.0"
|
||||||
|
"@libp2p/pubsub-peer-discovery" "^8.0.0"
|
||||||
|
"@libp2p/websockets" "^5.0.5"
|
||||||
|
"@multiformats/multiaddr" "^11.1.4"
|
||||||
|
assert "^2.0.0"
|
||||||
|
buffer "^6.0.3"
|
||||||
|
chai "^4.3.4"
|
||||||
|
debug "^4.3.1"
|
||||||
|
it-length-prefixed "^8.0.4"
|
||||||
|
it-map "^2.0.0"
|
||||||
|
it-pipe "^2.0.5"
|
||||||
|
it-pushable "^3.1.2"
|
||||||
|
mocha "^8.4.0"
|
||||||
|
p-event "^5.0.1"
|
||||||
|
uint8arrays "^4.0.3"
|
||||||
|
unique-names-generator "^4.7.1"
|
||||||
|
yargs "^17.0.1"
|
||||||
|
|
||||||
|
"@cerc-io/peer@^0.2.65":
|
||||||
version "0.2.107"
|
version "0.2.107"
|
||||||
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fpeer/-/0.2.107/peer-0.2.107.tgz#4a6d2e1d434a98424bee50433c8bdfd4427884fa"
|
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fpeer/-/0.2.107/peer-0.2.107.tgz#4a6d2e1d434a98424bee50433c8bdfd4427884fa"
|
||||||
integrity sha512-MJ86pK/s2W3onJYQnKVMHe9nWjQ3hkMRyCgodNXOfCCHJwp/tVTpKak+ddTxdyI5umeUAtG9A0ItHSmrnEY9YQ==
|
integrity sha512-MJ86pK/s2W3onJYQnKVMHe9nWjQ3hkMRyCgodNXOfCCHJwp/tVTpKak+ddTxdyI5umeUAtG9A0ItHSmrnEY9YQ==
|
||||||
@ -436,23 +466,23 @@
|
|||||||
it-stream-types "^1.0.4"
|
it-stream-types "^1.0.4"
|
||||||
promjs "^0.4.2"
|
promjs "^0.4.2"
|
||||||
|
|
||||||
"@cerc-io/rpc-eth-client@^0.2.107":
|
"@cerc-io/rpc-eth-client@^0.2.108":
|
||||||
version "0.2.107"
|
version "0.2.108"
|
||||||
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Frpc-eth-client/-/0.2.107/rpc-eth-client-0.2.107.tgz#338bf52695da299fc02dc69dcf6f9a0f25609993"
|
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Frpc-eth-client/-/0.2.108/rpc-eth-client-0.2.108.tgz#1cc68a9296cd21aa7578b89bea8886b46ef986ed"
|
||||||
integrity sha512-VuQiozd/h/03LB8sexYkor0yr77TiLmRM/wYGaoFB3WiUj7Zi5/TqO7SEiz1toxNtNCmhhnxu6eSe3m1pyjkXQ==
|
integrity sha512-+gVTshn0fvEytYkYqwrrlsSQZadw48+vTWTLCx1tbUpMJkCfzFhj9dbzvYV/1FkTkKmAAbrG05Bf7r2elW5Hqw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@cerc-io/cache" "^0.2.107"
|
"@cerc-io/cache" "^0.2.108"
|
||||||
"@cerc-io/ipld-eth-client" "^0.2.107"
|
"@cerc-io/ipld-eth-client" "^0.2.108"
|
||||||
"@cerc-io/util" "^0.2.107"
|
"@cerc-io/util" "^0.2.108"
|
||||||
chai "^4.3.4"
|
chai "^4.3.4"
|
||||||
ethers "^5.4.4"
|
ethers "^5.4.4"
|
||||||
left-pad "^1.3.0"
|
left-pad "^1.3.0"
|
||||||
mocha "^8.4.0"
|
mocha "^8.4.0"
|
||||||
|
|
||||||
"@cerc-io/solidity-mapper@^0.2.107":
|
"@cerc-io/solidity-mapper@^0.2.108":
|
||||||
version "0.2.107"
|
version "0.2.108"
|
||||||
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fsolidity-mapper/-/0.2.107/solidity-mapper-0.2.107.tgz#f3abfd4b8d84ff8f7e03449d876e3ea580fa03be"
|
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fsolidity-mapper/-/0.2.108/solidity-mapper-0.2.108.tgz#6a49da90afdcd096cf75ce8c8a15a97130f931eb"
|
||||||
integrity sha512-7Ow2mlOFP8n9VrEIFcNE4r9qjJpQVwP1GGQ+pyD9TAEZdQ0GYCzDzPZi44ezIr8NCxda3YPcegtPmSegBtCtmA==
|
integrity sha512-bT5X4ySqAwoOzMbN7Q+HgpJWTcTLcg2KHdiEbyFXO9jBA2ByKx2jQoCnb5BkDjvF9yGQ1fUiAv5oSVSw8DF4JA==
|
||||||
dependencies:
|
dependencies:
|
||||||
dotenv "^10.0.0"
|
dotenv "^10.0.0"
|
||||||
|
|
||||||
@ -461,15 +491,15 @@
|
|||||||
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fts-channel/-/1.0.3-ts-nitro-0.1.1/ts-channel-1.0.3-ts-nitro-0.1.1.tgz#0768781313a167295c0bf21307f47e02dc17e936"
|
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fts-channel/-/1.0.3-ts-nitro-0.1.1/ts-channel-1.0.3-ts-nitro-0.1.1.tgz#0768781313a167295c0bf21307f47e02dc17e936"
|
||||||
integrity sha512-2jFICUSyffuZ+8+qRhXuLSJq4GJ6Y02wxiXoubH0Kzv2lIKkJtWICY1ZQQhtXAvP0ncAQB85WJHqtqwH8l7J3Q==
|
integrity sha512-2jFICUSyffuZ+8+qRhXuLSJq4GJ6Y02wxiXoubH0Kzv2lIKkJtWICY1ZQQhtXAvP0ncAQB85WJHqtqwH8l7J3Q==
|
||||||
|
|
||||||
"@cerc-io/util@^0.2.107":
|
"@cerc-io/util@^0.2.108":
|
||||||
version "0.2.107"
|
version "0.2.108"
|
||||||
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Futil/-/0.2.107/util-0.2.107.tgz#5f19a2ea9a83bdab8b152cd0143ca6eda990d4f9"
|
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Futil/-/0.2.108/util-0.2.108.tgz#411aa58ca4694d38b13d8e619cf9707e3b50e073"
|
||||||
integrity sha512-5iKJweNVvxt+t82eVQrw8EkBVBl9q9oMP8Qju9JrJqJaqqhE7/GGCmveybKt0dO0vYz9BfQtOnBbMRv7JjQV6A==
|
integrity sha512-ZslsRMaJ1EiDjy7GpK6iHjzq8a69QTzJe2TIeQBbWXRlsvZ2/Qca8Y39BzfVbgZ6cgnh+hclzwprtitzrqPvwQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@apollo/utils.keyvaluecache" "^1.0.1"
|
"@apollo/utils.keyvaluecache" "^1.0.1"
|
||||||
"@cerc-io/nitro-node" "^0.1.15"
|
"@cerc-io/nitro-node" "^0.1.15"
|
||||||
"@cerc-io/peer" "^0.2.107"
|
"@cerc-io/peer" "^0.2.108"
|
||||||
"@cerc-io/solidity-mapper" "^0.2.107"
|
"@cerc-io/solidity-mapper" "^0.2.108"
|
||||||
"@cerc-io/ts-channel" "1.0.3-ts-nitro-0.1.1"
|
"@cerc-io/ts-channel" "1.0.3-ts-nitro-0.1.1"
|
||||||
"@ethersproject/properties" "^5.7.0"
|
"@ethersproject/properties" "^5.7.0"
|
||||||
"@ethersproject/providers" "^5.4.4"
|
"@ethersproject/providers" "^5.4.4"
|
||||||
|
Loading…
Reference in New Issue
Block a user