Приложения в ZooBC
Приложение в ZooBC — это игра или ставка, правила которой встроены в каждый узел. Каждый ход — транзакция, состояние игры хранится в цепочке, а когда игра заканчивается, выплату делает сам протокол. Ни один оператор не может отказаться платить, никакой сервер не стоит посередине, и любой может воспроизвести игру по её транзакциям.
Восемнадцать встроенных игр
| Группа | Игры (номер типа) | Места |
|---|---|---|
| Настольные игры | крестики-нолики (1), шахматы (2), «четыре в ряд» (3), шашки (4), реверси (5), гомоку (6), морской бой (7), «точки и квадраты» (8) | от 2 до 4; морской бой — ровно 2 |
| Одиночные игры против заведения | две кости (16), подбрасывание монеты (17), рулетка (18), слоты (19), лотерея (20), краш (21) | 1 |
| Игры в кости | лудо (32), свинья (33), гонка (34: «змеи и лестницы»), мини-монополия (35) | от 2 до 4 |
Любой другой тип отклоняется как неизвестный.
Всеми ими управляют шесть типов транзакций: CreateApp (24), JoinApp (25), AppMove (26), ResignApp (27), ClaimAppTimeout (28) и SettleApp (39). Ставка может быть в ZBC или в токене; тогда банк, рейк и выплата тоже в этом токене. Каждый узел проверяет каждый ход по правилам игры, и недопустимый ход отклоняется. Читать игры и играть в них можно через API любого узла (API узла) или из командной строки с помощью zbc-cli app-create, app-join, app-move, app-resign, app-claim и app-settle (инструменты командной строки).
Никакой виртуальной машины
В ZooBC нет виртуальной машины и нет транзакции, которая загружает код. Цепочки со смарт-контрактами позволяют любому развернуть новую игровую логику; в ZooBC новый вид игры означает новые правила в самом узле. Взамен правила каждой игры одинаковы на каждом узле, и ни одному приложению не нужно одобрение магазина: любая веб-страница или программа может играть через API узла.
Случайность берётся из сидов блоков, которые производитель не может выбрать (сид блока (VRF)). Каждый розыгрыш приложений хеширует сид со своей собственной меткой, «zbc-apps», поэтому игры никогда не делят случайный поток с производством блоков или лотереей coinbase.
Статьи этого раздела
- Пул приложений: бесключевой аккаунт заведения и ограничения, которые его защищают
- Одиночные ставки: ставки против заведения, их розыгрыш и таблицы выплат
- Многопользовательские приложения: настольные игры и игры в кости для 2–4 игроков
- Приложения-каналы: игры на двоих, которые идут вне цепочки и завершаются одной транзакцией
- Приложение на одной HTML-странице: создание приложения в виде одной веб-страницы
- Данные цепочки — недоверенный ввод: почему текст из цепочки — это ввод, а не указание
- Идеи проектов: что можно построить на существующих типах транзакций
См. также
Статьи по этой теме
- Данные цепочки — недоверенный ввод
Каждое название, сообщение и значение в ZooBC записал тот, кто заплатил комиссию, поэтому приложение показывает их как простой текст и никогда не выполняет как указание. - Идеи проектов
Проекты, построенные только из типов транзакций, которые каждый узел уже исполняет, — что цепочка гарантирует для каждого и что оставляет приложению. - Многопользовательские приложения
Как от двух до четырёх игроков открывают, присоединяются и играют в настольную игру или игру в кости в цепочке — с честной жеребьёвкой первого хода, часами хода и рейком 1 %. - Одиночные ставки
Как делается одиночная ставка против пула приложений, как её результат разыгрывается по сиду более позднего блока, выплачивается по таблице и ограничивается 5 % пула. - Приложение на одной HTML-странице
Практическое руководство по приложению ZooBC в виде одной веб-страницы: чтение API узла, подписание в браузере, отправка, отслеживание статуса и ограничения, которые нужно соблюдать. - Приложения-каналы
Игры на двоих, в которые играют вне цепочки подписанными ходами и завершают одной транзакцией SettleApp, которую воспроизводит каждый узел, а затем следует окно оспаривания в 240 блоков. - Пул приложений
Пул приложений — бесключевой аккаунт протокола, который выступает второй стороной каждой одиночной ставки, собирает рейк многопользовательских игр и выплачивает одиночные выигрыши.