Участие в он-чейн предложениях pDAO
Любой узел с ненулевой силой голоса может выдвинуть или участвовать в предложении pDAO в любое время. Предложения могут быть одного из следующих типов:
- Изменение настроек pDAO
- Единовременные расходы из казначейства
- Повторяющиеся расходы из казначейства (комитеты управления)
- Членство в совете безопасности
Для более подробной информации и обоснования см. типы предложений. Важно понимать, что предложение pDAO — это он-чейн сущность, которая существует для выполнения изменений на уровне протокола.
Процесс управления
Предложение должно быть предсказано процессом управления до того, как оно появится он-чейн.
Изменения в протоколе Rocket Pool предлагаются, голосуются и выполняются с использованием строгого, но прозрачного процесса управления. Процесс начинается с неформального обсуждения идеи в сообществе Discord. Затем эта идея переходит к формальным обсуждениям в канале #governance в Discord и на форуме DAO, где она проходит тщательное исследование, моделирование и проверку в подготовке к Предложению по улучшению Rocket Pool (RPIP). После этого готовится черновик RPIP и рассматривается назначенными рецензентами RPIP, чтобы обеспечить его качество и готовность к представлению DAO. Черновое предложение затем представляется DAO на форуме для дальнейшего рассмотрения, обратной связи и внесения любых необходимых изменений. Как только предложение будет доработано на основе отзывов сообщества, на форуме DAO проводится опрос, чтобы оценить готовность к финализации текста RPIP. Если опрос проходит, указывая на одобрение сообщества, RPIP помечается как финальный и готов к голосованию Protocol DAO, которое проводится через Snapshot, чтобы определить, должно ли предложение быть реализовано.
Отсюда Oracle DAO выдвинет он-чейн предложение. Есть окно, в течение которого Protocol DAO, Oracle DAO и сообщество могут рассмотреть предложение. Если достигнут консенсус, предложение выполняется, и изменения применяются к протоколу.
Удобное визуальное представление этого процесса можно найти на веб-сайте Rocket Pool.
Предварительные требования
Пожалуйста, прочитайте жизненный цикл предложения перед продолжением. Это объяснит различия между всеми периодами голосования и действиями, которые могут быть предприняты в течение каждого периода.
Остальная часть этой страницы проведёт вас через шаги, необходимые для участия в он-чейн предложениях pDAO.
Инициализация голосования
Если вы оператор узла, который зарегистрировался до обновления Houston, вам нужно инициализировать голосование, чтобы разблокировать силу голоса. Имейте в виду, что наличие хотя бы одного минипула является требованием для наличия силы голоса.
Эта команда вызовет приглашение ниже. Пожалуйста, внимательно прочитайте его:
- Если вы ответите
direct, сила голоса будет инициализирована на ваш узел, и вы сможете голосовать непосредственно на предложениях Protocol DAO. - Если вы ответите
delegate, у вас будет возможность немного сэкономить на газе, инициализируя голосование и установив делегата в одной транзакции.
Вам нужно сделать это только один раз. Это настраивает начальную информацию снимка для узла. После инициализации голосования каждое предпринятое действие будет обновлять информацию снимка вашего узла. Как только ваша сила голоса инициализирована, вы можете проверить, сколько у вас есть, используя следующую команду smartnode:
Всякий раз, когда создаётся новое предложение, дерево голосования, представляющее снимок силы голосования сети и информации о делегатах,
создаётся вместе с новым предложением. Это означает, что сила голоса вашего узла не будет включена в предложение, если
оно было выдвинуто до того, как вы инициализировали голосование. 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.
Делегирование силы голоса
Оператор узла может решить делегировать свою силу голоса другому оператору узла. Единственное требование — чтобы ваш делегат был зарегистрированным узлом.
Чтобы делегировать он-чейн силу голоса другому узлу, используйте следующую команду:
Если вы делегировали свою силу голоса другому оператору узла, вы можете сбросить это, установив адрес делегата на адрес вашего собственного узла.
- Во время фазы 1 предложения: Избиратели и Делегаты могут отдать свой голос по предложению.
- Во время фазы 2 предложения: Операторы узлов, которые делегировали свой голос, получают возможность отменить голос своего Делегата, если они не согласны.
Если вы оператор узла с делегированной силой голоса, вы должны голосовать во время фазы голосования 1, чтобы делегированная сила голоса учитывалась в предложении. Ваш голос в фазе 1 будет стоить вашей локальной силы голоса + делегированной силы голоса. Ваш голос в фазе 2 стоит только вашей локальной силы голоса.
Создание предложения
Чтобы иметь право на предложение, узел должен соответствовать нескольким требованиям:
- Включён в снимки (либо путём инициализации голосования, либо путём регистрации после Houston)
- Должен иметь хотя бы один минипул
- Имеет ненулевую силу голоса
- Разрешил блокировку RPL
- Имеет стейк RPL (минус любой уже заблокированный RPL) больше, чем облигация предложения
Предложения существуют для изменения параметров и выполнения кода на уровне протокола! Должно быть обсуждение и консенсус через процесс управления, прежде чем предложение будет создано он-чейн.
Используйте команду rocketpool pdao propose, чтобы открыть меню опций
Каждая из этих команд запросит у вас список входных данных для создания желаемого предложения. В этом руководстве мы пригласим узел в совет безопасности в качестве примера. Чтобы выдвинуть предложение пригласить узел в совет безопасности, вы бы использовали команду:
Имейте в виду, что этот шаг будет иметь небольшие вариации в зависимости от типа предложения. Эта конкретная команда:
rocketpool pdao propose security-council invite попросит вас ввести ID, за которым следует адрес члена.
После того как это будет включено в блок, будет создано предложение pDAO! Предложение войдёт в период задержки голосования при создании.
Просмотр состояния предложения
Каждому предложению присваивается proposalID. В этом случае наше предложение пригласить 0xBdbc... в совет безопасности
представлено с ID 71. Есть несколько способов просмотреть состояние предложения. Один метод отобразит список
каждого предложения pdao вместе с их состоянием (ожидающий, успешный, выполненный и т.д.). Второй метод отображает подробную
информацию о конкретном предложении.
Чтобы отобразить все предложения, используйте следующую команду:
Это отобразит список всех предложений и их состояние
Здесь мы видим, что наше предложение invite test-member имеет ID 71 и находится в состоянии ожидания. В этом состоянии
оспаривающие могут оспорить действительность
дерева меркла (используемого для расчёта силы голоса), предоставленного предлагающим. Когда 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 testnet, используйте эту ссылку вместо этого.
Как только вы на сайте, нажмите кнопку connect wallet. Пожалуйста, прочитайте и примите Условия обслуживания & Политику конфиденциальности, это позволит различным способам подключения, затем нажмите connect metamask.
MetaMask предложит вам выбрать аккаунт для подключения к веб-сайту. После того как вы войдёте, вам нужно будет ввести имя контракта. Это отобразит все соответствующие детали. Убедитесь, что вы дважды проверили адрес получателя. Кто угодно может вызвать функцию получения, но каждый платёжный контракт будет иметь назначенного получателя для распределения RPL.
Вы можете получить свои платежи в любое время, вы просто получите общий невостребованный RPL до самого последнего периода. В качестве альтернативы вы можете подождать, пока все периоды не пройдут, чтобы собрать всё сразу и сэкономить на газе.
Просто нажмите большую оранжевую кнопку получения, когда вы будете готовы, и проверьте транзакцию в metamask (или вашем предпочитаемом кошельке). Как только это будет сделано, всё готово!