Основная информация
В связи с санкционной ситуацией на текущий момент любые централизованные сервисы проекта находятся под угрозой: сайты могут быть заблокированы, что уже происходило с tornado.cash
и tornadocash.site
, а сервера, на который располагается инфраструктура проекта - Matrix, форум, git и так далее - могут быть отключены в любой момент без предупреждения со стороны хостера. Разумеется, бэкапы в любом случае сохраняются, однако полагаться на одного разработчика тоже ненадёжно.
Проблема с возможной недоступностью основных сайтов и документации решена давно с помощью добавления IPFS-хешей на одобренный DAO контент на ENS-домен Tornado Cash. Однако, это же можно сделать и со всеми git-репозиториями Tornado, чтобы даже при отключении централизованных репозиториев разработчик мог восстановить самые актуальные версии - и технология довольно проста.
Внесённые изменения
Необходимо создать множество ENS-поддоменов для tornadocash.eth
, на которых будет сохранены IPFS-хеши исходников различных репозиториев Tornado Cash.
Сначала пройдёмся по основным поддоменам:
sources.tornadocash.eth
- основной, корневой домен для всех исходников. Для него будет установлен IPFS-хешbafybeiebbyvxk2cf7clzhnqwyvvawwvznco2p5xh7x4tfagqliewtjeqfq
, который ведёт на простой гайд для пользователей и разработчиков по использованию децентрализованного хранилища исходников.minified.sources.tornadocash.eth
- корневой домен для минифицированных исходников основных сервисов для удобства пользователей (можно будет скачать доверенную версию classic-ui, nova-ui или tornado-cli для локального использования). IPFS-хеша для данного домена не предусмотрено.packages.sources.tornadocash.eth
- корневой домен для исходников самописных библиотек, используемых в сервисах Tornado Cash. IPFS-хеша для данного домена не предусмотрено.download.sources.tornadocash.eth
- домен, на который будет установлен IPFS-хеш скрипта для скачивания всех репозиториев с распределённого хранилища с помощью нескольких простых команд. Подробнее в README самого репозитория.
Полный список остальных доменов с IPFS-хешами (нажмите, чтобы открыть)
- classic-ui.minified.sources.tornadocash.eth
- IPFS:
bafybeia4x75bn74prpmi6jqa6gbgmsfovunnke5s6oyrddxyopnz6kw5le
- IPFS:
- nova.minified.sources.tornadocash.eth
- IPFS:
bafybeihr5h2tfonjn2gybd4yhvchdwt4eyo25lf5twhhn6bnasdv2wwz7i
- IPFS:
- cli.minified.sources.tornadocash.eth
- IPFS:
bafybeicxxyqjgx5ggvujij4fnjdcwkep4nj5662yrxftb7y3pzwl77qntq
- IPFS:
- classic-ui.sources.tornadocash.eth
- IPFS:
bafybeifwosbjv4dxp4vyt3mwaiayj3tpat3m7uxlc5vnfnstwhzkkvr5ta
- IPFS:
- nova.sources.tornadocash.eth
- IPFS:
bafybeifvktxnfkn2i4arwz4q75wshuciaqm546fl64r6u6w2kxqwmt2zoy
- IPFS:
- docs.sources.tornadocash.eth
- IPFS:
bafybeifbidd4gx3pftds656wtnz5xkyuvqgm225gcgrzikbkykpqloezke
- IPFS:
- relayers-ui.sources.tornadocash.eth
- IPFS:
bafybeicgqr76vyi3e52ehdptelqbjycgkl7afg5ftn457eh27oqebotfka
- IPFS:
- torn-token.sources.tornadocash.eth
- IPFS:
bafybeih55yfwsbw6p5qbphceca64bp6umabdh43tpreowltspgcqs4h5si
- IPFS:
- classic-relayer.sources.tornadocash.eth
- IPFS:
bafybeic22dcz2x6mmdsim2vtp4ddjah7umc6xbg2cq4jjps3v37sxohjge
- IPFS:
- nova-relayer.sources.tornadocash.eth
- IPFS:
bafybeigjcbrcovykwfxghgw3l4c4zxq3gz5qat2yfydqbian7nkpsfagrq
- IPFS:
- cli.sources.tornadocash.eth
- IPFS:
bafybeigldv6kfpu4lv65xjenlqvvxmbhgwnmjqgpa5zspikmt77b3mcx4y
- IPFS:
- info-page.sources.tornadocash.eth
- IPFS:
bafybeibgtqjraefepfdu3awxsjwmcq4u2aoedp5uzwrdyjvkhxx5mwwu7y
- IPFS:
- websnark.packages.sources.tornadocash.eth
- IPFS:
bafybeibt7kdwuj2szqje73c4mhv63l3chnbkyuh7gsbsf6hqqgb4lkv3r4
- IPFS:
- circomlib.packages.sources.tornadocash.eth
- IPFS:
bafybeidgguu4pbgfoausenckca2yqskjgf6nlgsssfqm7ncxc4e57hdqle
- IPFS:
- snarkjs.packages.sources.tornadocash.eth
- IPFS:
bafybeihf22oyhuuwzbrdvinr75pz3xbsikiu34v5l4qmc2bpa7xasxog2q
- IPFS:
- oracles.packages.sources.tornadocash.eth
- IPFS:
bafybeiewrv73bqfytan4r3cgjyt22kuq54g3z5t56wmqjggzi4mpvhddme
- IPFS:
- gas-price-oracle.packages.sources.tornadocash.eth
- IPFS:
bafybeidt4d3fwygukucyv72p3gznborlq73c7nmqnfbtiombbwws2vhgcu
- IPFS:
- config.packages.sources.tornadocash.eth
- IPFS:
bafybeibnigpiqnfsr2fk7k7d37rz4plr6lahyoirzblcjctomwd373azli
- IPFS:
- anonymity-mining.packages.sources.tornadocash.eth
- IPFS:
bafybeicphu5i6cukdazgckepmajiit3umbp5paj5tlofeadyies7wh3hdq
- IPFS:
- trees.packages.sources.tornadocash.eth
- IPFS:
bafybeify5j3vgpgjwl2djowerwlnrpcida6mgnp5ojvyyxw7chp2g2ty3q
- IPFS:
- fixed-merkle-tree.packages.sources.tornadocash.eth
- IPFS:
bafybeidblwoqtbxi7vvcgnqv26jkodhvcjpbrcvifr2jhalklwb4hbfzeq
- IPFS:
- tx-manager.packages.sources.tornadocash.eth
- IPFS:
bafybeievfjmib6froxrca3tvak4ysfyqq5xczfyagfqww7w6ndhjstpkjm
- IPFS:
- merkle-root-updater.packages.sources.tornadocash.eth
- IPFS:
bafybeicmtvbto4pi5f6ozz4dgzvbnrwninl3n64uyzqcvegzrzkmif42hu
- IPFS:
Предложение
https://git.tornado.ws/Theo/proposal-30-decentralize-sources
Код контракта предложения: 0x775Cf01c12D3E4296c7c9b52C8B835c071068F51
Тестирование и верификация
В принципе, всё аналогично proposal 27 - все IPFS-хеши и ноды ENS-доменов сгенерированы скриптами, которые любой может запустить в репозитории proposal-30 по ссылке выше и проверить.
Так же можно проверить скрипт загрузки или руками посмотреть, что станет, если предложение будет принято, на ENS-домене tornadotest.eth
в сети Goerli. Однако, поскольку сайт по умолчанию показывает домены в сети Ethereum Mainnet, сначала надо подключить MetaMask и сменить сеть на Goerli Testnet.