Участие в on-chain предложениях pDAO
Любая нода с ненулевой силой голоса может выдвинуть или участвовать в предложении pDAO в любое время. Предложения могут быть одного из следующих типов:
- Изменение настроек pDAO
- Одноразовые расходы казначейства
- Повторяющиеся расходы казначейства (комитеты управления)
- Членство в Security Council
Для получения более подробной информации и обоснования обратитесь к типам предложений. Важно понимать, что предложение pDAO — это on-chain сущность, которая существует для выполнения изменений на уровне протокола.
Процесс управления
Предложение должно быть предсказано процессом управления до того, как оно окажется on-chain.
Изменения в протоколе Rocket Pool предлагаются, голосуются и выполняются с использованием строгого, но прозрачного процесса управления. Процесс начинается с неформального обсуждения идеи в сообществе Discord. Затем эта идея переходит к формальным обсуждениям в канале #governance в Discord и на DAO Forum, где она подвергается тщательному исследованию, моделированию и проверке при подготовке к Rocket Pool Improvement Proposal (RPIP). После этого готовится черновик RPIP и проверяется назначенными рецензентами RPIP, чтобы обеспечить его качество и готовность к представлению DAO. Черновик предложения затем представляется DAO на форуме для дальнейшего рассмотрения, обратной связи и внесения необходимых изменений. Как только предложение будет доработано на основе вклада сообщества, на форуме DAO проводится опрос для оценки готовности к завершению текста RPIP. Если опрос проходит, указывая на одобрение сообщества, RPIP помечается как окончательный и готов к голосованию Protocol DAO, которое проводится через Snapshot, чтобы определить, следует ли внедрять предложение.
Отсюда Oracle DAO выдвинет on-chain предложение. Есть окно, в течение которого Protocol DAO, Oracle DAO и сообщество могут рассмотреть предложение. Если достигается консенсус, предложение выполняется, и изменения применяются к протоколу.
Удобное визуальное представление этого процесса можно найти на сайте Rocket Pool.
Предварительное условие
Пожалуйста, прочитайте жизненный цикл предложения перед продолжением. Это объяснит различия между всеми периодами голосования и действиями, которые можно предпринять в течение каждого периода.
Остальная часть этой страницы проведёт вас через шаги, необходимые для участия в on-chain предложениях pDAO.
Инициализация голосования
Если вы оператор ноды, который зарегистрировался до обновления Houston, вам нужно инициализировать голосование, чтобы разблокировать силу голоса. Имейте в виду, что наличие хотя бы одного minipool является требованием для обладания силой голоса.
Эта команда вызовет приглашение ниже. Пожалуйста, прочтите его внимательно:
- Если вы ответите
direct, сила голоса будет инициализирована для вашей ноды, и вы сможете голосовать напрямую по предложениям Protocol DAO. - Если вы ответите
delegate, у вас будет возможность сэкономить немного газа, инициализируя голосование и устанавливая делегата в рамках одной транзакции.
Вам нужно сделать это только один раз. Это настраивает начальную информацию snapshot для ноды. После инициализации голосования каждое предпринятое действие будет обновлять информацию snapshot вашей ноды. Как только ваша сила голоса инициализирована, вы можете проверить, сколько у вас её, используя следующую команду smartnode:
Когда создаётся новое предложение, дерево голосования, представляющее snapshot силы голоса и информации о делегатах сети, создаётся вместе с новым предложением. Это означает, что сила голоса вашей ноды не будет включена в предложение, если оно было выдвинуто до того, как вы инициализировали голосование. rocketpool pdao status отобразит силу голоса вашей ноды на последнем блоке, которая может быть репрезентативной или не репрезентативной для вашей силы голоса по конкретному предложению.
Автоматическая инициализация силы голоса
Smartnode версии 1.13.8 вводит новую функцию Auto Initialize Vote Power, которая предназначена для автоматической инициализации силы голоса на нодах, которые ещё этого не сделали. Автоматически инициализированная сила голоса делегируется самому себе.
Эту функцию можно настроить в настройках Smartnode, выполнив rocketpool service config и перейдя в раздел Smartnode and TX Fees.
Auto-Init Vote Power Gas Threshold — это лимит (в gwei) на эту автоматическую транзакцию. Вы можете отказаться от этой задачи, установив порог на 0. Не стесняйтесь отказываться, если ваша нода была зарегистрирована после обновления Houston или если сила голоса уже включена.
Установка вашего адреса сигнализации Snapshot
Установка вашего адреса сигнализации Snapshot позволит вам участвовать в голосованиях Snapshot на браузере или мобильном устройстве без необходимости раскрывать ключи ноды горячему кошельку.
Необходимо подготовить несколько вещей:
- Адрес вашей ноды
- Адрес, который вы хотите использовать для голосования в snapshot (адрес сигнализации)
Вы будете подписывать сообщение, говорящее, что адрес вашей ноды может делегировать новому адресу. Это сообщение заявляет о вашем намерении использовать адрес вашего кошелька в качестве адреса сигнализации Snapshot.
Выберите, какую сеть вы используете, из одной из вкладок ниже.
Не загружайте приватный ключ вашей ноды в горячий кошелёк. Пожалуйста, выберите другой аккаунт в качестве адреса сигнализации. После установки адреса сигнализации вы можете использовать его для голосования в Snapshot с силой голоса вашей ноды.
Начните с подключения адреса, который вы хотите использовать в качестве адреса сигнализации, к веб-сайту, используя MetaMask, WalletConnect или любой из других методов, которые поддерживает веб-сайт. Затем вам будет представлен этот диалог для поиска адреса вашей ноды.
Далее вы введёте адрес вашей ноды, а затем нажмёте оранжевую кнопку "Find". Это проверит, является ли адрес зарегистрированной нодой, а затем перейдёт к следующему шагу.
Убедитесь, что у вас правильный адрес ноды, прежде чем делать это! Если вам нужно подтвердить адрес вашей ноды, вы можете быстро получить его через CLI, используя команду rocketpool node status.
Как только вы войдёте и подтвердите адрес вашей ноды, вы увидите ваш адрес сигнализации Snapshot. Он должен совпадать с аккаунтом, в который вы вошли на сайт. Дважды проверьте, что это правильно, прежде чем продолжить. Как только вы уверены, что вы вошли в желаемый аккаунт, нажмите оранжевую кнопку "Sign Message". Вы увидите запрос в вашем приложении расширения кошелька для подписи следующего сообщения:
Подпись не будет стоить вам газа, но установка будет стоить. После того, как вы подпишете, интерфейс даст вам команду для вставки в smartnode. Вставьте её в CLI вашего smartnode и следуйте предложенным шагам. Команда должна выглядеть примерно так:
Если вы видите это сообщение в вашем CLI, всё готово!
Не беспокойтесь, если вы случайно закроете сайт или потеряете команду. Вы можете просто повторить шаги и подписать снова, используя тот же адрес ноды и адрес сигнализации. Интерфейс использует signer.Signmessage() из библиотеки ethers, что означает, что ваша подпись детерминирована при одинаковом входе.
Нажмите здесь, чтобы узнать больше.
Очистка вашего адреса сигнализации довольно проста, просто используйте эту команду в CLI:
Разрешение блокировки RPL
Вы можете проигнорировать этот шаг, если вас интересует только голосование по предложению. Разрешение блокировки RPL требуется только для тех, кто желает предложить или оспорить предложение.
Блокировка RPL требуется для предложения и оспаривания. По умолчанию блокировка RPL для любой цели будет отключена. Операторы нод будут соглашаться на выполнение действий управления, разрешая блокировку RPL со своей ноды или основного адреса вывода средств. Вы можете сделать это, используя эту команду в Smartnode:
Это предложит вам разрешить блокировку RPL при создании или оспаривании предложений управления. И наоборот, вы можете использовать следующую команду, чтобы отказаться от блокировки RPL:
Заблокированный RPL действует так же, как обычный застейканный RPL для целей вознаграждений, голосования и требований к обеспечению. Заблокированный RPL не учитывается в пороговых значениях для вывода RPL.
Делегирование силы голоса
Оператор ноды может решить делегировать свою силу голоса другому оператору ноды. Единственное требование заключается в том, что ваш делегат является зарегистрированной нодой.
Чтобы делегировать on-chain силу голоса другой ноде, используйте следующую команду:
Если вы делегировали свою силу голоса другому оператору ноды, вы можете сбросить это, установив адрес делегата на адрес вашей собственной ноды.
- Во время фазы 1 предложения: Избиратели и Делегаты могут отдать свой голос по предложению.
- Во время фазы 2 предложения: Операторы нод, которые делегировали свой голос, получают возможность отменить голос своего делегата, если они не согласны.
Если вы оператор ноды с делегированной силой голоса, вы должны голосовать во время фазы голосования 1, чтобы делегированная сила голоса учитывалась для предложения. Ваш голос в фазе 1 будет стоить вашу локальную силу голоса + делегированную силу голоса. Ваш голос в фазе 2 стоит только вашу локальную силу голоса.
Создание предложения
Чтобы иметь право на предложение, нода должна соответствовать нескольким требованиям:
- Включена в снимки (либо путём инициализации голосования, либо путём регистрации после Houston)
- Должна иметь хотя бы один minipool
- Имеет ненулевую силу голоса
- Разрешила блокировку RPL
- Имеет стейк RPL (за вычетом любого уже заблокированного RPL) больше, чем залог предложения
Предложения существуют для изменения параметров и выполнения кода на уровне протокола! Должно быть обсуждение и консенсус через процесс управления до того, как предложение будет создано on-chain.
Используйте команду rocketpool pdao propose, чтобы вызвать меню опций
Каждая из этих команд предложит вам список вводов для создания вашего желаемого предложения. В этом руководстве мы пригласим ноду в Security Council в качестве примера. Чтобы выдвинуть предложение о приглашении ноды в Security Council, вы бы использовали команду:
Имейте в виду, что этот шаг будет иметь некоторые незначительные вариации в зависимости от типа предложения. Эта конкретная команда:
rocketpool pdao propose security-council invite предложит вам ввести ID, а затем адрес участника.
После того, как это будет включено в блок, будет создано предложение pDAO! Предложение войдёт в период задержки голосования при создании.
Просмотр состояния предложения
Каждому предложению присваивается proposalID. В этом случае наше предложение пригласить 0xBdbc... в Security Council представлено ID 71. Есть несколько способов просмотреть состояние предложения. Один метод отобразит список каждого предложения pdao вместе с их состоянием (ожидание, успех, выполнено и т. д.). Второй метод отображает подробную информацию о конкретном предложении.
Чтобы перечислить все предложения, используйте следующую команду:
Это отобразит список всех предложений и их состояние
Здесь мы можем видеть, что наше предложение invite test-member имеет ID 71 и находится в состоянии ожидания. В этом состоянии оспаривающие могут оспорить действительность pollard дерева Меркла (используемого для расчёта силы голоса), предоставленного предлагателем. Когда proposal.vote.delay.time закончится, предложение перейдёт в активные фазы голосования. Не стесняйтесь просмотреть жизненный цикл предложения для обновления.
Голосование по предложению
Во время периода голосования Операторы нод и Делегаты могут отдать голос с одним из четырёх вариантов:
Их сила голоса будет применена к выбранному ими варианту. Сила голоса является функцией "эффективного стейка RPL". Более подробное чтение можно найти в репозитории rocketpool-research.
Если вы оператор ноды с делегированной силой голоса, вы должны голосовать во время фазы голосования 1, чтобы делегированная сила голоса учитывалась для предложения. Ваш голос в фазе 1 будет стоить вашу локальную силу голоса + делегированную силу голоса. Ваш голос в фазе 2 стоит только вашу локальную силу голоса. Пожалуйста, имейте в виду, что нода может голосовать один и только один раз по предложению, поэтому выбирайте тщательно.
Используйте эту команду для голосования:
Вам будет предложено выбрать предложение для голосования, если есть хотя бы одно предложение в активной фазе голосования. Меню должно отображать все предложения, по которым ваша нода имеет право голосовать:
После выбора варианта вас спросят, как вы хотите отдать свой голос.
Выбор варианта затем отобразит вашу силу голоса, а затем предложит вам отправить транзакцию:
Вы успешно проголосовали по предложению, как только транзакция будет включена в блок! В этот момент вы можете использовать rocketpool pdao proposal details <proposal-id>, чтобы просмотреть состояние предложения. Предложению необходимо достичь proposal.quorum требуемой силы голоса и большинства силы голоса за, чтобы оно было успешным.
Чтобы приведённый выше пример прошёл, сила голоса должна превышать кворум 140970562215 силы голоса. Есть 197980809837 силы голоса за и нет голосов против или воздержавшихся. Предложение готово к успеху и готово к выполнению к концу proposal.vote.phase2.time.
Выполнение успешного предложения
Поздравляем! Ваше предложение прошло! Теперь всё, что осталось сделать, — это выполнить предложение. Имейте в виду, что кто угодно может быть исполнителем предложения. Чтобы выполнить успешное предложение, введите команду:
Выбор варианта предложит вам отправить транзакцию. Как только эта транзакция будет включена в блок, изменение будет применено к протоколу Rocket Pool!
Получение залогов и вознаграждений
Предлагатели или оспаривающие могут получить свои залоги по завершении предложения. В зависимости от результата предложения предлагатель или оспаривающий может или не может получить свои proposal.bond и proposal.challenge.bond.
Вот несколько правил, которые диктуют условия, при которых залоги могут быть получены:
- Если предложение отклонено, предлагатель теряет свой залог, который делится пропорционально между оспаривающими, которые способствовали отклонению предложения. Все остальные оспаривающие получают обратно только свой залог.
- Вклад в отклонение предложения означает, что оспаривающий представил индекс, который позже был доказан как неверный из-за неспособности предлагателя ответить на вызов. Возможно, что существует несколько неправильных индексов, но только те, которые привели к отклонению предложения, разделяют вознаграждение. Все остальные оспаривающие получают обратно только свой залог.
- Если оспаривающий оспаривает ноду, предлагатель отвечает, и предложение не отклоняется. Предлагатель может получить залоги вызова из недействительных вызовов.
- Если предложение отклонено, предлагатель теряет свой залог, который делится пропорционально между оспаривающими, которые способствовали отклонению предложения.
Используйте эту команду для получения залогов:
Это отобразит каждое предложение, из которого вы имеете право получить залоги. Вы можете либо получить залоги из указанного предложения, либо вы можете получить залоги и вознаграждения из всех подходящих предложений.
Как только вы выбрали вариант, вам будут представлены текущие рекомендации по стоимости газа в сети; подтвердите выбор цены на газ и следуйте остальным подсказкам.
Обратите внимание, что если вы выберете первый вариант для получения всех доступных предложений, они будут выполняться индивидуально, а не как одна транзакция.
Создание повторяющегося расхода казначейства
Вам нужно подготовить несколько вводов для создания повторяющегося расхода казначейства:
- Имя контракта
- Адрес получателя
- Количество RPL для отправки за период
- Время начала для повторяющегося платежа (как временная метка UNIX)
- Длительность каждого периода оплаты в часах / минутах / секундах (например, 168h0m0s)
- Количество периодов оплаты
Получателю нужно будет запомнить имя контракта, чтобы получить платежи. Не беспокойтесь, так как эта информация хранится и может быть получена с помощью команды rocketpool pdao proposals details <proposal-id>
Чтобы выдвинуть предложение о настройке повторяющегося расхода казначейства, используйте следующую команду smartnode и следуйте подсказкам:
Вот как это выглядит все вместе:
Как только вы введёте все необходимые вводы, будет выдвинуто предложение о создании повторяющегося платежа. Когда pDAO примет и выполнит это предложение, получатель получит 1 RPL, начиная с 2024-06-09 12:13:53 +0000 UTC каждые 720 часов в течение 24 платежей.
Получение повторяющегося расхода казначейства
Получение повторяющихся платежей должно быть довольно простым! Перейдите к нашему инструменту интерфейса здесь, чтобы сделать это. Если вы пробуете это в тестовой сети Hoodi, используйте эту ссылку вместо этого.
Как только вы на сайте, нажмите кнопку подключить кошелёк. Пожалуйста, прочтите и примите Условия обслуживания и Политику конфиденциальности, это позволит различные способы подключения, затем нажмите подключить metamask.
MetaMask предложит вам выбрать аккаунт для подключения к веб-сайту. После того, как вы войдёте, вам нужно будет ввести имя контракта. Это отобразит все соответствующие детали. Убедитесь, что вы дважды проверили адрес получателя. Любой может вызвать функцию получения, но каждый контракт оплаты будет иметь назначенного получателя для распределения RPL.
Вы можете получить свои платежи в любое время, вы просто получите общий невостребованный RPL до самого последнего периода. Альтернативно, вы можете дождаться, пока пройдут все периоды, чтобы собрать всё сразу и сэкономить на газе.
Просто нажмите большую оранжевую кнопку получения, когда будете готовы, и просмотрите транзакцию в metamask (или в вашем предпочитаемом кошельке). Как только это будет сделано, всё готово!