Пул номинаторов
Эта страница переведена сообществом на русский язык, но нуждается в улучшениях. Если вы хотите принять участие в переводе свяжитесь с @alexgton.
Смарт-контракт Пул номинаторов, предоставляет возможность одному или нескольким номинаторам одолжить Toncoin для ставки валидатору и гарантирует, что валидатор может использовать эти Toncoin только для валидации. Кроме того, смарт-контракт гарантирует распределение вознаграждения.
Архитектура
Ограничения
Этот пул предназначен для большого объема монет.
Во время разработки главным критерием была безопасность и простота кода.
Пул не поддерживает малые депозиты или большое количество номинаторов в одном пуле.
Целевая тестируемая конфигурация: минимальная ставка номинатора – 10 000 TON, максимальное количество номинаторов в пуле – 40.
Количество номинаторов выше 40 не тестировалось, и мы настоятельно не рекомендуем устанавливать число выше 40 до тех пор, пока такие тесты не будут проведены.
Комиссии
Так как пул расположен в мастерчейне, где плата за услуги высока, для работы пула потребуется около 5 TON за раунд валидации.
Операционные сборы оплачивает валидатор.
Обратите внимание, что на балансе пула всегда должно быть 10 TON – это минимальный баланс для оплаты сетевого хранилища. 10 TON не могут быть выведены.
Распределение вознаграждений
Для каждого раунда валидации пул отправляет ставку смарт-контракту Избирателя.
После завершения раунда проверки пул возвращает свои средства Избирателю.
Обычно полученная сумма больше, чем отправленная, а разница является вознаграждением за валидацию.
Валидатор получает часть вознаграждения в соответствии с неизменяемым параметром пула validator_reward_share
.
validator_reward = (reward * validator_reward_share) / 10000;
nominators_reward = reward - validator_reward;
Номинаторы делят оставшееся вознаграждение в соответствии с размером своих ставок.
Например, если в пуле есть два номинатора со ставками 100 000 и 300 000 TON, то первый из них получит 25%, а второй – 75% от nominators_reward
.
Сокращение пула номинаторов
В случае большого штрафа за валидацию, когда полученная сумма меньше отправленной, убыток списывается из средств валидатора.
Если средств валидатора недостаточно, то недостающая сумма будет вычтена у номинаторов пропорционально их ставкам.
Обратите внимание, что смарт-контракт пула номинаторов разработан таким образом, чтобы средств валидатора всегда было достаточно для покрытия максимального штрафа.
Ответственность валидатора
Пул может принимать участие в валидации только в том случае, если средства валидатора превышают неизменяемый параметр пула min_validator_stake
.
Кроме того, средства валидатора должны превышать максимально возможный штраф за плохую валидацию. Рекомендуемый штраф рассчитывается в зависимости от конфигурации сети.
В противном случае пул не будет отправлять запросы на участие в раунде валидации.
Сообщения номинаторов
Чтобы взаимодействовать с пулом номинаторов, номинаторы отправляют простые сообщения с текстовым комментарием (можно отправить из любого приложения кошелька) смарт-контракту пула номинаторов.
Сообщения должны отправляться в режиме возврата!
В случае опечатки или недействительного сообщения, оно вернется к отправителю.
Если вы отправите сообщение с опечаткой или недействительное сообщение в невозвратном режиме, то потеряете монеты.
Депозит номинатора
Для того чтобы номинатор смог внести депозит, ему нужно отправить сообщение смарт-контракту пул номинатора, содержащее TON и текстовый комментарий "d
".
Номинатор может отправить сообщение только с кошелька, расположенного в basechain (с необработанным адресом 0:...
).
Количество TON должно быть больше или равно min_nominator_stake + 1 TON
.
При внесении депозита 1 TON вычитается в качестве комиссии за обработку депозита.
Если пул в данный момент не участвует в валидации (state == 0
), то депозит будет зачислен немедленно.
Если же пул в данный момент участвует в валидации (state != 0
), то сумма депозита будет добавлена к pending_deposit_amount
номинатора и будет зачислена после завершения текущего раунда валидации.
Впоследствии номинатор может отправить больше TON, чтобы увеличить свой депозит.
Обратите внимание, если пул номинаторов уже достиг количества, равного max_nominators_count
, то депозиты от новых номинаторов будут отклонены (вернутся обратно к отправителю).
Вывод средств номинатора
Для вывода средств номинатор должен отправить смарт-контракту пул номинатора сообщение, содержащее текстовый комментарий "w" и некоторое количество Toncoin для оплаты комиссии сети (достаточно 1 TON). Неизрасходованные TON, прикрепленные к сообщению, будут возвращены, за исключением очень редких случаев.
Если на балансе пула номинаторов достаточно TON, вывод средств будет произведен немедленно. Все средства будут на балансе пула номинаторов, если он завершил участие в раунде валидации, но еще не подал заявку на участие в новом раунде.
Если на балансе пула номинаторов недостаточно Toncoin, то для номинатора будет выполнен запрос withdraw_request
и Toncoin будут выведены после окончания текущего раунда валидации.
Номинатор может вывести все свои средства только за один раз. Частичный вывод не поддерживается.
Вывод средств валидатора
Валидатор может вывести из пула все Toncoin, которые не принадлежат номинаторам.
Участники должны хранить свои закрытые ключи
Если номинатор потеряет доступ к своему кошельку, с которого он вносил депозит, то не сможет вывести свои средства из пула.
Если валидатор потеряет доступ к своему кошельку, то не сможет вывести свои средства (валидатора) из пула.
Потеря закрытого ключа кошелька одного участника пула не влияет на других участников.
Экстренный вывод средств
При нормальной работе валидатор должен периодически отправлять в пул номинаторов операционные сообщения, такие как: process withdraw requests
, update current validator set
, new_stake
, recover_stake
.
Программа-валидатор MyTonCtrl делает это автоматически.
В экстренной ситуации, например, если валидатор пропадает и перестает выполнять свои обязанности, операционные сообщения может отправить любой участник и, таким образом, номинаторы смогут вывести свои средства.
Голосование за предложения по конфигурации сети
В TON изменение конфигурации сети происходит путем [голосования валидаторов] (/v3/documentation/smart-contracts/contracts-specs/governance#proposalvoting-mechanism).
В случае с пулом номинаторов имеет смысл, чтобы все участники могли голосовать, а окончательный результат был бы отправлен от имени пула.
Таким образом, смарт-контракт пула номинаторов имеет встроенную функциональность, где валидатор и номинаторы могут оставить свой голос за/против конкретного предложения.
В рамках такого голосования валидатор отправляет финальный голос смарт-контракту конфигурации сети через программное обеспечение валидатора.
Если валидатор отправил финальный голос смарт-контракту конфигурации сети, и голос не совпал с мнением большинства в пуле, то в таком случае номинаторы могут покинуть (и покинут) этот пул и перейти в другой.
Поскольку все происходит через транзакции on-chain, такое несоответствие будет храниться в блокчейне и будет доступно всем для обзора.
Голосование номинатора
Каждое новое предложение по изменению конфигурации сети изначально публикуется на каналах TON Foundation @tonblockchain или @tonstatus.
В этом сообщении, помимо описания предложения, будет указан его хэш в HEX-формате, например, D855FFBCF813E50E10BEAB902D1177529CE79785CAE913EB96A72AE8EFBCBF47
.
Для того чтобы номинатор проголосовал за предложение, ему нужно отправить сообщение смарт-контракту пула номинаторов с текстовым комментарием y<HASH>
.
Для того чтобы номинатор проголосовал против предложения, ему нужно отправить сообщение смарт-контракту пула номинаторов с текстовым комментарием n<HASH>
.
К этому сообщению должно быть прикреплено некоторое количество Toncoin для оплаты комиссии сети (достаточно 1 TON). Неизрасходованные TON, прикрепленные к сообщению, будут возвращены.
Голоса хранятся в контракте пула в течение 30 дней.
Голосовать могут только валидатор и текущие номинаторы, имеющие активную ставку в пуле.