[WIP] Add a Uniswap v3 watcher-only stack (#82)

* Add a stack for uniswap watcher with info app

* Add deployment instructions

* Use docker interactive option while loading the db dumps
This commit is contained in:
prathamesh0
2022-12-22 19:30:56 +05:30
committed by GitHub
parent 27c3efabe2
commit d51508b01d
17 changed files with 498 additions and 1 deletions
+1 -1
View File
@@ -44,7 +44,7 @@ Instructions to deploy a local ERC20 watcher stack (core + watcher) for demonstr
$ export TOKEN_ADDRESS=<TOKEN_ADDRESS>
```
* Open `http://localhost:3001/graphql` (GraphQL Playground) in a browser window
* Open `http://localhost:3002/graphql` (GraphQL Playground) in a browser window
* Connect MetaMask to `http://localhost:8545` (with chain ID `99`)
+83
View File
@@ -0,0 +1,83 @@
# Uniswap v3
Instructions to deploy Uniswap v3 watcher stack (watcher + uniswap-v3-info frontend app) using [laconic-stack-orchestrator](../../README.md#setup)
## Prerequisites
* Access to [uniswap-watcher-ts](https://github.com/vulcanize/uniswap-watcher-ts).
* This deployment expects core services to be running; specifically, it requires `ipld-eth-server` RPC and GQL endpoints. Update the `upstream.ethServer` endpoints in the [watcher config files](../../config/watcher-uniswap-v3) accordingly:
```toml
[upstream]
[upstream.ethServer]
gqlApiEndpoint = "http://ipld-eth-server.example.com:8083/graphql"
rpcProviderEndpoint = "http://ipld-eth-server.example.com:8082"
```
* `uni-watcher` and `uni-info-watcher` database dumps (optional).
## Setup
* Clone / pull required repositories:
```bash
$ laconic-so setup-repositories --include vulcanize/uniswap-watcher-ts,vulcanize/uniswap-v3-info --git-ssh --pull
```
* Build watcher and info app container images:
```bash
$ laconic-so build-containers --include cerc/watcher-uniswap-v3,cerc/uniswap-v3-info
```
This should create the required docker images in the local image registry.
## Deploy
* (Optional) Initialize the watcher database with existing database dumps if available:
* Start the watcher database to be initialized:
```bash
$ laconic-so deploy-system --include watcher-uniswap-v3 up uniswap-watcher-db
```
* Find the watcher database container's id using `docker ps` and export it for further usage:
```bash
$ export CONTAINER_ID=<CONTAINER_ID>
```
* Load watcher database dumps:
```bash
# uni-watcher database
$ docker exec -i $CONTAINER_ID psql -U vdbm uni-watcher < UNI_WATCHER_DB_DUMP_FILE_PATH.sql
# uni-info-watcher database
$ docker exec -i $CONTAINER_ID psql -U vdbm uni-info-watcher < UNI_INFO_WATCHER_DB_DUMP_FILE_PATH.sql
```
* Start all the watcher and info app services:
```bash
$ laconic-so deploy-system --include watcher-uniswap-v3 up
```
* Check that all the services are up and healthy:
```bash
$ docker ps
```
* The `uni-info-watcher` GraphQL Playground can be accessed at `http://localhost:3004/graphql`
* The frontend app can be accessed at `http://localhost:3006`
## Clean up
* To stop all the services running in background:
```bash
$ laconic-so deploy-system --include watcher-uniswap-v3 down
```
+10
View File
@@ -0,0 +1,10 @@
version: "1.0"
name: uniswap-v3
repos:
- vulcanize/uniswap-watcher-ts
- vulcanize/uniswap-v3-info
containers:
- cerc/watcher-uniswap-v3
- cerc/uniswap-v3-info
pods:
- watcher-uniswap-v3