53 lines
2.6 KiB
Markdown
53 lines
2.6 KiB
Markdown
# Relayer for Tornado mixer [![Build Status](https://travis-ci.org/tornadocash/relayer.svg?branch=master)](https://travis-ci.org/tornadocash/relayer) [![Docker Cloud Build Status](https://img.shields.io/docker/cloud/build/tornadocash/relayer.svg)](https://hub.docker.com/r/tornadocash/relayer/builds)
|
|
|
|
## Run locally
|
|
1. `npm i`
|
|
2. `cp .env.example .env`
|
|
3. Modify `.env` as needed
|
|
4. `npm run start`
|
|
5. Go to `http://127.0.0.1:8000`
|
|
6. In order to execute withdraw request, you can run following command
|
|
```bash
|
|
curl -X POST -H 'content-type:application/json' --data '<input data>' http://127.0.0.1:8000/relay
|
|
```
|
|
Relayer should return a transaction hash.
|
|
|
|
*Note.* If you want to change contracts' addresses go to [config.js](./config.js) file.
|
|
|
|
## Deploy with docker-compose
|
|
|
|
docker-compose.yml contains a stack that will automatically provision SSL certificates for your domain name and will add a https redirect to port 80.
|
|
|
|
1. Download docker-compose.yml
|
|
2. Change environment variables for `kovan` containers as appropriate
|
|
* add `PRIVATE_KEY` for your relayer address
|
|
* set `VIRTUAL_HOST` and `LETSENCRYPT_HOST` to your domain and add DNS record pointing to your relayer ip address
|
|
* customize `RELAYER_FEE`
|
|
* update `RPC_URL` if needed
|
|
3. Run `docker-compose up -d`
|
|
|
|
## Run as a Docker container
|
|
|
|
1. `cp .env.example .env`
|
|
2. Modify `.env` as needed
|
|
3. `docker run -d --env-file .env -p 80:8000 tornadocash/relayer`
|
|
|
|
In that case you will need to add https termination yourself because browsers with default settings will prevent https
|
|
tornado.cash UI from submitting your request over http connection
|
|
|
|
## Input data example
|
|
```json
|
|
{
|
|
"proof": "0x0f8cb4c2ca9cbb23a5f21475773e19e39d3470436d7296f25c8730d19d88fcef2986ec694ad094f4c5fff79a4e5043bd553df20b23108bc023ec3670718143c20cc49c6d9798e1ae831fd32a878b96ff8897728f9b7963f0d5a4b5574426ac6203b2456d360b8e825d8f5731970bf1fc1b95b9713e3b24203667ecdd5939c2e40dec48f9e51d9cc8dc2f7f3916f0e9e31519c7df2bea8c51a195eb0f57beea4924cb846deaa78cdcbe361a6c310638af6f6157317bc27d74746bfaa2e1f8d2e9088fd10fa62100740874cdffdd6feb15c95c5a303f6bc226d5e51619c5b825471a17ddfeb05b250c0802261f7d05cf29a39a72c13e200e5bc721b0e4c50d55e6",
|
|
"args": [
|
|
"0x1579d41e5290ab5bcec9a7df16705e49b5c0b869095299196c19c5e14462c9e3",
|
|
"0x0cf7f49c5b35c48b9e1d43713e0b46a75977e3d10521e9ac1e4c3cd5e3da1c5d",
|
|
"0x03ebd0748aa4d1457cf479cce56309641e0a98f5",
|
|
"0xbd4369dc854c5d5b79fe25492e3a3cfcb5d02da5",
|
|
"0x000000000000000000000000000000000000000000000000058d15e176280000",
|
|
"0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
],
|
|
"contract": "0xA27E34Ad97F171846bAf21399c370c9CE6129e0D"
|
|
}
|
|
```
|