lib | ||
src | ||
static | ||
.dockerignore | ||
.eslintrc.js | ||
.gitattributes | ||
.gitignore | ||
.npmrc | ||
docker-compose.yml | ||
Dockerfile | ||
logo2.png | ||
logo.png | ||
package.json | ||
README.md | ||
tsconfig.json | ||
yarn.lock |
Товарищ 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
-
Have your own RPC node or a paid plan with sufficient rate limits ( that allows 30 requests per second with historic events data ).
-
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.