Proposal #19: Новый разработчик, планы развития и оплата

Общее описание

В текущий момент проект находится в сложной ситуации. Основная команда вынужденно прекратила работу над Tornado после санкций OFAC 8 августа 2022 года, а предыдущий комьюнити-разработчик Gozzy ушёл со скандалом после отклонения proposal 18. Я не планирую давать оценку его работе, однако на текущий момент чаты проекта не модерируются и захвачены скамерами, а сайты Tornado в клирнете недоступны.

Поскольку за время с ухода Gozzy никто не выразил желание продолжить восстановление и развитие проекта, а новой команды разработчиков нет и не предвидится, я принял решение предложить DAO рассмотреть мою кандидатуру на должность разработчика проекта.

Заявленные обязанности

Я, как разработчик, обязуюсь:

  1. Каждый день (за исключением форсмажоров) появляться в сети, отвечать на возникшие вопросы пользователей в чате (русскоязычном или новосозданном англоязычном), на этих двух языках. В два выходных каждую неделю буду помогать лишь с проблемами критической важности, ответы на все остальные уже в понедельник. Важно - на все вопросы, не связанные с приватными данными, буду отвечать исключительно в чате, чтобы в будущем я мог дать ссылку пользователю с таким же вопросом;
  2. Поддерживать документацию в актуальном состоянии и работоспособность основных внешних сервисов проекта (classic-ui, classic-relayer, nova-ui, tornado-cli, forum, git), а также развивать проект в направлении большей независимости, безопасности и скорости работы;
  3. Рассматривать и обсуждать глобальные предложения пользователей на форуме, а также давать ответ на issue и pull requests комьюнити-контрибьюторов на git.tornado.ws. Все баги, улучшения сервисов и прочее гарантирую принимать во внимание только там, поскольку в чате или личных сообщениях, которых у меня даже сейчас много, я всё увидеть и запомнить не могу;
  4. Продвигать проект в соцсетях, пытаться осуществлять связь с менеджерами крупных платформ (CoinMarketCap, CoinGecko) для актуализации информации о проекте (нужные контакты уже получены) и повышать его доступность для новых пользователей;
  5. Модерировать англоязычный чат, когда он будет создан, держать его открытым;
  6. Поддерживать реальную свободу дискуссии - никого не блокировать в личных сообщениях и чатах, за исключением, разумеется, спамеров, скамеров и неадекватных личностей, допускающих оскорбления.

Планы развития и поддержки сервисов проекта

  1. Создание новой инфраструктуры сервисов проекта - основной сайт, nova, документация, форум, гит;
  2. Решение проблемы с цензурирующими RPC - поднятие собственных RPC для обеспечения быстроты выводов без сложностей для пользователей на основных сетях проекта (как минимум, mainnet и bsc);
  3. Фикс программного обеспечения для релееров - сборка валидного билда для sidechains, автоматический скрипт для debian-дестрибутивов линукса, который будет запускать релеера с минимальными действиями со стороны пользователя;
  4. Упрощение работы с CLI, добавление автоматического выбора релеера без указания пользователем по корректной формуле, описанной здесь;
  5. Актуализация документации, смена ссылок и перевод её на другие языки для удобства пользователей протокола - я лично займусь переводом на русский, поскольку русскоговорящее комьюнити весьма велико, и попрошу администратора китайского чата DorisMM заняться переводом на свой язык (разумеется, не бесплатно);
  6. [подлежит обсуждению] внос актуальных ссылок на комьюнити-чаты и сайты в блокчейн-записи tornadocash.eth - чтобы новые пользователи могли легко находить сервисы проекта или устанавливать контакт с разработчиками или другими пользователями.

Мой опыт

  • Почти десять лет разработки на NodeJS (на нём написан tornado-cli и многие библиотеки Tornado, такие как websnark, circomlib и так далее)
  • более пяти лет профессионального использования TypeScript в web-разработке и всех сопутствующих инструментов, в том числе фреймворков для создания веб-приложений (Gatsby, Next.js и в том числе Nuxt, на котором написан classic-ui, nova-ui и relayers-network)
  • Несколько лет фрагментарного опыта разработки на Solidity
  • Высшее математическое образование, понимание ZK-SNARK и алгоритмов, использующихся в работе Tornado

Оплата
Ввиду моих высоких навыков, возлагаемых на меня непростых обязанностей и учитывая сложность и ненормированность работы, а также юридические риски, считаю справедливым следующее:

Основная зарплата: 30 000$ в квартал (91 день)
Компенсация за расходы на поддержку сервисов проекта: 6 000$ в квартал (хостинги, домены, аренда мощных серверов для RPC - один такой, с 128 GB RAM, 16 TB SSD и скоростью интернета 1Gbit/sec стоит более 1 000$ в месяц)

Также, обсуждаемо с комьюнити (прошу описать в теме, что вас больше устраивает):
Как вы думаете, имеет смысл сделать квартальные выплаты и пересоздавать каждый квартал или создать сразу на год?

Разница:
При создании на год сумма выплат в TORN фиксируется на момент создания proposal, соответственно, разработчик более мотивирован развивать протокол - он получит больше денег в пересчёте на стейблкоины, если цена токена вырастет за время его работы, и меньше, если цена токена упадёт. При пересоздании proposal раз в квартал сумма выплат за квартал пересчитывается в TORN на момент создания нового proposal, соответственно, разработчик менее привязан к колебаниям цены токена проекта.

Вопрос безопасности:
Выплаты проходят при помощи контракта Sablier v1.1, который отправляет токены разработчику в равных долях в течение всего указанного периода. Всю сумму сразу разработчик получить не может никак, разумеется, и в случае неудовлетворенности комьюнити работой разработчика выплаты всегда можно отменить новым proposal’ом, вызвав функцию cancelStream из контракта Sablier v1.1. Проверить корректность вышенаписанного можно заглянув в код контракта по ссылке выше.

Поскольку я верю в возможность развития проекта и рост токена, мне более импонирует годовой вариант, и я буду рад выслушать мнение комьюнити по этому поводу.

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

1 Like

вы серьезно? 120 тыс $ в год, не за разработку, а за поддержку функционирования по части доступа к торнадо, через централизированные сервисы? и модерацию чатиков и ответа на вопросы про rpc.

Здравствуй. Отвечал тебе в чате в Telegram, спасибо, что так же написал тут, чтобы все могли увидеть.

Отвечаю:

  1. Это, разумеется, не просто поддержка. В proposal вполне внятно и по пунктам, а не в общих фразах, указано, что конкретно в ближайшее время из крупных сервисов будет улучшаться/дорабатываться/разрабатываться, а сколько мелких фиксов будет - не перечесть;

  2. Насчёт централизованных сервисов твоё мнение понятно - ты пользуешься сборкой с IPFS (до поднятия своего сайта я тоже пользовался ею), однако есть несколько проблем - во-первых, она имеет свойство устаревать, и сборка прошлого года уже во многом неактуальна (не работает RPC по умолчанию, не существует proposeByDelegate, очень долго загружается кэш событий - поскольку архив не обновлен), а во-вторых, очень многим пользователям неудобно использовать IPFS просто потому, что им требуется конкретная функциональность, а не глубокое погружение в сам проект и детали работы. Даже я сам пользуюсь проектом более двух лет, а интересоваться кодом и принципами работы начал лишь после санкций.
    До санкций я взаимодействовал с ним исключительно как с удобным инструментом - зашёл на сайт tornado.cash, внёс депозит, подождал, снял - средства анонимны. И мне хочется, чтобы на текущий момент новые пользователи могли делать именно так же, и им не приходилось искать в IPFS в записях домена tornadocash.eth на app.ens.domains, затем публичный IPFS gateaway, переходить по хэшу, далее видеть ошибку RPC / Invalid Root и идти искать чаты с поддержкой - а чтобы всё просто работало с первого раза. Мне кажется, именно это и надо подавляющему большинству пользователей проекта;

  3. Саму сумму я считаю не просто нормальной, а даже скорее небольшой - объясню почему. Это оплата - за полный рабочий день разработчика. Ответы на вопросы в конференции указаны лишь по той причине, что мне некому делегировать эту задачу и я буду выделять на это время, поскольку из активных разработчиков в деталях работы протокола я разбираюсь, вероятно, лучше всех на данный момент. Я не планирую сидеть сложа руки и буду писать код и улучшать сервисы проекта.
    Кроме того, сейчас зарабатываю примерно 10 000$ (даже немногим больше) в месяц при куда меньших усилиях. Мне, конечно, очень нравится проект и я тратил время, полностью бесплатно улучшая его и отсылая pull request’ы Gozzy, когда он ещё был активным разработчиком и даже не было мысли, что он покинет Tornado и прекратит разработку, однако ухудшать свою зарплату и уровень жизни я не готов, даже ради работы над интересным проектом. А заниматься чем-либо параллельно будет невозможно, поскольку в условиях я заявил, что на проект будут выделяться полные рабочие дни и манкировать обязанностями я не намерен.

Надеюсь, мой ответ тебя удовлетворил, если ещё остались вопросы - задавай, буду рад.

1 Like

Мое предложение открыть поток на 182 дня.

Поток на компенсацию за сервер для RPC, можно выделить разово, за два месяца аренды сервера. Развертывание собственного RPC нужно тестить, могут быть проблемы с развертыванием на арендованых серверах. Если тест будет удачный, окрываем поток для аренды сервера под RPC