This repo deploys governance proposal for TornadoTrees update. It significantly reduces the cost of updating tornado merkle trees by offloading onchain updates to zkSNARKs.
- node 12
- yarn
$ yarn
$ cp .env.example .env
$ vi .env
$ docker build . -t tornadocash/tornado-trees-proposal && docker run -v `pwd`/proofsCache:/app/proofsCache tornadocash/tornado-trees-proposal
- have you added new instances on the UI?
- make sure you have set all the ens names for the instances
-
go to tornado-tress repo
-
docker build . -t tornadocash/tornado-trees
you will need 50GB RAM -
docker run --rm -it --name tornadoTrees tornadocash/tornado-trees bash
just leave it and go to the next steps -
docker cp tornadoTrees:/app/artifacts/circuits/* backup
-
send the backup folder to telegram
-
go to proposal repo
-
docker cp tornadoTrees:/app/artifacts/circuits/BatchTreeUpdateVerifier.sol snarks
-
edit
env
-
npx hardhat searchParams
and use the output in deployMainnet script -
yarn deployMainnet
-
test the proposal on fork
-
verify on etherscan (add ASCII!!)
-
create proposal on forum to ask community to create the governance proposal
-
goerli
: deposit and withdraw 500 deps using bot
- make sure you have at least 10 ETH for the root-updater
- run the old root-updater
- update tornadoProxy and instances addresses on relayer
git clone https://github.com/tornadocash/tornado-root-updater.git -b migration && cd tornado-root-updater
- edit
.env
- run
generateCacheEvents
(uncomment last lines there 1 by 1) docker build . -t tornadocash/tornado-root-updater
should be run on the same server as fortornado-trees
- run both
docker run --rm -e MIGRATION_TYPE=deposit tornadocash/tornado-root-updater
docker run --rm -e MIGRATION_TYPE=withdrawal tornadocash/tornado-root-updater
- update ENS for proxy, trees
- after finish, create the
deposits.json
andwithdrawals.json
cache usingallEvents
fromevents.js
and move it to thesnark
branch - create the final release on github
- change tornadoProxy and tornadoTrees addresses (run
node updateENS.js
in UI repo) - set notification on index page. "Mining is temporarily unavailable"
- update account events cache
- deploy UI
- update cache events for mining
- remove mining notification
- redeploy UI