Skip to content

Instantly share code, notes, and snippets.

@Sparke2
Last active July 22, 2018 03:15
Show Gist options
  • Save Sparke2/297216e791f38458706731233f2108ba to your computer and use it in GitHub Desktop.
Save Sparke2/297216e791f38458706731233f2108ba to your computer and use it in GitHub Desktop.

Протокол Cold Staking в Callisto Network

Определение

Cold Staking - это протокол, который вознаграждает долгосрочных держателей монет за то, что они держат свои монеты.

*Cold Staking не связан с Proof of Stake. Это не механизм консенсуса. У Cold Staking нет прав на создание блоков или подтверждение транзакций. Они просто получают вознаграждение за то, что держат свои монеты.

Реализация

Протокол Calisto Cold Staking написан в Solidity смарт-контрактах. Исходный код можно найти здесь. Контракт Cold Staking постоянно получает процент вознаграждений за майнинг и распределяет это количество CLO между держателями пропорционально их доле.

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

Следующий свод правил определяет рабочий процесс контракта Cold Staking:

  • Контракт позволяет любому адресу стать Cold Staker (держателем), сдав на хранение CLO.
  • После того, как владелец адреса отложил CLO в Cold Staking, средства блокируются в течение определенного периода времени (приблизительно 1 месяц).
  • Держатель не может получить доступ к своим средствам в течение периода блокировки. По истечении периода блокировки он может в любое время снять вознаграждение и долю.
  • Чем дольше держать, тем выше награда. Например, держатель, который оставил свои монеты для Cold Staking в течение 2 месяцев, получит примерно 2 раза больше вознаграждения, чем если бы он оставил свои монеты в течение 1 месяца. ПРИМЕЧАНИЕ. Минимальный период времени, требуемый для получения первого вознаграждения, составляет 1 месяц
  • После того как период блокировки прошел, у держателя есть два варианта: (1) потребовать вознаграждение и продолжить держать долю, таким образом снова заблокировать свои средства в течение 1 месяца или (2) потребовать вознаграждение и снять долю.
  • Чем более активные держатели в настоящее время «держат», тем меньше вознаграждение каждого держателя и наоборот.
  • Если держатель неактивен в течение определенного периода времени (приблизительно 1 год), то он считается неактивным и удаляются из контракта Cold Staking. Деньги возвращаются обратно на адрес Cold Staking, а вознаграждение не выплачивается.
  • Держатель НЕ ДОЛЖЕН вносить средства в контракт Cold Staking в период блокировки. Внесение средств приведет к повторной инициализации контракта и возобновлению периода блокировки.
  • Каждый держатель может самостоятельно заявить о своей награде в любое время после периода блокировки. Вознаграждение зависит от количества CLO, которые в настоящее время находятся в контракте Cold Staking. В результате награда каждого держателя зависит от «требований» других держателей. Мы полагаем, что при достаточно высоком распределении «требований» со временем держатели имеют высокую вероятность получения вознаграждения, близкого к ожидаемому. ( «требование» — заявление на вознаграждение.)
  • Не существует минимального значения входа в Cold Staking. Тем не менее, внесение средств в контракт Cold Staking и требование вознаграждения, требуют оплаты транзакций. Вложение с очень небольшим депозитом может не покрывать ваши транзакционные сборы.
  • Держатель может делать ставки только с их депозитным адресом. Нет возможности указать вознаграждение на чужой адрес или предоставить кому-либо разрешение на получение вознаграждения от вашего имени.
  • Держатель не должен запускать ноду, чтобы заниматься Cold Staking. Нужно всего лишь дважды ссылаться на контракт Cold Staking: внести депозит и потребовать вознаграждение. ClassicEtherWallet достаточно для этой процедуры.

Нижеследующая формула определяет расчет Cold Staking вознаграждения:

Расчёт награды за Cold Staking Где :

  • staking pool — баланс контракта Cold Staking на момент подачи заявки
  • current block — номер блока транзакции
  • init block — это количество блоков, на которых держатель сделал депозит.
  • round interval — продолжительность периода блокировки (в блоках по умолчанию = 172 800)
  • staker weight — депозит держателя
  • network weight — общая сумма активных балансов

Источник: https://news.callisto.network/callisto-network-cold-staking-protocol/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment