Депозиты минипулов в настоящее время отключены в рамках подготовки к Saturn 1.
Преобразование соло-валидатора в минипул
Когда Beacon Chain был впервые запущен, валидаторы создавались со специальной парой криптографических ключей - ключом валидатора и ключом для вывода средств.
Ключ валидатора - это "горячий ключ", что означает, что он должен храниться на активной машине, подключенной к Интернету; это ключ, используемый для подписания ваших аттестаций и предложений, а также служит вашим "адресом" в Beacon Chain (шестнадцатеричная строка, используемая для идентификации вашего валидатора).
Ключ для вывода средств, с другой стороны, является "холодным ключом", что означает, что он не (и фактически, не должен) храниться на активной машине, подключенной к Интернету. Он предназначен для хранения в холодном хранилище, чтобы к нему нельзя было получить доступ до тех пор, пока это не потребуется. В отличие от ключа валидатора, ключ для вывода средств вообще не отвечает за обязанности валидации. Вместо этого его единственная задача - управлять выводом средств вашего валидатора в Beacon Chain (после того, как будет реализован вывод средств).
Эта система с двумя ключами была начальной архитектурой, с которой был запущен Beacon Chain. В то время ни Merge, ни вывод средств еще не были спроектированы, но эта система считалась достаточно надежной, чтобы справиться с любой формой, которую примет протокол, когда оба они будут реализованы.
Перенесемся в сегодняшний день, и теперь у нас есть гораздо лучшее понимание того, как работает вывод средств. К счастью, они были реализованы таким образом, что делает возможным для существующего соло-стейкинг валидатора в Beacon Chain (который использует старые учетные данные ключа для вывода средств) преобразование напрямую в минипул Rocket Pool без необходимости выхода валидатора из Beacon Chain!
Если вас интересует больше узнать об этом процессе, то это руководство для вас. Мы расскажем, как работают выводы средств в Ethereum на высоком уровне, объясним, как работает процесс преобразования, и закончим подробным пошаговым руководством о том, как преобразовать ваш валидатор в минипул.
Зачем мне преобразовывать?
Перед тем, как перейти к техническим деталям, очень важно ответить на вопрос, почему соло-стейкер вообще рассмотрит этот процесс. Преобразование в минипул подходит не всем, но этот раздел поможет вам сделать обоснованный выбор о том, стоит ли вам это делать.
Минипулы Rocket Pool имеют несколько преимуществ перед обычными соло-стейкинг валидаторами:
- Они зарабатывают комиссию на той части ETH, которую они берут взаймы у стейкеров пула (24 ETH).
- Ваши существующие 32 ETH бонда могут быть использованы для создания до трех дополнительных валидаторов (помимо того, что у вас уже есть).
- Они имеют право на участие в Smoothing Pool, который объединяет все вознаграждения уровня Execution (например, от предложений блоков и вознаграждений MEV) и справедливо распределяет их среди участников в течение каждого интервала вознаграждений.
- Если вы застейкаете RPL, они будут зарабатывать бонусную комиссию и вознаграждения за инфляцию RPL (которые в настоящее время обеспечивают более высокий APR, чем вознаграждения за стейкинг ETH).
Тем не менее, есть некоторые различия, которые важно выделить:
- Вам придется принять риск смарт-контрактов, так как протокол реализован как серия смарт-контрактов.
- Аналогично, обычная работа ноды использует стек Smartnode; вам придется принять любые риски, связанные с установкой и запуском этого программного обеспечения на вашей ноде.
- Быть оператором ноды действительно включает изучение некоторых новых концепций, поэтому существует кривая обучения, связанная с тем, чтобы стать таковым.
- Минипулы обязаны делить свои вознаграждения со стейкерами пула, поэтому адрес для вывода средств валидатора будет смарт-контрактом в слое Execution, а не EOA, который вы контролируете. Это также относится к вашему получателю комиссий за вознаграждения уровня Execution, который также должен быть смарт-контрактом, который может справедливо разделить ваши вознаграждения.
- Oracle DAO Rocket Pool отвечает за передачу информации из Beacon Chain в слой Execution и за обнаружение нарушений, которые протокол не может обеспечить (например, незаконный адрес получателя комиссий). Запуск минипула означает, что вам придется доверять Oracle DAO правильно выполнять эту работу.
Мы рекомендуем вам внимательно ознакомиться с этими плюсами и минусами перед тем, как решить преобразовать ваш соло-валидатор. Если вы хотите продолжить процесс, пожалуйста, прочитайте следующие разделы.
Предварительные требования
Чтобы начать процесс преобразования, вам нужно соответствовать следующим критериям:
- У вас должна быть нода, зарегистрированная в сети Rocket Pool для размещения нового минипула.
- Валидатор, который вы хотите мигрировать, должен быть активным в Beacon chain. Он не может быть в ожидании, слешнут, выходить / вышел или выведен.
- Валидатор должен иметь баланс не менее 32 ETH в Beacon chain.
- Валидатор должен иметь учетные данные вывода средств BLS ключа (учетные данные
0x00). Преобразование не может быть выполнено на валидаторах, которые уже мигрировали на другие учетные данные вывода средств уровня Execution (учетные данные0x01). - (Опционально) Если вы намереваетесь, чтобы Smartnode автоматически мигрировал учетные данные вывода средств для вас, у вас должна быть мнемоническая фраза под рукой.
Если ни одно из этих условий не является препятствием для вас, то вы имеете право начать преобразование валидатора.
Обзор процесса
Первый шаг - создать новый "вакантный" минипул.
В отличие от обычных минипулов, которые создают нового валидатора во время их создания, вакантные минипулы являются специальными минипулами, предназначенными для управления существующими валидаторами.
Как следствие, вакантные минипулы ведут себя немного иначе, чем обычные минипулы на этапе prelaunch.
После завершения инициализации и перехода в стадию staking они становятся обычными минипулами.
Во время создания вакантного минипула вам будет предложена опция автоматического изменения учетных данных вывода средств вашего валидатора Smartnode со старого ключа для вывода средств BLS на новый адрес вакантного минипула. Если вы не хотите делать это прямо сейчас, вы можете сделать это позже с помощью специальной команды Smartnode или сделать это самостоятельно с помощью стороннего инструмента. Обратите внимание, что изменение учетных данных вывода средств валидатора на адрес минипула требуется для преобразования, поэтому независимо от того, как вы это сделаете, это нужно будет сделать для успешного завершения процесса.
После изменения учетных данных вывода средств у вас будет возможность импортировать приватный ключ валидатора в клиент валидатора, управляемый Smartnode. Если вы хотите, чтобы Smartnode обслуживал валидатора, чтобы вам не приходилось управлять своим собственным, это привлекательный вариант. Если вы предпочитаете обслуживать свой собственный клиент валидатора и хранить ключи там, вы можете это сделать.
На этом этапе ваш новый минипул войдет в период проверки скраба, где Oracle DAO будет непрерывно анализировать информацию вашего валидатора в Beacon Chain, чтобы подтвердить, что она остается законной. Это включает:
- Учетные данные вывода средств либо еще не были мигрированы (по-прежнему являются исходными учетными данными ключа BLS
0x00), либо были мигрированы на адрес минипула. Миграция их на любой другой адрес уровня Execution приведет к скрабированию пула.- Если учетные данные вывода средств по-прежнему являются исходными учетными данными ключа BLS
0x00к моменту окончания периода проверки скраба, пул будет скрабирован.
- Если учетные данные вывода средств по-прежнему являются исходными учетными данными ключа BLS
- Валидатор находится в состоянии активного стейкинга на протяжении всей проверки. Если он переходит в состояние слешнутого, вышедшего или выведенного, пул будет скрабирован.
Скрабированный вакантный минипул означает, что он не является частью сети Rocket Pool, но он по-прежнему даст вам (оператору ноды) доступ ко всем вашим средствам через типичные методы получения токенов в CLI. Средства не теряются, если вакантные минипулы скрабируются. Дополнительная информация о скрабированных минипулах, их последствиях и о том, как их использовать, приведена позже в этом руководстве.
После прохождения проверки скраба вы сможете продвинуть свой вакантный минипул. Это завершит преобразование и изменит его из вакантного минипула в обычный. На этом этапе минипул будет действовать как любой другой минипул в сети, и ваш соло-валидатор официально будет преобразован в валидатор Rocket Pool!
В рамках процесса сеть сделает снимок ваших общих вознаграждений в Beacon chain (и в вашем новом минипуле, если вы получите скимминг во время проверки скраба). Она признает, что все эти вознаграждения принадлежат вам и не должны делиться со стейкинг-пулом, поэтому она предоставит их все как возврат, который вы сможете получить в любое время после завершения продвижения.
Ниже приведено подробное пошаговое руководство по процессу преобразования, включая инструкции для каждого шага.
Шаг 1: Создание вакантного минипула
Чтобы начать процесс преобразования, выполните следующую команду с CLI Smartnode:
Например, если вы хотели преобразовать соло-валидатор с pubkey 0xb82ccba6093747559361a5495c7e2c607e76ea3543d556319355ce80289bb819fd787f715f60615cdd358c0476b40661, вы бы выполнили:
Вы увидите краткое резюме о том, чего ожидать во время процесса, затем вам будет предложено выбрать, какую сумму бонда вы хотите использовать при создании этого минипула:
Как только вы выберете 8 ETH, вы преобразуете свой валидатор в минипул с бондом 8 ETH. Ваш исходный депозит 32 ETH будет преобразован в депозит 8 ETH, с 24 ETH, взятыми взаймы у стейкеров пула. После завершения процесса преобразования у вас будет кредитный баланс в 24 ETH, который вы можете использовать для создания большего количества минипулов.
После выбора опции Smartnode выполнит несколько проверок, чтобы подтвердить, что введенный вами валидатор и ваша нода соответствуют всем предварительным требованиям, перечисленным выше. После этого вам будет предложено подтвердить цену газа, а затем отправить транзакцию для создания нового вакантного минипула. После создания вам будет представлен адрес минипула:
Это адрес, который вы будете использовать при изменении учетных данных вывода средств вашего валидатора.
На этом этапе Smartnode спросит, хотите ли вы, чтобы Smartnode сделал это автоматически (вместе с импортом приватного ключа валидатора в клиент валидатора, управляемый Smartnode, что обсуждается позже):
Если вы ответите y на этот вопрос, Smartnode выполнит шаги 2 и 3 автоматически; пожалуйста, смотрите раздел Автоматическое изменение учетных данных вывода средств и импорт ключа ниже.
Если вы ответите n на этот вопрос, команда завершится, и вы завершите шаг 1.
Пожалуйста, переходите к разделу Шаг 2 далее.
Автоматическое изменение учетных данных вывода средств и импорт ключа
Если вы решите, чтобы Smartnode автоматически изменил ваши учетные данные вывода средств и импортировал приватный ключ вашего валидатора, крайне важно, чтобы вы удалили ключ валидатора из вашего старого клиента валидатора, которым вы управляете самостоятельно, и выключили старый клиент валидатора, чтобы убедиться, что у него нет ключа, загруженного в памяти.
Вы также должны подождать не менее 15 минут после этого, чтобы убедиться, что он намеренно пропустил как минимум две аттестации. Вы можете проверить это, просмотрев chain explorer, такой как https://beaconcha.in.
Если вы не подождете как минимум 15 минут, ваш валидатор БУДЕТ СЛЕШНУТ, когда клиент валидатора Smartnode начнет аттестацию с ключом вашего валидатора!
Мы настоятельно рекомендуем вам включить doppelganger detection в конфигурации Smartnode, чтобы быть максимально защищенным от риска слешинга.
Если вы решите автоматически импортировать ключ валидатора и изменить учетные данные вывода средств на адрес минипула, Smartnode сначала попросит мнемонику, использованную для генерации как приватного ключа BLS вашего валидатора, так и соответствующего исходного ключа для вывода средств:
После ввода Smartnode выведет ваш старый ключ для вывода средств на основе BLS, используя мнемонику и pubkey валидатора. Затем он отправит сообщение в Beacon Chain, подписанное вашим ключом для вывода средств, указывающее, что вы хотите изменить учетные данные вывода средств со старого ключа для вывода средств BLS на новый адрес вакантного минипула:
Наконец, он импортирует ключ вашего валидатора в клиент валидатора Smartnode и спросит, хотите ли вы перезапустить его, чтобы он начал валидацию с этим ключом:
С этим шаги 2 и 3 были завершены. Вы можете проверить, что учетные данные вывода средств были правильно изменены и что ключ активно валидирует, используя chain explorer, такой как https://beaconcha.in
Переходите к разделу Шаг 4, чтобы узнать о проверке скраба.
Шаг 2: Изменение учетных данных вывода средств валидатора
Когда вы создали новый вакантный минипул, следующий шаг - изменить учетные данные вывода средств вашего валидатора со старых учетных данных BLS-ключа 0x00 на новые учетные данные 0x01, которые содержат новый адрес минипула.
Есть два способа сделать это:
- Используя CLI Smartnode через команду
rocketpool minipool set-withdrawal-creds. - Используя внешний сторонний инструмент, такой как ethdo.
В этом руководстве мы рассмотрим, как использовать метод 1 (Smartnode). Для получения дополнительной информации о методе 2, пожалуйста, обратитесь к документации инструмента, который вы хотите использовать.
Начните с выполнения следующей команды:
Например, если адрес нового вакантного минипула был 0x8F3F149e4416a94e0ee909dE32f8A11C2F3e211C, вы бы выполнили это:
Затем Smartnode попросит мнемонику, использованную для генерации как ключа вашего валидатора, так и соответствующего ключа для вывода средств:
После этого он выполнит некоторые проверки безопасности, чтобы убедиться, что учетные данные вывода средств вашего валидатора могут быть изменены. Если это удастся, он отправит сообщение в Beacon Chain, подписанное вашим ключом для вывода средств, указывающее, что вы хотите изменить учетные данные вывода средств со старого ключа для вывода средств BLS на новый адрес минипула:
Вот и все! Вы можете проверить, что учетные данные вывода средств были правильно изменены, используя chain explorer, такой как https://beaconcha.in.
(Опционально) Шаг 3: Импорт ключа валидатора
После преобразования вашего валидатора в минипул вы можете захотеть, чтобы клиент валидатора Smartnode запускал его вместо того, который вы в настоящее время управляете самостоятельно. У этого есть несколько преимуществ:
- Это "чище" с организационной точки зрения (Smartnode управляет вашими минипулами, ваш внешне управляемый клиент валидатора управляет вашими соло-стейкинг валидаторами).
- Это позволяет таким командам, как
rocketpool minipool exit(командам, которые требуют вашего ключа валидатора для подписания сообщений), работать.
Однако есть некоторые очень важные соображения, которые нужно понимать перед этим:
- Вы должны убедиться, что ключ вашего валидатора был удален из вашего собственного клиента валидатора, и что вы подождали не менее 15 минут после его удаления перед импортом в Smartnode. Смотрите предупреждающее поле ниже.
- Вы должны убедиться, что у вас есть keystore вашего валидатора и его файл пароля, так как такие команды, как
rocketpool wallet recoverиrocketpool wallet rebuildне могут восстановить их без резервной копии, поскольку они не были получены из мнемоники кошелька Smartnode.
Если вы хотите импортировать ключ вашего валидатора в Smartnode, продолжайте читать ниже.
Если вы решите, чтобы Smartnode импортировал приватный ключ вашего валидатора, крайне важно, чтобы вы удалили ключ валидатора из вашего старого клиента валидатора, которым вы управляете самостоятельно, и выключили старый клиент валидатора, чтобы убедиться, что у него нет ключа, загруженного в памяти.
Вы также должны подождать не менее 15 минут после этого, чтобы убедиться, что он намеренно пропустил как минимум две аттестации. Вы можете проверить это, просмотрев chain explorer, такой как https://beaconcha.in.
Если вы не подождете как минимум 15 минут, ваш валидатор БУДЕТ СЛЕШНУТ, когда клиент валидатора Smartnode начнет аттестацию с ключом вашего валидатора!
Мы настоятельно рекомендуем вам включить doppelganger detection в конфигурации Smartnode, чтобы быть максимально защищенным от риска слешинга.
Начните с выполнения следующей команды:
Например, если адрес нового вакантного минипула был 0x8F3F149e4416a94e0ee909dE32f8A11C2F3e211C, вы бы выполнили это:
Затем Smartnode попросит мнемонику, использованную для генерации ключа вашего валидатора:
После этого он будет циклически проходить через различные ключи, сгенерированные из этой мнемоники, пока не найдет публичный ключ вашего валидатора. Затем он импортирует его и спросит, хотите ли вы перезапустить клиент валидатора Smartnode, чтобы он загрузил ваш ключ:
С этим ключ вашего валидатора теперь импортирован в Smartnode, и вы должны увидеть, как он начинает аттестацию. Вы можете подтвердить это, следя за логами клиента валидатора с помощью этой команды:
Вы также можете проверить, что chain explorer, такой как https://beaconcha.in, может видеть, как ваш клиент валидатора аттестует с ключом вашего валидатора.
Шаг 4: Назначение правильного получателя комиссий
После того, как вы начали процесс миграции, крайне важно, чтобы вы убедились, что ваш получатель комиссий установлен правильно (либо на распределитель комиссий вашей ноды, либо на Smoothing Pool, если вы присоединились к нему). Если вы этого не сделаете и оставите его на получателе комиссий для ваших соло-валидаторов, вы будете оштрафованы, и часть вашей ставки Beacon Chain будет вычтена для компенсации потери.
Этот шаг требуется только в том случае, если вы оставляете ключ вашего валидатора в вашем собственном внешне управляемом клиенте валидатора.
Если вы удалите его из вашего собственного VC и импортируете его в VC, управляемый Rocket Pool, ваш получатель комиссий будет автоматически назначен на правильный адрес процессом node.
Поскольку вы можете сохранить другие ключи соло-стейкинга в вашем VC, которые вы не хотите устанавливать на распределитель комиссий или Smoothing Pool, единственный способ выполнить это - использовать файл конфигурации VC для ручной установки получателя комиссий для мигрируемого валидатора.
Этот процесс зависит от того, какой клиент Consensus вы используете; обратитесь к документации для получения подробностей, но вот несколько полезных ссылок:
Lighthouse: через validator_definitions.yml
Lodestar в настоящее время не поддерживает установку получателей комиссий для конкретных валидаторов. Пожалуйста, не используйте Lodestar, если вы оставляете ключ в вашем внешне управляемом VC с другими соло-ключами, которые не мигрируются.
Prysm: через proposer-settings-file
Teku: через validators-proposer-config
Если вы используете eth-docker, вы можете использовать команду ./ethd keys set-recipient для установки индивидуальных получателей для каждого ключа, который вы используете, как описано в их документации.
Шаг 5: Ожидание проверки скраба
К этому времени вы должны были завершить шаги 1 и 2 (создание вакантного минипула и изменение учетных данных вывода средств вашего валидатора) и опционально шаг 3 (импорт ключа в Smartnode). Следующий шаг - дождаться завершения проверки скраба. Это процесс, выполняемый Oracle DAO для проверки следующего:
- Баланс вашего валидатора в Beacon Chain (и баланс вашего минипула в слое Execution) должен составлять не менее баланса, который был у вашего валидатора, когда вы впервые создали вакантный минипул, минус небольшой буфер в 0.01 ETH для учета любых случайных пропущенных аттестаций во время обслуживания.
- Например, если у вашего валидатора был баланс Beacon Chain в 35 ETH, когда вы выполнили шаг 1, объединенные балансы Beacon Chain и минипула должны быть не менее 34.99 ETH на протяжении всей длительности проверки скраба.
- Ваш валидатор должен оставаться в статусе активного стейкинга на протяжении всей проверки скраба - он не может быть слешнут, выведен или вышел.
- Учетные данные вывода средств вашего валидатора должны быть либо исходными учетными данными ключа для вывода средств на основе BLS, либо новыми учетными данными 0x01, использующими адрес минипула. Любые другие учетные данные приведут к скрабированию минипула.
- Вам дается льготный период примерно 2 с половиной дня для выполнения изменения учетных данных вывода средств (85% от 3-дневной длительности периода скраба).
Проверка скраба является временной; вам не нужно ничего делать в это время, кроме как держать ваш валидатор онлайн и хорошо работающим.
Чтобы отслеживать, сколько времени осталось до проверки скраба, вы можете посмотреть логи node с помощью следующей команды:
Соответствующие строки будут выглядеть так:
Это будет длиться 3 дня, после чего вы прошли и можете перейти к Шагу 6 для продвижения вакантного минипула в полный.
Работа со скрабированными минипулами
Если ваш минипул, к сожалению, не проходит проверку скраба и растворяется, не волнуйтесь - ваш капитал не потерян. Растворенные вакантные минипулы по сути действуют как упрощенные адреса для вывода средств:
- Они технически не являются частью сети Rocket Pool.
- Любой капитал, депонированный в минипул, принадлежит исключительно оператору ноды. Он не делится со стейкерами пула.
- Вам не присуждается депозитный кредит за создание минипула.
Вы можете получить доступ к балансу минипула в любое время с помощью следующей команды:
Это отправит весь баланс минипула на адрес для вывода средств вашей ноды.
Когда вы вывели вашего валидатора из Beacon Chain и его полный баланс был отправлен в минипул, вы можете получить его и закрыть минипул с помощью следующей команды:
Опять же, это отправит полный баланс минипула на адрес для вывода средств вашей ноды.
Шаг 6: Продвижение минипула
Когда проверка скраба была успешно пройдена, вы можете продвинуть вакантный минипул в полный минипул. Это можно сделать двумя способами:
- Позволить процессу
nodeобработать это автоматически, как только проверка скраба закончится. - Сделать это вручную, используя CLI.
Первый метод продвинет минипул для вас автоматически, при условии, что у вас запущен процесс / контейнер node, и стоимость газа в сети ниже порога автоматических транзакций, который вы указали в процессе конфигурации Smartnode (по умолчанию 150).
В логах node вы увидите вывод, подобный следующему:
Если ваш процесс node отключен, вы можете использовать второй метод через следующую команду:
Отсюда просто выберите ваш вакантный минипул из списка минипулов, подходящих для продвижения, и отправьте транзакцию.
Получение ваших исходных вознаграждений до преобразования
После продвижения ваш минипул войдет в статус staking и официально стал обычным минипулом Rocket Pool.
Вы можете просмотреть детали с помощью этой команды:
Это покажет вам статус вашего нового минипула, его балансы, его возврат и так далее. Например:
Здесь вы можете увидеть следующую важную информацию:
Депозит нодыпоказывает, сколько ETH вы лично внесли в качестве части этого минипула (в данном случае 8 ETH).RP депозитпоказывает, сколько ETH вы взяли взаймы у стейкеров пула для создания минипула (в данном случае 24 ETH).Доступный возвратпоказывает, сколько из баланса минипула идет непосредственно вам (не делится со стейкерами пула. Это составляет все ваши вознаграждения в Beacon Chain на момент создания вакантного минипула.Баланс минипула (EL)показывает общий баланс контракта минипула.Ваша часть (EL)показывает, сколько из баланса принадлежит вам после вычитания возврата из баланса минипула. Другими словами, это ваша доля вознаграждений, которые вы заработали после создания вакантного минипула.Общие вознаграждения EL- это ваш возврат плюс ваши вознаграждения после преобразования.
Чтобы получить ваш возврат, выполните следующую команду:
Просто выберите ваш минипул из списка, одобрите транзакцию, и ваш возврат будет отправлен на адрес для вывода средств вашей ноды.
Использование кредита вашей ноды
Теперь, когда у вас есть активный продвинутый минипул, вы заметите, что у вашей ноды есть кредитный баланс, когда вы выполняете rocketpool node status:
В этом примере, поскольку мы преобразовали исходный бонд валидатора в 32 ETH в минипул на 8 ETH, мы получили 24 ETH в кредите. Этот кредит может быть использован для бесплатного создания новых минипулов и валидаторов!
Просто выполните команду rocketpool node deposit и выберите, какую сумму бонда вы хотите использовать.
Если в вашем кредитном балансе достаточно ETH для покрытия бонда, он будет использован автоматически, и вам не придется стейкать дополнительный ETH (хотя вам все равно придется платить за газ).
ETH, используемый для вашего кредитного баланса, поступает из стейкинг-пула. Если в стейкинг-пуле недостаточно ETH для покрытия вашего кредитного баланса, вы не сможете использовать его, пока не будет внесено больше ETH.