Pull to refresh

Comments 28

Правильно ли я понимаю, что каждый ход игры это некая транзакция в блокчейне, которая потом исполняется валидаторами об смартконтракт?

Ага, значит поэтому блокчейн весит уже 4,3Тб.

Вы так пишете, как будто это что-то плохое. :) Дело же не в размере, а в том, если ли защита от спама данными. В Near для этого есть интересное решение Storage Staking.

В рамках моей имплементации, в контракте хранится только текущее состояние игры, а не каждый ход. Также никто не мешает удалять старые игры совсем. Пока они оставлены лишь для того, чтобы просигнализировать игрокам о результате игры.

Там очень плохо данные представлены, поэтому та же полная архивная нода Эфира давно за 10Тб перевалила.

Если переработать представление данных то получается в 10 раз меньше.

См. проект Erigon

Что мешает подключить к акку шашечного-бота, чтоб он доил доверчивых людей, пожелавших сыграть в ваши шашки?

Да, такой сценарий возможен. Отмечу лишь, что в децентрализованной среде таким ботам будет чуть сложнее выживать, так как можно заранее посмотреть достоверную статистику соперника и историю транзакций по его аккаунту, чтобы распознать потенциального бота. Либо можно изначально создать предложение сыграть конкретному блокчейн-аккаунту (этого нет на UI, но я сразу добавил в код).

Спасибо за статью, полезно. Закинул в закладки, буду разбирать контракт по кусочкам, много есть моментов, которые пригодятся.
Очень понравилась фишка с генерируемым css на основе NFT :-)

Игра сама ведь проходит не в блокчейне NEAR? Сама игра происходит в браузере. А вот **ядро** игры (данные, ходы) хранятся уже в блокчейне?

Точно также как все другие *игры на блокчейне*, в любых други блокчейнах, верно?

В моем примере вся игра происходит на блокчейне, "браузер" (игрок) лишь посылает ход, а "ядро" (смарт-контракт) решает, валидный ли это ход, и что случается с игрой после данного хода.

Но, увы, далеко не все игры на блокчейне работают именно так.

Не все, есть блокчейны, где код интерфейсной части хранится тоже на блокчейне (HTML,JS, CSS), а отображение в кошельках (десктопе, мобильном, веб). Но таких блокчейнов мало и они не известны.Например вот такая есть игра: https://terawallet.org/dapp/156#idMap1

Огромная благодарность. И за статью и за проект.

Буду разбираться

Проще всего было поиграться с примерами кода, near.dev - так и втянулся, потом на хакатон их сходил

Там не описано, что и как компилировать, и как потом всё вместе это запустить, особенно UI. Как это сделать?

Также, в UI нигде нет обращения к чему-то похожему на wasm вообще. Как это тогда работает тогда? Где в UI используются эти скопилированные wasm-библиотеки из проэкта near-checkers/?

UI - это просто статические html и js файлы, их достаточно просто скопировать на веб-сервер или открыть локально. Они обращаются к блокчейну через js-библиотеку near-api-js, в статье я это описывал.

Чтобы поместить wasm-файл собранный из Rust-кода в блокчейн, надо сделать deploy.

"Также, в UI нигде нет обращения к чему-то похожему на wasm вообще. Как
это тогда работает тогда? Где в UI используются эти скопилированные
wasm-библиотеки из проэкта near-checkers/?"

Для такого рода блокчейн игр единственный способ взаимодействовать с блокчейном - это использовать какой-то централизованный сервис-шлюз, как например тут https://rpc.mainnet.near.org - да? Потому что как иначе браузер будет взаимодействовать с блокчейном.

Можно поднять свою rpc-ноду, можно использовать альтернативные rpc, например, от Ankr

А я что пишу?

Ankr, или даже своя rpc-нода будет не что иное, как централизованный сервис-шлюз для доступа к блокчейну

Я правильно понимаю, что для того, чтобы поиграть друг с другом, игрокам нужно будет оплачивать газ за каждый свой ход?

Да, тут любой компромисс в этом уже создает некий источник доверия, поэтому, вероятно, теряется смысл всей затеи

В предпоследнем предложении статьи есть мой телеграм

В шашках ничья бывает, что у вас с этим?

у кого именно? как я упоминал в статье, я не писал сам движок шашек, а взял готовый код. Кажется, в нем нет ничьи.

Sign up to leave a comment.

Articles