Система "Лотерея"¶
Система "лотерея" используется в случаях, когда трафик оплачивается не пользователями, а контент-провайдерами либо бродкастерами. Это возможно в таких случаях:
- просмотр контента в персонифицированном премиум пуле с использованием токенов контент провайдера
- просмотр платного контента во всех других случаях при условии, что бродкастер указал в настройках биллинга, что он будет оплачивать трафик
В такой схеме узлы, отдающие трафик, получают вознаграждение не напрямую (как при обычных расчетах за трафик), а по системе "лотерея", описанной в этом разделе. Такая архитектура минимизирует риски накрутки со стороны отдающих узлов.
Алгоритм¶
Система "Лотерея" выполняет розыгрыш вознаграждения между пользователями, которые активно отдавали трафик:
- в розыгрыше принимают участие пользователи, которые отдали как минимум 1 Гб трафика
- за каждый 1 Гб отданного трафика участник получает 1 лот
- раз в 28 дней запускается лотерея - это смарт-контракт Reward Uploaders, который выбирает случайным образом выигрышные лоты и перечисляет им вознаграждение
-
максимальное количество лотов на одного пользователя рассчитывается по формуле:
maxLots = accessPrice / trafficPrice
где:
accessPrice
- стоимость доступа к контенту, в стейблкоинахtrafficPrice
- стоимость 1 Гб трафика в стейблкоинах (текущая - 0,01$ за 1 ГБ)
-
коэффициент выигрыша составляет 1:100:
- выигрышным является каждый сотый лот
- выигрышный лот получает вознаграждение, эквивалентное 100 Гб трафика
- коэффициент выигрыша может быть изменен владельцам премиум пула
Техническая реализация¶
Средства для распределения лотереей аккумулируются в основном блокчейне в пуле вознаграждений (uploadersRewardPool
) - это поле, привязанное к аккаунта бродкастера, пулу бродкастеров либо подписке. Пул вознаграждений пополняется системой учета трафика и времени - в момент оплаты трафика бродкастером либо контент-провайдером токены AceByte переводятся в этот пул. Содержимое этого пула распределяется между победителями в момент запуска лотереи.
Данные для формирования лотов хранятся в пуле вознаграждений в виде списка пар "userAccount → trafficAmount" (количество отданных единиц трафика для каждого пользователя).