Недавно мы опубликовали статью на тему производительности сети и токеномики во время второй волны Тестнета Sui. Эта волна помогла нам проверить работоспособность Sui при таких нагрузках, как майнинг 3,24 млн NFT и 7,35 млн стейкинговых транзакций за три недели работы. Токеномика была особенно интересна во время 2 волны, так как мы доказали, что система имеет низкую, предсказуемую комиссию за газ.
Теперь давайте рассмотрим игру Frenemies, которую мы запустили во время волны 2, чтобы сообщество помогло нам протестировать функциональность стейкинга. В игре Frenemies игроки стейкали токены для поддержки данного ему валидатора, и в зависимости от успеха своего валидатора зарабатывали очки. В таблице лидеров отображались игроки, набравшие наибольшее количество очков.
Результаты игры Frenemies, в которой приняли участие более 700 000 игроков, были просто потрясающими. Самое важное, что мы узнали, — это способность Sui к масштабированию, что позволяет поддерживать постоянный рост после выхода в майннет.
Мы разработали развлекательную и соревновательную игру, которая в то же время дает ценные знания о функциональности стейкинга. Участвуя во Frenemies, игроки узнали о принципе работы стейкинга и помогли повысить общую безопасность и стабильность Sui.
Технология Frenemies
Демонстрируя сильные стороны Суи, игра Frenemies позволила более 700 000 игрокам застейкать токены 41 валидатору и разработать стратегии для повышения своего рейтинга. При этом игра состояла в основном из двух компонентов — смарт-контрактов и веб-приложения.
Компонент смарт-контрактов взаимодействовал со смарт-контрактами, выполняющими команды стейкинга в сети. Он также отслеживал результаты игроков и статус в таблице лидеров.
Веб-интерфейс Frenemies взаимодействует со смарт-контрактами, позволяя игрокам участвовать в игре не имея углубленных технических знаний. При создании этого приложения мы перепробовали несколько вариантов, стремясь найти баланс между простотой использования и информативностью, стараясь сделать игру увлекательной и не требующей длительного обучения. Например, в более поздних версиях приложения были добавлены логотипы валидаторов и отображалось количество застейканных токенов в валидаторов, рассчитываемые в режиме реального времени.
В процессе игры мы обнаружили необходимость в нескольких исправлениях на уровне смарт-контракта. Таблица очков не отличалась высокой производительностью и нуждалась в оптимизации. Мы также перенесли Frenemies на фулл ноду, чтобы она могла справиться с нагрузкой.
Особенности игры
Игра Frenemies зародилась как простая идея геймификации стейкинга. По мере развития идеи обеспечение игрового баланса стало главной задачей. Нам пришлось делать выбор в пользу таких аспектов игры, как цели и задания игроков. Хотя игра предназначалась для тестирования стейкинга в сети Sui, мы также хотели, чтобы она была увлекательной.
Три основных цели
В Frenemies игрокам отводится одна из трех ролей: Friend (друг), Neutral (нейтрал) или Enemy (враг). Мы обсуждали, не слишком ли много или недостаточно трех ролей, и даже смоделировали игру в электронной таблице, чтобы имитировать несколько раундов игры. В результате мы выяснили, что наиболее интересные события в игре происходят в пределах эпох и в таблице лидеров валидаторов.
Например, игроки быстро поняли, что оптимальная стратегия — скрыть или даже подделать свою роль, чтобы лишить других игроков информации. Участники часто дожидались последнего момента раунда, чтобы сделать свой ход, или стейкали не в своих, а во вражеских валидаторов, чтобы ввести в заблуждение других игроков. Тестировщики также поняли, что стейкинг во врага своего врага, другого валидатора, находящегося на грани перемещения в таблице лидеров, была оптимальной стратегией для достижения желаемого результата.
По ходу тестирования мы заметили, что три — это оптимальное количество ролей. Два не привели бы к маргинальным позициям в таблице лидеров, которые вносят напряженность в игру, а четыре — слишком много, чтобы донести информацию до игроков.
Случайный валидатор и назначение Round Robin
Для достижения успеха в игре Frenemies необходимо было обеспечить высокую активность валидаторов. Параллельно с Frenemies, валидаторы играли в свою собственную игру во время 2-й волны, поэтому мы хотели, чтобы активность стейкинга была распределена между всеми валидаторами. Поэтому мы рандомизировали распределение игроков между валидаторами, чтобы гарантировать, что каждый валидатор имеет часть игроков Frenemies, работающих на них в течение каждой эпохи.
Наиболее интересным оказалось распределение ролей. Мы рассматривали возможность случайного распределения, но быстро поняли, что количество Friends, Neutrals и Enemies может быть неравномерным, или, что еще хуже, все игроки, назначенные на одного валидатора, могут иметь схожую роль. Чтобы обеспечить равномерное соотношение активности при стейкинге и анстейкинге, а также дать каждому игроку возможность сыграть против кого-то другого, мы распределяли роли по кругу. Этот метод также гарантировал, что каждый игрок сможет поэкспериментировать с различными стратегиями, так как они чередовали роли Друга, Нейтрала и Врага.
Итоги
Реакция сообщества на Frenemies превзошла все наши ожидания. Мы привлекли более 700 000 игроков, которые смогли принять участие в основной деятельности по управлению сетью с делегированным Proof-of-Stake. Учитывая, что изначально наша цель заключалась в том, чтобы создать масштабную активность стейкинга и понаблюдать за работой валидаторов и сети в ответ на большие изменения в стейках SUI, такой объем участия сообщества превзошел все наши ожидания.
Мы наблюдали массовый отклик сообщества не только в количестве пользователей, но и в активности на чейне. Во время запуска Frenemies мы наблюдали огромный всплеск газа — полезного показателя сетевых транзакций. Благодаря такому объему транзакций мы можем делать уверенные прогнозы относительно производительности Sui в широких масштабах, и мы очень довольны результатами.
Спасибо каждому участнику сообщества, принявшему участие в игре Frenemies. Мы воодушевлены участием сообщества и рады пригласить всех вас принять участие в следующих этапах нашего путешествия!