Ср. Июл 28th, 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 не будет опубликован. Обязательные поля помечены *