watcher-ts/README.md

111 lines
2.5 KiB
Markdown
Raw Normal View History

# watcher-ts
2021-05-11 11:08:30 +00:00
## Setup
2021-05-13 10:19:15 +00:00
This project uses [yarn workspaces](https://classic.yarnpkg.com/en/docs/workspaces/).
Install packages (Node.JS v15.11.0):
2021-05-11 11:08:30 +00:00
```bash
yarn
```
2021-07-16 11:05:49 +00:00
### Services
2021-07-16 11:05:49 +00:00
The default config files used by the watchers assume the following services are setup and running on localhost:
2021-06-04 09:49:30 +00:00
2021-07-16 11:05:49 +00:00
* `vulcanize/go-ethereum` on port 8545
* `vulcanize/ipld-eth-server` with native GQL API enabled, on port 8082
* `postgraphile` on the `vulcanize/ipld-eth-server` database, on port 5000
2021-06-04 09:49:30 +00:00
#### Note
* In `vulcanize/ipld-eth-server`, add the following statement to `[ethereum]` section in `environments/config.toml`:
`chainConfig = "./chain.json" # ETH_CHAIN_CONFIG`
2021-07-16 11:05:49 +00:00
### Databases
2021-06-04 09:49:30 +00:00
2021-07-16 11:05:49 +00:00
Note: Requires `postgres12`.
2021-07-16 11:05:49 +00:00
Login as the postgres user:
2021-05-11 11:08:30 +00:00
```bash
2021-07-16 11:05:49 +00:00
sudo su - postgres
```
Create the databases for the watchers:
```
createdb erc20-watcher
createdb address-watcher
createdb uni-watcher
createdb uni-info-watcher
2021-05-11 11:08:30 +00:00
```
2021-07-16 11:05:49 +00:00
Create the databases for the job queues and enable the `pgcrypto` extension on them (https://github.com/timgit/pg-boss/blob/master/docs/usage.md#intro):
2021-05-11 11:08:30 +00:00
2021-07-16 11:05:49 +00:00
```
createdb address-watcher-job-queue
createdb uni-watcher-job-queue
createdb uni-info-watcher-job-queue
2021-07-16 11:05:49 +00:00
```
```
2021-07-16 11:05:49 +00:00
postgres@tesla:~$ psql -U postgres -h localhost address-watcher-job-queue
Password for user postgres:
psql (12.7 (Ubuntu 12.7-1.pgdg18.04+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
address-watcher-job-queue=# CREATE EXTENSION pgcrypto;
CREATE EXTENSION
address-watcher-job-queue=# exit
```
2021-05-13 13:48:08 +00:00
2021-07-16 11:05:49 +00:00
```
postgres@tesla:~$ psql -U postgres -h localhost uni-watcher-job-queue
Password for user postgres:
psql (12.7 (Ubuntu 12.7-1.pgdg18.04+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
uni-watcher-job-queue=# CREATE EXTENSION pgcrypto;
CREATE EXTENSION
uni-watcher-job-queue=# exit
```
```
postgres@tesla:~$ psql -U postgres -h localhost uni-info-watcher-job-queue
Password for user postgres:
psql (12.7 (Ubuntu 12.7-1.pgdg18.04+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
uni-info-watcher-job-queue=# CREATE EXTENSION pgcrypto;
CREATE EXTENSION
uni-info-watcher-job-queue=# exit
```
#### Reset
Reset the databases used by the watchers:
```bash
yarn db:reset
```
2021-07-16 11:05:49 +00:00
## Run
To run any watcher, `cd` into their package folder and run:
2021-05-13 13:48:08 +00:00
```bash
2021-07-16 11:05:49 +00:00
yarn server
2021-05-13 13:48:08 +00:00
```
2021-05-11 11:08:30 +00:00
2021-07-16 11:05:49 +00:00
If the watcher uses a job queue, start the job runner in another terminal:
2021-07-16 11:05:49 +00:00
```bash
yarn job-runner
2021-05-11 11:08:30 +00:00
```