Relayer & Event API for Tornado Cash
Go to file
2024-11-20 05:07:06 +00:00
lib Add NodeMultiTornadoService 2024-11-20 05:07:06 +00:00
src Add NodeMultiTornadoService 2024-11-20 05:07:06 +00:00
static Add NodeMultiTornadoService 2024-11-20 05:07:06 +00:00
.dockerignore Initial commit 2024-11-13 01:42:13 +00:00
.eslintrc.js Initial commit 2024-11-13 01:42:13 +00:00
.gitattributes Initial commit 2024-11-13 01:42:13 +00:00
.gitignore Initial commit 2024-11-13 01:42:13 +00:00
.npmrc Initial commit 2024-11-13 01:42:13 +00:00
docker-compose.yml Initial commit 2024-11-13 01:42:13 +00:00
Dockerfile Initial commit 2024-11-13 01:42:13 +00:00
logo2.png Initial commit 2024-11-13 01:42:13 +00:00
logo.png Initial commit 2024-11-13 01:42:13 +00:00
package.json Add NodeMultiTornadoService 2024-11-20 05:07:06 +00:00
README.md Initial commit 2024-11-13 01:42:13 +00:00
tsconfig.json Initial commit 2024-11-13 01:42:13 +00:00
yarn.lock Add NodeMultiTornadoService 2024-11-20 05:07:06 +00:00

Товарищ Relayer

Tovarish Relayer is a new Tornado Cash relayer applied with synced historic events API to help create withdrawal snark proofs in a decentralized, uncensorable manner.

It runs on multiple chains (yes, you only need to run a single tovarish relayer instance to run across any Tornado Cash deployed chains), and it only requires a single URL endpoint to expose and advertise your relayer.

Disclaimer

Currently, this relayer isn't compatible with the deployed UI on tornadocash.eth or any other classic UI deployments. API or any REST requests are compatible with the classic relayer software, however since this relayer uses more optimized gas price calculation from @tornado/core package the relayer may require more fees for network gas price then the previous version of the relayer. Thus, we have blocked interaction with any previous classic UI until the UI is upgraded to support the new gas calculation optimized for EIP-1559 chains.

Technical Requirements

  • Latest LTS version of Node.js (20.x recommended)

  • RPC node (Supply them with 1_RPC or 56_RPC env value, see ./src/config.ts for available ENV variables).

  • Nginx

Note that unlike the classic version of relayer, this relayer doesn't require Redis DB or Docker installation, a single Relayer instance that runs on the top of Node.js would be sufficient (And it utilizes multi threading environment with Workers and Cluster support).

How to run the relayer?

Note that this relayer is still on an early stage in which many components or source code can be changed in the foreseeable future.

In order to work with the relayer properly you must

  1. Have your own RPC node or a paid plan with sufficient rate limits ( that allows 30 requests per second with historic events data ).

  2. On-chain registered relayer addresses

You must register the relayer on the on-chain Relayer Registry contract. Follow the guidelines about registering the relayer on-chain. https://docs.tornado.ws/general/guides/relayer.html

After you run the relayer locally and have registered the relayer on-chain, you must also register the main URL on tovarish-relayer ENS subdomain just like how you registered for each chain.

Here is the example of registering tovarish relayer on the ENS domain https://app.ens.domains/tovarish-relayer.tornadowithdraw.eth?tab=records

Upcoming Updates

This documentation will be likely updated in the near future.