Proposal #27: Обновление адресов и IPFS сайтов и документации на ENS

Основная информация

Последние месяцы шла активная работа по исправлению ошибок, улучшению и добавлению новых возможностей на сервисы Tornado, такие как основной сайт, Nova, сайт для релееров и софт для них и так далее. Документация так же обновлялась в соответствии с текущим прогрессом, однако накопилась критическая масса изменений, которая вскоре сделает невозможной совместимость со старыми версиями, доступными по IPFS в блокчейне (посмотреть текущий хеш для основного сайта можно в документации или в записях tornadocash.eth на ENS, а получить доступ - с помощью публичных IPFS gateaways или резолверов по типу tornadocash.eth.link или tornadocash.eth.limo).

Внесённые изменения

Все изменения, которые предлагается добавить в этом proposal в сервисы Tornado, находятся в отдельных ветках в соответствующих репозиториях на git.tornado.ws.

  1. Изменения в classic UI (на основном сайте):

    • Добавление Tornado RPC для каждой сети со стопроцентным аптаймом, без логгирования и цензуры;
    • Изменение источника ключевых зависимостей на независимый self-hosted сервис;
    • Изменён метода расчёта gas, благодаря которому понизятся комиссии на некоторых sidechains (Arbitrum, Optimism), и перестанут возникать ошибки вывода через релееров;
    • Многие ссылки и переводы обновлены и изменены с недоступных на актуальные;
    • Исправлены предсказание и обработка gas price, а также загрузка событий на “быстрых” сетях, таких как Avalanche C, и теперь депозиты и выводы без всяких проблем будут доступны через сайт на любых sidechains;
    • Общее исправление системы загрузки и обработки событий, требуемых для построения SNARK-доказательства, необходимого для вывода, а также обновление и загрузка нового кеша для сетей, где он отсутствовал - это сильно ускорит время ожидания перед выводом;
    • Решение проблемы с бесконечной загрузкой при использовании аккаунта с зашифрованными notes на блокчейне - теперь практически на любой сети можно хранить в блокчейне зашифрованные особым ключом notes, не копируя их на локальное устройство (подробная статья тут);
    • Изменена проверка версий релеера - поскольку изменения в системе расчёта gas для транзакции вывода изменятся и для пользователей, и для релееров одновременно, релееры со старыми версиями программного обеспечения во избежание ошибок не будут допущены в UI (подробнее - отдельно);
    • Добавлен рабочий WalletConnect Bridge - поскольку 28 июня этого года официальная поддержка WalletConnect V1 была прекращена и сервер был отключён;
    • Оставшиеся небольшие необходимые обновления - замена адреса контракта Staking после исполнения proposal 22, косметические исправления на сайте и так далее.
  2. Изменения в Nova:

    • Добавлена пересборка workers при каждом билде, чтобы обновления работали корректно;
    • Исправлена проблема в зависимости gas-price-oracle, приводившая к невозможности создания доказательства для вывода из-за отсутствия доступа к offchain gas station для Gnosis, для этого была исправлена сама библиотека и выложена с обновлённой версией на Tornado git;
    • Запущен собственный мониторинг Arbitrary Message Bridge для Gnosis, который используется для отслеживания кроссчейн-транзакций при выводах и депозитах в Nova: https://alm-xdai.tornado.ws;
    • И, разумеется, все ссылки, RPC и explorers обновлены на актуальные и работающие.
  3. Изменения в UI для релееров и программном обеспечении для них:

    • Исправлена проверка принадлежности ENS-домена релееру с учётом недавно добавленного по умолчанию ENS Name Wrapper;
    • Программное обеспечение для релееров разделено на три версии: v4 - текущий актуальный патч до proposal 27, v5 - версия с исправленной калькуляцией gas, совместимая с classic UI и CLI после принятия proposal 27 и v6 - улучшенная и более удобная новая версия, тоже с новым вычислением gas, однако на данный момент находящаяся в бете (не полностью проверена и может быть нестабильна);
    • Добавлен скрипт на bash, инструкции для docker-compose и написана полная инструкция, как установить релеера одной командой (далее потребуется лишь заполнить файлы с данными для релеера и запустить тоже одной командой);
    • Создана сильно более удобная шестая версия программного обеспечения, работающая одновременно и для Mainnet, и для Goerli, и для sidechains, а также оповещающая релеера о важных изменениях (недостаток баланса для обработки транзакций, недостаток застейканного TORN для нахождения в UI и так далее).
  4. Изменения в документации - обновление ссылок, адресов и актуализация изменённого в предыдущих proposals, а также переработка репозитория для последующего легкого изменения и деплоя на IPFS.

  5. Tornado CLI так же подверглось множественным изменениям, однако к данному proposal относятся только те, которые связаны с механизмом расчёта gas, поскольку CLI не имеет IPFS версии и обновление в блокчейне не требуется (кстати, возможно, это будет исправлено в дальнейшем).

Предложение

https://git.tornado.ws/Theo/proposal-27-update-ipfs

Код контракта: etherscan

Новые IPFS хеши (кликабельны, редирект на IPFS gateaways):

Тестирование и верификация

Поскольку в самом коде proposal используются уже сформированные в специальный вид данные, чтобы ENS корректно отображал IPFS-хеши. В соответствии со спецификацией EIP-1062 и EIP-1577, для проверки корректности данных используются два скрипта: первый генерирует из v0 IPFS CIDs, закодированных в base58, данные для установки в качестве contenthash для доменов ENS, второй - доказывает эквивалентность v0 CID и v1 CID IPFS, которые показываются на ENS и указаны выше в этом посте.
Предлагаю каждому запустить скрипты для верификации и сверить результаты.

Кроме того, любой может воспользоваться тестовым контрактом на Goerli - установить на домен tornadotest.eth новый IPFS хеш от Nova, основного сайта, UI для релееров или документации и проверить, что они совпадают с указанными в контракте и этом посте данными.

А также, так как обновлённый сайт отбрасывает всех релееров с текущей версией, если кто-то хочет проверить депозиты или выводы средств, можно воспользоваться специально запущенными мной тестовыми релеерами (будут отключены сразу же, как появится первый реальный релеер новой версии):

Важная информация для релееров

Если текущее предложение будет принято и исполнено, актуальная на данный момент версия программного обеспечения для релееров (4.1.4 для Ethereum Mainnet, 5.0.0.beta для sidechains) будет помечена как устаревшая и релееры с текущей версией не будут допущены в UI (не будут выбираться на сайте).
За пару часов до выполнения proposal релеерам будет необходимо обновиться на новую версию (ни в коем случае не надо делать этого сейчас, она несовместима с текущей версией сайта) - программное обеспечение устанавливается по этой ссылке одной командой на чистый linux-сервер, желательно Ubuntu 22. Перед запуском старое программное обеспечение необходимо отключить, и обратите внимание, что формат .env-файлов немного изменился, и просто скопировать старые нельзя.

На обсуждение предложения даются одни сутки (желательно - в английской теме), далее оно выносится на голосование.

1 Like