Loser Game — это игра на платформах Golos, Steem и Viz. Она основана на случайных числах и механизмах перевода токенов, где участники делают ставки, и по итогам раунда выигрывают или проигрывают в зависимости от результатов случайной генерации.
Каждый раунд игры начинается с того, что участники делают ставки в токенах. Как только собираются три участника, генерируется случайное число от 0 до 2. Участник, чья ставка соответствует сгенерированному числу, проигрывает, а остальные получают часть общей суммы ставок. Все данные о ставках и результатах фиксируются в блокчейне для обеспечения прозрачности и честности игры.
- index.js: основной файл плагина для Golos, Steem и Viz, инициализирующий работу и содержащий логику обработки блоков.
- config.json: файл конфигурации с параметрами игры и учетными данными.
- helpers.js: вспомогательные функции для выполнения часто используемых задач.
- methods.js: функции для взаимодействия с блокчейном и выполнения операций перевода.
- blocksdb.js: модуль для работы с базой данных блоков.
- amountsdb.js: модуль для отслеживания активных ставок.
- finisheddb.js: модуль для хранения данных о завершенных раундах.
- processBlock(bn): обрабатывает блоки и реализует логику игры, включая проверки ставок, распределение выигрышей и обновление базы данных.
- getNullTransfers(): основной цикл, следящий за новыми блоками и инициирующий их обработку.
- isActivePlugin(): проверяет активность плагина и запускает обработку новых транзакций.
- forPage(rounds_type): возвращает данные о текущих или завершенных раундах в формате JSON для использования в веб-приложении.
- servicePost(): обновляет информацию о текущих раундах и публикует ее в виде постов.
- finishedRounds(): собирает и публикует информацию о завершенных раундах.
-
Клонируйте репозиторий:
git clone https://github.com/denis-skripnik/loser-game cd loser-game -
Установите зависимости:
npm install
-
Настройте файл
config.jsonс необходимыми параметрами. -
Запустите главный файл:
node loser.js
Приложение работает в фоновом режиме, автоматически обрабатывая ставки и обновляя информацию о раундах. Веб-интерфейс предоставляет API для доступа к данным о текущих и завершенных раундах.
Доступ к данным осуществляется через HTTP GET запросы к /loser-game/?chain=<тип_цепочки>&type=<тип_раундов>, где <тип_цепочки> может быть golos, steem или viz, а <тип_раундов> может быть active для активных раундов или finished для завершенных.