Участие в on-chain предложениях pDAO
Любая нода с ненулевой силой голоса может создавать или участвовать в предложении pDAO в любое время. Предложения могут быть одного из следующих типов:
- Изменение настроек pDAO
- Одноразовые расходы из казны
- Повторяющиеся расходы из казны (управленческие комитеты)
- Членство в совете безопасности
Для более подробной информации и обоснования см. типы предложений. Важно понимать, что предложение pDAO - это on-chain сущность, которая существует для выполнения изменений на уровне протокола.
Процесс управления
Предложение должно быть предсказано процессом управления, прежде чем оно окажется on-chain.
Изменения в протокол Rocket Pool предлагаются, голосуются и выполняются с использованием строгого, но прозрачного процесса управления. Процесс начинается с неформального обсуждения идеи в сообществе Discord. Затем эта идея переходит к формальным обсуждениям в канале #governance в Discord и на форуме DAO, где она проходит тщательное исследование, моделирование и анализ в подготовке к Предложению по улучшению Rocket Pool (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, у вас будет возможность сэкономить немного газа, инициализировав голосование и установив делегата в одной транзакции.
Вам нужно сделать это только один раз. Это настраивает начальную информацию о снимке для ноды. После инициализации голосования каждое предпринятое действие будет обновлять информацию о снимке вашей ноды. После инициализации вашей силы голоса вы можете проверить, сколько у вас ее, используя следующую команду smartnode:
Всякий раз, когда создается новое предложение, создается дерево голосования, представляющее снимок силы голоса сети и информации о делегатах
в сочетании с новым предложением. Это означает, что сила голоса вашей ноды не будет включена в предложение, если
оно было создано до того, как вы инициализировали голосование. rocketpool pdao status отобразит силу голоса вашей ноды на
последнем блоке, которая может или не может быть репрезентативной для вашей силы голоса по конкретному предложению.
Автоматическая инициализация силы голоса
Версия Smartnode 1.13.8 вводит новую функцию Автоматическая инициализация силы голоса, которая предназначена для автоматической
инициализации силы голоса на нодах, которые еще не сделали этого. Автоматически инициализированная сила голоса делегирована самой себе.
Эту функцию можно настроить в настройках Smartnode, запустив rocketpool service config и перейдя в раздел *
*Smartnode and TX Fees**.
Порог газа для автоматической инициализации силы голоса - это лимит (в 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, чтобы вызвать меню опций
Каждая из этих команд предложит вам список вводов для создания желаемого предложения. В этом руководстве мы пригласим ноду в совет безопасности в качестве примера. Чтобы создать предложение о приглашении ноды в совет безопасности, вы должны использовать команду:
Имейте в виду, что этот шаг будет иметь небольшие вариации в зависимости от типа предложения. Эта конкретная команда:
rocketpool pdao propose security-council invite предложит вам ввести ID, а затем адрес члена.
После того, как это будет включено в блок, будет создано предложение pDAO! Предложение войдет в период задержки голосования при создании.
Просмотр состояния предложения
Каждому предложению назначается proposalID. В этом случае наше предложение пригласить 0xBdbc... в совет безопасности
представлено с ID 71. Есть несколько способов просмотреть состояние предложения. Один метод отобразит список
каждого предложения pdao вместе с их состоянием (ожидает, успешно, выполнено и т.д.). Второй метод отображает подробную
информацию о конкретном предложении.
Чтобы вывести список всех предложений, используйте следующую команду:
Это отобразит список всех предложений и их состояние
Здесь мы видим, что наше предложение invite test-member имеет ID 71 и находится в ожидающем состоянии. В этом состоянии
оспаривающие могут оспорить действительность
merkle pollard (используется для расчета силы голоса), предоставленного предлагающим. Когда proposal.vote.delay.time закончится,
предложение перейдет в активные фазы голосования. Не стесняйтесь просмотреть жизненный цикл
предложения для освежения памяти.
Голосование по предложению
Во время периода голосования Операторы нод и Делегаты могут подать голос с одним из четырех вариантов:
Их сила голоса будет применена к выбранному варианту. Сила голоса - это функция "эффективного стейка RPL." Более подробное чтение можно найти в репозитории rocketpool-research.
Если вы оператор ноды с делегированной силой голоса, вы должны голосовать во время фазы 1 голосования, чтобы делегированная сила голоса учитывалась в предложении. Ваш голос в фазе 1 будет стоить вашу локальную силу голоса + делегированную силу голоса. Ваш голос в фазе 2 стоит только вашу локальную силу голоса. Пожалуйста, имейте в виду, что нода может голосовать один и только один раз по предложению, так что выбирайте внимательно.
Используйте эту команду, чтобы подать голос:
Вам будет предложено выбрать предложение для голосования, если есть хотя бы одно предложение в активной фазе голосования. Меню должно отображать все предложения, по которым ваша нода имеет право голосовать:
После выбора варианта вас спросят, как вы хотите подать свой голос.
Выбор варианта затем отобразит вашу силу голоса, а затем предложит вам отправить транзакцию:
Вы успешно проголосовали по предложению, как только транзакция будет включена в блок! В этот момент вы можете использовать
rocketpool pdao proposal details <proposal-id>, чтобы просмотреть состояние предложения. Предложению нужно достичь
кворума требуемой силы голоса и большинства силы голоса за, чтобы оно было успешным.
Чтобы приведенный выше пример прошел, сила голоса должна превысить кворум в 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 платежей.
Получение повторяющегося расхода из казны
Получение повторяющихся платежей должно быть довольно простым! Перейдите к нашему фронтенд-инструменту здесь, чтобы сделать это. Если вы пробуете это на testnet Hoodi, используйте эту ссылку вместо этого.
Как только вы окажетесь на сайте, нажмите кнопку connect wallet. Пожалуйста, прочитайте и примите Условия обслуживания & Политику конфиденциальности, это позволит различные способы подключения, затем нажмите connect metamask.
MetaMask предложит вам выбрать аккаунт для подключения к веб-сайту. После того, как вы вошли, вам нужно будет ввести название контракта. Это отобразит все соответствующие детали. Убедитесь, что вы дважды проверили адрес получателя. Любой может вызвать функцию получения, но каждый платежный контракт будет иметь назначенного получателя для распределения RPL.
Вы можете получить свои платежи в любое время, вы просто получите общий неполученный RPL до самого последнего периода. Альтернативно, вы можете подождать, пока пройдут все периоды, чтобы собрать все сразу и сэкономить на газе.
Просто нажмите большую оранжевую кнопку получения, когда будете готовы, и проверьте транзакцию в metamask (или вашем предпочтительном кошельке). Как только это будет сделано, все готово!