Вс. Апр 11th, 2021
DePool Specifications

Блокчейн Free TON нуждается в проверке всех созданных блоков и эту работу за вознаграждение выполняет Валидатор. Однако, чтобы им стать, требуется значительные депозиты, которые могут превышать бюджет потенциального валидатора. Смарт-контракт DePool решает эту проблему, позволяя объединять депозиты разных вкладчиков для участия в формировании блоков методом PoS.

Терминология

Elector — смарт-контракт, который проводит выборы валидатора, подсчитывает “голоса” и оглашает результаты выборов.

DePool и Elector находятся в разных системах и не могут общаться напрямую, поэтому им нужен переводчик — DePool Proxy.

Participant (участник) — помощник, спонсор-инвестор валидатора.

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

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

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

Инвестиционный раунд начинается с инвестирования стейков в DePool и закачивается когда DePool возвращает их обратно участникам.

Архитектура

Источник

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

DePool имеет ограниченное время принятия стейков — до истечения срока таймера Elector. Для вызова DePool используется контракт Timer.

DePool Helper запрашивает Timer периодически вызывать его и передает каждый вызов из Timer в DePool.

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

Когда Elector размораживает стейки валидатора, DePool возвращает свой стейк с вознаграждениями: 25% поступает на баланс кошелька Валидатора, 5% идет в сам DePool, а 70% распределяется между всеми Участниками инвестиционного раунда.

Последовательность действий

  1. Предварительное (RoundStep.Pooling) — раунд готов к приему стейков от Участников.
  2. Шаг «Ожидание запроса Elector`a» (RoundStep.WaitingValidatorRequest) — ожидание запроса на выборы с кошелька Валидатора.
  3. «Ожидание принятия стейка» (RoundStep.WaitingIfStakeAccepted) — получен запрос на выборы с кошелька Валидатора.  Теперь DePool прикрепляет стейк раунда к запросу и передает ее Elector`у и ждет ответа.
  4. «Ожидание старта валидации» (RoundStep.WaitingValidationStart) — если стейк принят, то Валидатор стал кандидатом. Elector подсчитывает голоса, чтобы узнать, выиграл ли валидатор на выборах.
  5. «Ожидание результатов выборов» (RoundStep.WaitingIfValidatorWinElections) — если валидатор побеждает на выборах, Elector оставляет стейк себе (замораживает его). Если валидатор проигрывает, то стейк возвращается обратно участнику.
  6. «Ожидание разморозки стейка» (RoundStep.WaitingUnfreeze).
  7. «Ожидание вознаграждения» (RoundStep.WaitingReward) — Elector вернул стейки DePool. Теперь DePool`у нужно попросить Elector`а, чтобы тот раздал вознаграждения Участникам.
  8. «Завершение» (RoundStep.Completing) — после обработки всех стейков раунда DePool награждает участников.
3
0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *