Стэйкинг
По умолчанию у вашего валидатора не будет доли. Это означает, что он не сможет стать лидером.
Мониторинг наверстывания
Чтобы делегировать долю, сначала убедитесь, что ваш валидатор работает и догнал кластер. Может потребоваться некоторое время, чтобы наверстать упущенное после загрузки вашего валидатора.
Используйте команду catchup
для мониторинга вашего валидатора в ходе этого процесса:
solana catchup ~/validator-keypair.json
Пока ваш валидатор не подтянется, он не сможет успешно проголосовать и делегировать ему ставку.
Кроме того, если вы обнаружите, что слот кластера продвигается быстрее, чем ваш, вы, вероятно, никогда не догоните его. Обычно это подразумевает какую-то проблему с сетью между вашим валидатором и остальной частью кластера.
Создать пару ключей доли
Если вы еще этого не сделали, создайте пару ключей для ставок. Если вы выполнили этот шаг, вы должны увидеть «validator-stake-keypair.json» в каталоге среды выполнения Solana.
solana-keygen new -o ~/validator-stake-keypair.json
Делегировать ставку
Теперь делегируйте 1 SOL вашему валидатору, предварительно создав свою учетную запись:
solana create-stake-account ~/validator-stake-keypair.json 1
а затем делегировать эту долю вашему валидатору:
solana delegate-stake ~/validator-stake-keypair.json ~/vote-account-keypair.json
Не делегируйте оставшийся SOL, так как ваш валидатор будет использовать эти токены для голосования.
Ставки могут быть повторно делегированы другому узлу в любое время с помощью той же команды, но разрешено только одно повторное делегирование в каждую эпоху:
solana delegate-stake ~/validator-stake-keypair.json ~/some-other-vote-account-keypair.json
Предполагая, что узел голосует, теперь вы готовы к работе и генерируете вознаграждение валидатора. Награды выплачиваются автоматически на границах эпох.
Награды, полученные лампортами, распределяются между вашей учетной записью доли и учетной записью для голосования в соответствии с комиссией, установленной в учетной записи для голосования. Вознаграждения можно получить только тогда, когда валидатор запущен и работает. Кроме того, после стейкинга валидатор становится важной частью сети. Чтобы безопасно удалить валидатора из сети, сначала деактивируйте его стейк.
Ожидается, что в конце каждого слота валидатор отправит транзакцию голосования. Эти голосовые транзакции оплачиваются лампортами из учетной записи удостоверения личности валидатора.
Это обычная транзакция, поэтому будет применяться стандартная комиссия за транзакцию. Диапазон комиссии за транзакцию определяется блоком генезиса. Фактическая комиссия будет колебаться в зависимости от загрузки транзакции. Вы можете определить текущую комиссию через RPC API «getRecentBlockhash» перед отправкой транзакции.
Узнайте больше о комиссиях за транзакции здесь.
Разогрев доли валидатора
Чтобы бороться с различными атаками на консенсус, делегирование новых кольев подлежит разминке.
Следите за ставкой валидатора во время прогрева:
- Просмотрите свою учетную запись для голосования:
solana voice-account ~/vote-account-keypair.json
Здесь отображается текущее состояние всех голосов, отправленных валидатором в сеть. - Просмотрите свою учетную запись доли, предпочтения делегирования и сведения о вашей ставке:
солана стейк-аккаунт ~/validator-stake-keypair.json
солана валидаторы
отображает текущую активную ставку всех валидаторов, в том числе и вашего- «История кольев Солана» показывает историю нагрева и остывания кола в последние эпохи.
- Найдите сообщения в журнале вашего валидатора, указывающие на ваш следующий слот лидера:
[2019-09-27T20:16:00.319721164Z INFO solana_core::replay_stage] <VALIDATOR_IDENTITY_PUBKEY> проголосовал и сбросил PoH на высоте тика ####. Мой следующий слот лидера - ####
- Как только ваша ставка будет разогрета, вы увидите баланс ставки, указанный для вашего валидатора, запустив
solana validators
Отслеживайте свой стейкинг-валидатор
Подтвердите, что ваш валидатор становится лидером
- После того, как ваш валидатор пойман, используйте команду
solana balance
для отслеживания доходов, поскольку ваш валидатор выбран в качестве лидера и собирает комиссию за транзакции. - Узлы Solana предлагают ряд полезных методов JSON-RPC для возврата информации о сети и участии вашего валидатора. Сделайте запрос с помощью curl(или другого http-клиента по вашему выбору), указав нужный метод в данных в формате JSON-RPC. Например:
// Request
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1, "method":"getEpochInfo"}' http://localhost:8899
// Result
{"jsonrpc":"2.0","result":{"epoch":3,"slotIndex":126,"slotsInEpoch":256},"id":1}
Полезные методы JSON-RPC:
getEpochInfo
Эпоха – это время, т.е. количество слотов, для которых [лидерное расписание](../ termology.md#leader-schedule) действителен. Это скажет вам, что такое текущая эпоха и как далеко в ней находится кластер.getVoteAccounts
Это скажет вам, сколько активной доли у вашего валидатора в настоящее время. % ставки валидатора активируется на границе эпохи. Вы можете узнать больше о стекинге на Solana здесь.getLeaderSchedule
В любой момент сеть ожидает, что только один валидатор создаст записи в бухгалтерской книге. Валидатор, выбранный в настоящее время для создания записей реестра называется «лидером». Это вернет полное расписание лидера (на основе слота за слотом) для текущей активированной доли, публичный ключ идентификации будет отображаться здесь 1 или более раз.
Деактивация ставки
Прежде чем отсоединить ваш валидатор от кластера, вы должны деактивировать ранее делегированный стейк, выполнив:
solana deactivate-stake ~/validator-stake-keypair.json
Ставка не деактивируется сразу, а вместо этого остывает так же, как разогревается. Ваш валидатор должен оставаться подключенным к кластеру, пока ставка остывает. Во время охлаждения ваша ставка будет продолжать приносить вознаграждение. Только после остывания стейка можно безопасно отключить валидатор или вывести его из сети. Перезарядка может занять несколько эпох, в зависимости от активной ставки и размера вашей ставки.
Обратите внимание, что учетную запись для ставок можно использовать только один раз, поэтому после деактивации используйте команду cli withdraw-stake
для восстановления ранее поставленных лампортов.