Указание резервного узла

Начиная с версии 1.5.0 стека Smartnode, вы можете предоставить "резервную" пару клиента Execution и клиента Consensus, которая может взять на себя управление вашими основными клиентами, если они когда-либо отключатся (например, потому что вы используете Geth и вам нужно его обрезать). В этой ситуации ваша основная машина узла по-прежнему будет отвечать за аттестацию и предложение блоков с помощью ключей валидаторов вашего megapool, но она будет подключаться к внешней машине для взаимодействия с уровнем Execution и цепочками Beacon.

По сути, это позволяет вам временно использовать другую пару клиентов для таких вещей, как запрос цепочек, отправка транзакций и получение блоков для аттестации. Эта пара может управляться извне (как в гибридном режиме), или это может быть другой узел Rocket Pool (другая машина в режиме Docker с открытыми портами API, что мы рассмотрим ниже).

Как только основные клиенты вашего узла вернутся в сеть, Smartnode и ваш клиент Validator автоматически переключатся обратно на них.

ПРИМЕЧАНИЕ

Резервный узел не то же самое, что "резервная копия" узла. Резервные узлы имеют пару клиентов Execution и Consensus, синхронизированных с цепочкой и работающих, но они не имеют кошелька вашего узла или загруженных ключей валидаторов.

Если ваш основной узел когда-либо отключится, ваш резервный узел не начнет валидацию за вас.

Поддерживаемые клиенты

Начиная с версии v1.9.0, все наши поддерживаемые клиенты валидаторов добавили поддержку резервного узла с несколькими ограничениями:

НазваниеПоддерживает резервный узелДопустимые резервные клиенты
LighthouseДаЛюбой (защита от двойников выключена)
Lighthouse (защита от двойников включена)
NimbusДаЛюбой
PrysmДаPrysm
TekuДаЛюбой
LodestarДаЛюбой

Настройка нового узла (режим Docker)

Вы можете использовать вторую машину, которой вы владеете локально, удаленный узел, размещенный на VPS, или облачный узел в качестве резервного узла.

Этот пример показывает, как создать второй Smartnode на другой машине с использованием режима Docker, который может служить в качестве резервного узла.

СОВЕТ

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

  1. Следуйте шагам в руководстве по настройке узла (локальный или удаленный).

  2. Когда машина будет готова, установите стек Smartnode.

  3. Запустите rocketpool service config, чтобы указать, какие клиенты вы хотите использовать.

    1. Когда вы дойдете до конца мастера и он спросит, хотите ли вы просмотреть свои настройки, выберите Yes.
    2. Войдите в настройки Execution Client.
    3. Установите флажок Expose RPC Ports:
    1. Вернитесь назад и войдите в настройки Consensus Client. 5. Установите флажок Expose API Port (и, если вы используете Prysm, флажок Expose RPC Port также):
    1. Сохраните настройки и запустите Smartnode.
  4. Перейдите к руководству Защита вашего узла, чтобы настроить SSH и правильную политику безопасности на нем.

    1. Если у вас установлен ufw, вам нужно будет добавить правила для разрешения входящего трафика на порты API (по умолчанию 8545, 8546 и 5052; также 5053, если вы используете Prysm).
  5. Вот и все! Вы можете остановиться здесь.

ПРИМЕЧАНИЕ

Не создавайте кошелек с помощью rocketpool wallet init или не восстанавливайте свой старый кошелек. Оставьте этот узел без кошелька и без ключей валидаторов.

Его единственная задача - иметь синхронизированный клиент Execution и клиент Consensus.

Подключение основного узла к резервному узлу

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

  1. Войдите в TUI rocketpool service config и войдите в настройки Fallback Clients.
  2. Установите флажок Use Fallback Clients.
  3. Введите URL RPC для вашего клиента Execution в поле Execution Client URL. Например, если IP-адрес вашего резервного узла - 192.168.1.45, и ваш клиент Execution находится на порту по умолчанию 8545, вы введете http://192.168.1.45:8545 здесь.
  4. Сделайте то же самое для URL RPC вашего резервного клиента Consensus. Следуя тому же примеру, если он находится на порту по умолчанию 5052, вы введете http://192.168.1.45:5052 здесь.

Финальная страница должна выглядеть так:

ПРИМЕЧАНИЕ

Пользователи нативного режима могут следовать тем же шагам, хотя TUI будет выглядеть немного иначе, чем на скриншоте выше.

Обратите внимание, что это предоставит поддержку резервного узла только самому Smartnode (службе демона); вам придется вручную обновить аргументы службы вашего клиента Validator, чтобы предоставить ей доступ к резервным клиентам.

Нажмите enter на финальном поле, чтобы убедиться, что оно подтверждено, затем сохраните настройки и примените изменения.

После их применения вы можете подтвердить доступность вашего резервного узла с помощью команды rocketpool node sync:

Your Smartnode is currently using the Ethereum Mainnet.

Your eth2 client is on the correct network.

Your primary execution client is fully synced.
Your fallback execution client is fully synced.
Your primary consensus client is fully synced.
Your fallback consensus client is fully synced.

Если показано, что оба резервных клиента Execution и Consensus синхронизированы, то всё готово!

Тестирование резервных клиентов

Если вы хотите быть абсолютно уверены, что ваша конфигурация будет работать, протестировав резервные клиенты, просто остановите клиенты Execution и Consensus на вашем основном узле:

docker stop rocketpool_eth1 rocketpool_eth2

Затем запустите любую команду, которая запрашивает цепочку, например rocketpool network stats. Вы увидите предупреждающее сообщение наверху, указывающее, что один (или оба) из ваших основных клиентов отключены, и что происходит переключение на резервные клиенты:

NOTE: primary clients are not ready, using fallback clients...
 Primary EC status: unavailable (Sync progress check failed with [Post "http://eth1:8545": dial tcp: lookup eth1 on 127.0.0.11:53: no such host])
 Primary CC status: unavailable (Sync progress check failed with [Could not get node sync status: Get "http://eth2:5052/eth/v1/node/syncing": dial tcp: lookup eth2 on 127.0.0.11:53: no such host])

========== General Stats ==========
Total Value Locked:          1196.926316 ETH
Deposit Pool Balance:        23.586761 ETH
Minipool Queue Demand:       0.000000 ETH
Deposit Pool ETH Used:       6.809609%

============== Nodes ==============
Current Commission Rate:     5.000000%
Node Count:                  16
Active Minipools:            36
    Initialized:             0
    Prelaunch:               0
    Staking:                 36
    Withdrawable:            0
    Dissolved:               0
Finalized Minipools:         30

=========== Megapools ============
Megapool contracts deployed: 10
Total megapool validators:  86
     Staking:                51
     In Prestake:            6
     In Queue:               10
     Exited:                 14
     Locked:                 1
     Exiting:                2
     Dissolved:              2

========== Smoothing Pool =========
Contract Address:            0xE8D1136ac49DBe6ac8f299130253004DC63841a1
Nodes Opted in:              3
Pending Balance:             0.000000

============== Tokens =============
rETH Price (ETH / rETH):     1.185477 ETH
RPL Price (ETH / RPL):       0.000639 ETH
Total RPL staked:            33406.127068 RPL
Total Megapool RPL staked:   11406.127068 RPL
Total Legacy RPL staked:     22000.000000 RPL

Наконец, снова запустите ваши основные клиенты:

docker start rocketpool_eth1 rocketpool_eth2

И всё готово! Ваша резервная настройка работает.

Следующие шаги

Независимо от того, выбрали ли вы создание и/или запуск резервного узла для вашей настройки, следующий шаг - узнать о комиссиях за приоритет. Нажмите на следующий раздел руководства, когда будете готовы продолжить.