Котики Эфириум (Ethereum Cryptokitties) – что это за игра

Cryptokitties – игра-хит на блокчейне Эфириума

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

Создала игру Ванкуверская компания Axiom Zen. Именно она стала первой компанией, использовавшей получившее широкую популярность приложение dApp для весёлого проведения досуга. Играть просто так не получится – игра платная, потому, прежде чем включаться в неё, требуется внести криптовалюту. Работает игрушка на Эфириуме, поэтому, чтобы играть, надо будет вложить от 0,2 ETH до 0,5 ETH. При этом комиссии на разведение котиков постоянно поднимаются, так что указанный взнос весьма условный.

Если хотите стать серьёзным игроком, лучше приготовиться вложить много монет и прикупить дорогих котов. Конечно, гарантии того что сейчас или в дальнейшем игроки смогут заработать на своих криптопитомцах нет, но то, что раритетных котиков этой платформы уже сейчас покупают за тысячи долларов (иногда десятки тысяч), указывает на перспективность проекта. Кто мешает и вам вложиться прямо сейчас и через некоторое время получать дивиденды?

Суть игры с криптокотятами

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

Каждый котёнок появляется в виртуальной реальности с определённым набором качеств. Также у него есть родословная, которую невозможно подделать. Котята не умирают и копироваться они тоже не могут, потому единственный способ размножения – найти своему питомцу пару, они полюбят друг друга и появится новый член вашей коллекции. Его можно оставить себе или продать, чтобы купить кота с нужными параметрами.

Разработчики тоже неплохо зарабатывают на манипуляциях пользователей с котами. Они получают 3,75 % от транзакций по купле-продаже котиков и их вязки. Хотя пользователи и здесь нашли выход – продают котиков напрямую, а не используют умные контракты. В итоге комиссию платить не нужно.

Узнай, как зарабатывать на криптовалютах и ICO на бесплатном онлайн мастер-классе

Популярность Cryptokitties

Если сомневаетесь, что такой шуточный по своей сути проект сможет добиться успеха, то очень сильно ошибаетесь, так как он уже это сделал. Продажи Cryptokitties побили все возможные рекорды и превзошли любые ожидания разработчиков. За несколько месяцев существования проекта пользователи успели потратить в нём более двенадцати миллионов долларов. И это только те деньги, которые ушли на покупку виртуальных кошек. То есть люди, которые продают котят, в теории могут стать миллионерами, так как некоторые старые или необычные котята стоят десятки или даже сотни тысяч долларов. При этом самого первого котика этой платформы (с ID, равным 1) продали за огромную сумму 247 монет Эфира. На тот момент сумма составляла приблизительно 118 тысяч долларов или 7 миллионов, если в рублях. Но не пугайтесь, не все котики такие дорогие – самые дешёвые продаются где-то на уровне 30 рублей.

Проект заметили даже ведущие специалисты в области криптовалют. Например, о нём написал создатель Эфириума Виталик Бутерин, что неудивительно, ведь сам проект работает на этом блокчейне. К тому же транзакции по покупке и продаже котят проходят в сети Эфириума, перегружая его. Растёт комиссия, чему обычные пользователи не рады.

В экономическом смысле затея с этой игрой очень помогает в освоении Эфириума, так как использует для работы пять смарт-контрактов Ethereum. То есть, чтобы стать участником игры, нужно иметь собственный Ethereum-адрес. На данный момент именно эта игра является самым популярным смарт-контрактом в сети. Через неё генерируется от 10% до 15% транзакций. Но этот показатель существенно замедляет процесс покупки и продажи котиков в игре, потому компании даже пришлось поднять плату за рождение питомцев, чтобы хоть как-то корректировать эти показатели.

Как попасть в игру

Давайте разберёмся, как вообще начать играть в Cryptokitties:

  • Для начала перейдите на официальный сайт проекта и нажмите «Start Meow»;
  • Теперь нужно установить плагин для браузера «MetaMask». Это нужно сделать обязательно, поскольку именно на нём будут храниться ваши деньги в игре;
  • Когда установка закончена, нужно нажать на клавишу «I installed MetaMask»;
  • Займёмся настройкой, найдя в верхнем углу браузера картинку с лисой. Нажимаем, вводим надёжный пароль и сохраняем в надёжном месте кодовое слово, которое выдаст система;
  • Переходим на сайт и вводим данные для входа в аккаунт (никнейм и адрес кошелька);
  • Игра запросит подтвердить, что вы привязали к ней MetaMask. Нужно согласиться.

Ещё одна небольшая рекомендация – для игры лучше использовать отдельный браузер. Так будет сподручнее чистить кэш и куки, чтобы не удалить ничего лишнего в плане нужной пользователю информации. Но прежде чем приступить к разведению криптокотиков, нужно пополнить счёт, ведь за что-то вы этих котов должны будете покупать. Пополнение легко осуществить через криптовалютные обменники, со счёта другого кошелька или с криптовалютной биржи.

Как играть в CryptoKitties

Начало игрового процесса положила сотня котиков-основателей. Их называют Founder Kitties, и, естественно, именно они на данный момент являются самыми дорогими, так как очень редкие и имеют ряд положительных особенностей (например, чаще способны к вязке). Чтобы котики размножились, был запущен специальный процесс, который каждые 15 минут создавал по 1 котику с Gen 0. Их продавали, а цена составлялась на основании арифметических расчётов. Цена последних пяти котов умножалась на 1,5, а если никто не покупает, цена падала на протяжении 24 часов. Когда искусственная генерация закончится, этот процесс перестанет работать, а новое поколение можно будет получить только как потомство уже существующих котов.

Чтобы продавать рождённых котиков, используется специальный внутренний 24-часовой аукцион. При этом нужно выставить стартовую и конечную цену. Хотя, если не хотите продавать кота, из него можно сделать осеменителя. Этот процесс получил название Siring. В этом случае один игрок платит второму, чтобы получить новорождённого котёнка от кота другого игрока, не выкупая его при этом.

При этом коты ограничены на размножение, так как у каждого виртуального животного есть кулдаун на повторное размножение. Если этот промежуток короткий, то кот ценный, а если длинный, то толку от такого питомца мало.

У каждого котика есть свой 256-битный код генома, отвечающий за качества животного. Благодаря генетическому алгоритму в игре удалось воссоздать аналог биологической генетики. При этом первое поколение котиков – это Gen0. Именно от них идут остальные поколения. Их формируют, благодаря трём факторам:

  • Выбор – передача лучших качеств из поколения в поколение;
  • Смешение – общие переменные родителей сохраняются и передаются потомству;
  • Мутация – некоторые черты родителей произвольно мутируют. Это позволяет системе рассматривать неограниченное количество возможностей для поиска оптимального решения в создании котиков.

Но чаще всего в Cryptokitties применяется механизм смешения при создании генома нового котика. У каждого животного в игре есть около 7-8 особенностей, которые мы можем увидеть, и ещё 2 репродуктивные особенности, что внешне не видны.

Дальнейшие перспективы

У разработчиков далекоидущие планы по поводу своего проекта. Создатели CryptoKitties заявили, что будут развивать свою игру вне зависимости от того, будет она успешной или нет. Хотя сейчас мы видим, что платформа стала топовой, и то, что у разработчиков готовы планы на год вперёд, приятно греет душу.

В частности, Мак Флавелль, являющийся руководителем проекта, указал, что команда будет сосредотачиваться на улучшении интерфейса и упрощении знакомства с игрой. Число доступных на рынке котят будет расти, как мы это видим уже сейчас, ведь каждый новоявленный пользователь проводит селекцию своих питомцев и продаёт их.

Хотя на ноябрь 2018 года планируется резкий спад рождаемости, так как больше не будут выпускать Gen 0. Из-за этого игроки будут вынуждены вернуться к размножению редких видов криптокошек, а их и так высокая цена в связи со спросом взлетит ещё выше. Но при этом стоимость питомцев должна стать относительно фиксированной, потому они превратятся в надёжное средство хранения капитала.

Создаем своих криптокотиков (Часть 1)

В первых числах декабря 2017 года, пользователи блокчейн-проекта Ethereum столкнулись с неприятным открытием — любые их транзакции просто перестали подтверждаться. Фактически, вся сеть перестала функционировать из-за неожиданно разросшегося в размерах мемпула.

Совсем скоро стало понятно в чем же дело — во всем виноват оказался проект CryptoKitties. Это забавная игрушка, работающая на блокчейне Ethereum и позволяющая пользователям разводить «котят», скрещивать их и продавать как обычные критовалютные токены. В какой-то момент 15% всех транзакций в Ethereum приходились на криптокотят! А к моменту написания этой статьи, игроки потратили на котят уже 23 миллиона долларов!

Так что я просто не мог пройти мимо такой интересной темы и решил рассказать, как же сделать игру такого рода. В этой статье (и ее продолжении) будет подробно описано, как можно создать похожий проект на Ethereum, в первую очередь с помощью разбора кода оригинального контракта CryptoKitties.

Исходный код игры CryptoKitties

Почти весь код игры CryptoKitties является открытым, поэтому лучший способ понять, как он работает — прочитать исходники.

Код насчитывает примерно 2000 строк, так что в этой статье пробежимся только по самым важным его частям. Но если вы хотите самостоятельно прочитать исходный код, вот его копия, причем сразу в online IDE EthFiddle.

Общий обзор

Если вы в первый раз слышите об игре CryptoKitties, то знайте, что в ней игроки продают, покупают и разводят цифровых котиков. Каждый котик уникален, его внешний вид определяется генами. Когда вы скрещиваете двух котиков, их гены уникальным образом объединяются и получается совершенно особенный котенок, которого вы можете продать или продолжить скрещивать с другими котиками.

Читайте также:  Бумажный кошелек Ethereum: что это, как создать

Код CryptoKitties разделен на ряд небольших взаимосвязанных контрактов, так что хранить один огромный файл со всей информацией не приходится.

Solidity позволят наследовать контракты, вот как выглядит цепочка наследования в случае с котятами:

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

1. KittyAccessControl: кто контролирует контракт?

Этот контракт управляет различными адресами и ограничениями, которые могут осуществляться только определенными пользователями, назовем их CEO, CFO и COO.

Этот контракт нужен для управления и никак не относится к механике игры. По сути, он приписывает методы пользователям “CEO”, “COO” и “CFO” — адресам на платформе Ethereum, которые владеют и контролируют конкретные функции контракта.

KittyAccessControl определяет модификаторы функций, например, onlyCEO (ограничивает функцию, чтобы ее мог осуществлять только пользователь CEO), а также добавляет методы для таких действий, как пауза/возобновление игры или снятие денег:

Функция pause() скорее всего была добавлена, чтобы разработчики могли выиграть себе время, если в конракте обнаружатся баги… Но вот Люк говорит, она также может позволить разработчикам полностью заморозить контракт и никто не будет ни передавать, ни продавать, ни разводить котят! Не то, чтобы разработчики хотели это сделать — но это интересно, особенно с учетом того факта, что многие люди думают, что DApp полностью децентрализована, потому что находится на Ethereum.

2. KittyBase: что же это за котик такой?

Именно в этом контракте мы определяем самый важный код, который отвечает за основной функционал, в том числе основное хранилище данных, константы, типы данных и внутренние функции для управления ими.

KittyBase определяет многие основные данные приложения. Во-первых, этот контракт задает котика как структуру:

Так что котик — это все лишь ворох целых чисел:) Разберем каждый элемент:

  • genes — это 256-битное целое число представляет генетический код котика. Это ключевая часть информации, которая определяет внешний вид котика.
  • birthTime — временная метка блока, момент, в который рождается
    котик.
  • cooldownEndBlock — минимальный временной период, после которого котик опять может размножаться.
  • matronId & sireId — учетные записи мамы и папы котика
    соответственно.
  • siringWithId — этот показатель с отсылкой на беременную маму
    добавляется к учетной записи папы. В противном случае показатель равен нулю.
  • cooldownIndex — текущая продолжительность отдыха котика (через какое время после скрещивания котик снова сможет размножаться).
  • generation — «номер поколения» котика. Первые котики в игре
    принадлежат к нулевому поколению, а каждое последующее поколение котиков имеет номер, на 1 превосходящий поколение своих родителей.

Обратите внимание, что в игре CryptoKitties котики бесполые, и скрещивать можно любых двух котиков.

Затем контракт KittyBase определяет массивы наших кошачьих структур:

Этот массив содержит данные всех существующих котиков, так что это своего рода общая база данных.

Когда вы создаете нового котика, он добавляется в массив, и его индекс в массиве становится учетной записью котика. В примере ниже учетная запись котика Genesis — 1.

Индекс в массиве для этого котика — “1”!

Также в этом контракте содержится словарь (в Solidity это называется mapping, но я думаю мы поняли друг-друга), связывающий учетные записи котиков и адреса их владельцев, чтобы можно было следить, кому принадлежит тот или иной котик:

В контракте содержатся и другие словари, рекомендую вам самостоятельно пробежаться по ним глазами, там нет ничего сложного.

Когда владелец передает котика другому человеку, словарь kittyIndexToOwner обновляется и начинает связывать котика с новым владельцем:

Передача котика устанавливает связь kittyIndexToOwner учетной записи котика и адреса нового владельца _to .

А теперь давайте посмотрим, что происходит, когда мы создаем нового котика:

Эта функция «принимает» учетные записи матери и отца, поколение котика, 256-битный генетический код и адрес владельца. Затем она создает Kitty , направляет его в основной кошачий массив и вызывает команду _transfer() , чтобы привязать котика к новому владельцу.

Круто — теперь мы можем видеть, как CryptoKitties определяет котиков в виде типа данных, как хранит их в блокчейне и как следит за тем, кому принадлежит тот или иной котик.

3. KittyOwnership: котики как токены

Этот контракт содержит методы, необходимые для базовых невзаимозаменяемых операций с токенами в соответствии со стандартом ERC-721.

Игра CryptoKitties подчиняется стандарту токена ERC721. Это невзаимозаменяемый токен, который отлично зарекомендовал себя для отслеживания владения цифровыми коллекциями, например, цифровыми игральными картами или редкими предметами в ролевых играх.

Примечание о взаимозаменяемости: Криптовалюта эфириум взаимозаменяема, потому что любые пять эфириумов равны другим пяти эфириумам. Но если мы говорим о токенах типа CryptoKitties, один котик не равен другому, поэтому они не взаимозаменяемы.

Из определения этого контракта мы можем видеть, что KittyOwnership наследует контракт ERC721 :

Все токены ERC721 соответствуют одному стандарту, так что в результате наследования, контракт KittyOwnership отвечает за осуществление следующих функций:

Так как все эти методы являются открытыми, существует стандартный способ взаимодействий пользователей с токенами CryptoKitties — и точно так же они могут взаимодействовать с любым другим токеном ERC721. Вы можете передавать токены другому пользователю, напрямую взаимодействуя с контрактом CryptoKitties на платформе Ethereum без необходимости пользоваться их веб-интерфейсом, так что в этом смысле вы действительно являетесь хозяином своих котиков. (Если только CEO не остановит контракт).

Если вам интересно написать свою игру на Ethereum, можно потренироваться на CryptoZombies: интерактивной школе обучения программированию на Solidity, русская локализация присутствует.

За помощь в переводе большое спасибо Саше Ивановой!

CryptoKitties – заботимся о котиках в криптовалютной игре

На рынок недавно вышла первая криптоигра CryptoKitties, где игроки могут покупать, разводить и продавать виртуальных кошек. CryptoKitties стала настолько популярной в декабре 2017 года, что она отвечала за 25% всего трафика Ethereum.

Мы представляем полное руководство для начинающих игроков CryptoKitties. Расскажем все, что вам нужно знать, в том числе о том, как создали игру, как она работает, и, самое главное, как играть в CryptoKitties.

Что такое CryptoKitties?

CryptoKitties был создан канадским стартапом Axiom Zen в декабре 2017 года и буквально за несколько дней она стала настолько востребованной, что четверть транзакций эфириума приходилась именно на игру. Axiom Zen участвует во множестве разных предприятий, таких как разработка программного обеспечения и виртуальной реальности, однако CryptoKitties был одним из их самых успешных проектов до сих пор.

Учредители хотели создать игру “Эфириум”, которая позволила бы любому в мире владеть виртуальными кошками, что работают на основе умных контрактов этой валюты.

Каждый созданный кот – абсолютно уникальный, ему можно выбрать разные цветные меха или глаза.

Существуют также разные полы Криптокотиков, которые можно присваиваются имена. Мальчикам CryptoKitty дают имя Sire, а девочкам – Dames.

Тут работает аналог человеческой ДНК. У всех на планете есть уникальная внутренняя ДНК, которая никогда не бывает одинаковой с кем-то. Это же и у CryptoKitties. Технология, которая поддерживает эту функцию, известна как “генетический алгоритм”.

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

Некоторые кошки гораздо более уникальные, чем другие, и их можно продать за большие деньги. В некоторых случаях люди платили более 100 000 долларов за одного кота.

Вы помните карточную игру Pokemon, где нужно покупаете пакет и надеетесь получить редкую карточку, такую ​​как Charizard? CryptoKitties очень похоже на это – при создании новых кошек они генерируются случайным образом из интеллектуального кода контракта.

Является ли CryptoKitties криптовалютой?

Люди часто ошибаются в том, что CryptoKitties совпадает с владением криптовалютами, такими как биткоин или лайткоин . Это не так! Криптокотики не имеют ценности вне сети, и они не могут быть проданы с другими цифровыми токенами или монетами на криптовалютных биржах. Однако, поскольку люди готовы платить за них деньги, CryptoKitties фактически являются “активами на блокчейне”.

CryptoKitties создаются поверх блокчейна Ethereum. Подумайте об этом, как о владении земельным участком. Хотя в мире много разных земельных участков, но тот, который есть у вас, уникален, поэтому его можно продать за большие деньги.

Как заработать CryptoKitties или откуда берутся котики?

Первый CryptoKitty родился 2 декабря 2017 года. С этого времени каждый новый котик создается в блокчейне Ethereum каждые 15 минут. В целом будет 50 тыс. котов.

Однако CryptoKitties также можно создать по-другому. Вы можете получить как мужского, так и женского кота. Как и настоящие коты, CryptoKitties могут размножаться друг с другом, чтобы создавать новых котят.

Самый простой способ размножения – это иметь как Sire, так и Dames. Но если у вас есть только один из них, то можете договориться с кем-то, чтобы помочь вам.

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

Важно помнить, что владелец Dame будет владельцем новорожденного CryptoKittie, но если у вас есть только Sire, то все равно можете зарабатывать деньги, так как можете давать своего кота для создания новых CryptoKitties.

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

Когда рождается новый CryptoKitty, он наследует некоторые атрибуты от своих родителей. Думайте об этом, как о новорожденном ребенке. Он может взять черные волосы от матери и нос от отца.

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

Как играть в CryptoKitties?

Купите Ethereum.

Прежде чем вы сможете начать работу в CryptoKitties, нужно будет купить Ethereum (ETH). Мы уже рассказывали о том, что такое Ethereum , как приобрести криптовалюту и где хранить монеты эфириума .

Читайте также:  Ethereum хардфорк – что это и когда выйдет

Установите MetaMask.

Как только вы купили себе ETH, нужно установить виртуальный кошелек под названием MetaMask. Это кошелек, который совместим с платформой CryptoKitties, что позволит покупать, разводить и продавать кошек.

Кошелек MetaMask очень прост в использовании, его даже можно установить как расширение Google Chrome.

После того, как вы установили MetaMask, переведите свой ETH на него.

Создание учетной записи CryptoKitties.

  1. Теперь, когда у вас есть кошелек MetaMask с монетами ETH, вы можете посетить сайт CryptoKitties и создать учетную запись по ссылке.
  2. Сначала нужно будет ввести свой адрес электронной почты и выбрать псевдоним. Туда автоматически подключается кошелек MetaMask.
  3. Теперь вы видите условия пользования CryptoKitties. Обязательно прочитайте их, прежде чем соглашаться.
  4. Войдите в систему. Все – вы успешно открыли учетную запись.

Как купить котиков в CryptoKitties?

Если вы выполнили все шаги, то теперь вы можете купить криптокотиков.

  • В верхней части страницы выберите пункт “Marketplace”.
  • Сейчас есть 140 тыс. уникальных CryptoKitties на выбор.
  • Если вы нажмете кнопку “Фильтр” , то можете выбрать, какой тип котика вы хотите купить.
  • Самый дорогой CryptoKitty для продажи стоит 100 000 ETH. По курсу этого месяца (июнь 2018 года) – это более 60 млн. долларов. Вы можете купить кота, который подойдет вам по цене.
  • Прежде, чем покупка будет выполнена, нужно будет подтвердить сумму, которая снимется с вашего счета. Появится всплывающее окно MetaMask, в котором будут показаны детали транзакции вместе с комиссией GAS.
  • Покупка совершена.

Вот и все, вы купили своего криптокотика. Как только блокчейн Ethereum обрабатывает транзакцию (которая не должна занимать больше нескольких минут), токен будет отображаться в вашем кошельке MetaMask!

Важно помнить, что только девочка-котик может “родить” нового CryptoKitty, поэтому если у вас есть только мальчик, вы ничего не получите. Тем не менее некоторые люди взимают плату за услугу скрещивания (предоставляю своего кота для создания ребенка с девочкой-котом другого пользователя), если у них есть редкий кот, который обладает уникальными особенностями.

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

Криптовалюта и CryptoKitties: собственные котики на Ethereum

Пока криптовалюта, блокчейн и другие новинки взрывают сеть, давайте создавать крипто-котиков на виртуальной платформе Ethereum.

Разбираемся, что же это за криптовалюта такая.

Начнем немного с теории, чтобы иметь общее представление о происходящем. Блокчейн – популярная и быстрорастущая технология децентрализованной базы данных, которая позволит избавиться от посредников в финансовых отношениях, а сделки станут безопасными и эффективными.

CryptoKitties – это игра по созданию криптовалюты, в основании которой лежит технология блокчейн со всеми вытекающими.

Исходный код котиков

Эта игрушка имеет открытый исходный код, что позволит разобраться, как она работает. Будем рассматривать только важные блоки кода, а кто хочет самостоятельно поковыряться – вот ссылка на ethFiddle.

Углубленный обзор

Итак, суть котиков в том, чтобы их покупать, продавать и размножать эту “криптовалюту”. У каждого кота есть свои параметры, которые передаются на генном уровне при скрещивании. Чтобы получить большую сумму от продажи животного – нужно заполучить редкую породу и заняться скрещиванием двух котов.

Весь код поделен на несколько контрактов и имеет множественное наследование, чтобы избежать огромного размера файла. Наследование субконтракта для контракта главного котика выглядит так:

Таким образом, KittyCore – это основной контракт, который наследует все методы и субконтракты всего приложения. Переходим к рассмотрению всех наследуемых субконтрактов.

KittyAccessControl: криптовалюта контролирует контракт

Этот контракт предназначен для управления и вообще не связан с игровой механикой. В основном это методы “сеттера” для CEO, COO и CFO, которые являются адресами Ethereum, которые имеют особое владение и контроль над конкретными функциями контракта. KittyAccessControl имеет модификаторы функций по ролям, и позволяет выполнять такие действия, как пауза, отказ от договора или вывод средств.

pause() – это фича для разработчиков, которая позволяет остановить всякие операции с котами по любым причинам.

KittyBase: кто эти котята?

Это наиболее фундаментальный код, общий для всех основных функциональных возможностей. Он включает в себя хранилище данных, константы и типы данных, а также внутренние функции для управления этими элементами.

Сначала описывается котенок как структура:

Рассмотрим отдельно каждый параметр.

  • genes – 256-битное целое, которое описывает гены котенка. Этот ключевой параметр отвечает за то, как будет выглядеть животное.
  • birthTime – timestamp для ДР кошечки.
  • cooldownEndBlock – минимальное время, через которое можно снова размножаться.
  • matronId & sireId – ID отца и матери.
  • siringWithId – установлен ID отца, если мать беременна, а так обычно 0.
  • cooldownIndex – как долго кошка должна ждать следующей возможности забеременеть.
  • generation – коты от первого окота имеют поколение 0, а все последующие будут +1.

После этого объявляется массив всех кошек:

Этот массив хранит информацию о всех кошечках. Если создается новое животное, то сюда записывается вся нужная информация.

Этот контракт имеет еще одну особенность – mapping, что помогает контролировать, кто хозяин котика:

Если кошка перемещается к другому хозяину, mapping обновляется:

Теперь, рассмотрим, что происходит, когда котик создается:

Эта функция передает идентификаторы матери и отца, номер поколения котенка, 256-битный генетический код и адрес владельца. Затем информация о котенке заносится в массив Kitty[] , и вызывается transfer () , чтобы назначить его новому владельцу.

KittyOwnership: Котята как токены

CryptoKitties соответствует спецификации ERC721, который отлично зарекомендовал себя для отслеживания владения цифровыми коллекционными предметами, такими как цифровые игровые карты, криптовалюта или редкие предметы в MMORPG.

Вот так в контракте реализовано наследование спецификации ERC721:

Все токены ERC721 соответствуют определенному стандарту, поэтому в контракте KittyOwnership реализованы следующие функции:

Поскольку эти методы являются общедоступными, это обеспечивает стандартный способ взаимодействия пользователей с токенами CryptoKitties таким же образом, как они взаимодействуют с любым другим токеном ERC721. Вы можете передать свои токены кому-то другому, напрямую взаимодействуя с контрактом CryptoKitties на блокчейне Ethereum без использования веб-интерфейса.

KittyBreeding: разведение котят

KittyBreeding содержит метод для CEO, который устанавливает адрес этого внешнего контракта:

Это было сделано для того, чтобы игра не была слишком легкой – если бы вы могли заранее узнать ДНК котенка, было бы намного легче понять, какие кошки размножаются, чтобы получить «причудливую породу».

Этот внешний контракт geneScience позже используется в функции giveBirth() , чтобы определить ДНК новой кошки.

Теперь посмотрим на процесс размножения:

Таким образом, эта функция принимает идентификатор матери и отца, просматривает их в массиве kitties и устанавливает идентификатор отца siringWithId на мать. (Когда siringWithId отличен от нуля, это указывает на то, что мать беременна).

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

Затем у нас есть функция giveBirth() , которая создает новую кошку:

Сначала выполняются некоторые проверки, чтобы узнать, готова ли мать рожать. Затем определяются гены ребенка, используя geneScience.mixGenes() , котенок назначается владельцу матери, затем вызывается функция _createKitty() , которую мы рассмотрели в KittyBase.

KittyAuctions: покупка и продажа

Функциональность блока аукциона также разделена на мелкие контракты. Таким образом, KittyAuctions содержит функции setSaleAuctionAddress() и setSaleAuctionAddress() , которые, как и setGeneScienceAddress() , могут быть вызваны только CEO, и которые задают адрес внешнего контракта, обрабатывающего эти функции.

Это означает, что даже если контракт CryptoKitties сам по себе является неизменным, CEO может изменить адрес этого контракта, что изменит правила аукциона.

KittyMinting: криптовалюта и кошачья фабрика

Есть возможность сделать до 5000 “промо-кошек”, которые можно отдать (особенно важно, когда сообщество новое), а все остальные могут быть созданы, а затем немедленно выставлены на аукцион с помощью алгоритмически определенной стартовой цены. Независимо от того, как они созданы, существует жесткий предел 50k gen0 кошек. После этого все сообщество должно размножаться.

Количество “промо-кошек” и кошек gen0 , которые может создать контракт, жестко закодировано здесь:

А тут COO может создавать “промо-кошек” и кошек gen0 :

Таким образом, при помощи createPromoKitty() COO может создать нового котенка с любыми генами, которые он хочет, и отправить его абсолютно всем (до 5000 котиков). Скорее всего, что это используется для ранних бета-тестеров, друзей и семьи, чтобы раздавать бесплатных котят для продвижения по службе и т. д.

Но это также означает, что ваша кошка может быть не такой уникальной, как вы думаете, так как COO может напечатать 5000 одинаковых копий!

KittyCore: Мастер-контракт

Это основной контракт CryptoKitty, который скомпилирован и запущен в Ethereum. Такой контракт связывает все вместе.

Этот общедоступный метод возвращает все данные для конкретного котенка из блокчейна. Данные передаются на веб-сервер разработчиков, для отрисовки кошек на сайте. Как видно из приведенного выше кода, «котенок» в основном сводится к 256-битному беззнаковому целому, представляющему его генетический код.

В коде контракта Solidity нет ничего, что бы содержало изображение кошки или его описание или определяло то, что на самом деле означает это 256-битное целое. Интерпретация этого генетического кода происходит на веб-сервере CryptoKitty.

Заключение

Данная демонстрация создания “фабрики криптовалюты” на базе блокчейна, на самом деле, не на 100% основана на блокчейне. Если веб-сайт CryptoKitty внезапно упадет, и резервное копирование выполнено не будет, вам останется только бесполезное 256-битное целое число. Можно накодить отличный продукт, который будет походить на любую криптовалюту, но популярности и долговечности достичь не получится. Перевод на русский осуществлен Библиотекой Программиста.

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Как заработать в Ethereum-игре Cryptokitties

Мир блокчейн-сети Ethereum расширяется с огромной скоростью благодаря тому, что в этой сети начинают создаваться децентрализированные приложения, набирающие большую популярность среди масс. К таким играм можно отнести игру CryptoKitties, в которой можно покупать и продавать виртуальных котов, а также заниматься их селекцией, выводя новых особей.

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

Читайте также:  Транзакции Эфириума (Ethereum) – как проверить и отследить

В CryptoKitties котята появляются с различными визуальными особенностями, называемыми чертами или признаками (traits), и некоторые из этих признаков могут проявляться реже других. Естественно, большинство пользователей пытаются разводить редких кошек не только потому, что они выглядят круто, но и потому, что они могут быть очень дорогими. Так, один особенно редкий кот был недавно продан за более чем сто тысяч долларов. Фактически, общий объем продаж котов в этой игре на данный момент составляет около 3 миллионов долларов США. Это впечатляет, учитывая, что игра была запущена на прошлой неделе.

Прежде чем мы продолжим, обратите внимание, что для этой игры требуется эфир (валюта Ethereum), который может быть конвертирован в реальные деньги. И стоит учитывать, что он может быстро стать дорогим (хотя он также может дать прибыль, если вы играете грамотно). Сеть также немного напоминает структуру пирамиды, а это значит, что ранние игроки смогли купить редких котят дешевле, чем вы, вероятно, сможете. Наконец, игра в настоящее время нагружает сеть Ethereum, и если это будет серьезной проблемой, то, возможно, игра отключится. Тем не менее, благодаря технологии Blockchain ваши коты останутся в вашей собственности.

Итак, для начала вам нужно приобрести некоторое количество эфира и поместить его в цифровой кошелек под названием MetaMask. О том, как приобретать криптовалюту Ethereum, в сети Интернет можно найти немало материалов. Здесь же мы перейдем сразу к пополнению кошелька MetaMask и самой игре. MetaMask представляет собой один из самых простых кошельков, и поскольку он работает как расширение браузера Chrome, он очень легко взаимодействует с многочисленными децентрализованными приложениями в блокчейне Ethereum, включая CryptoKitties.

Как только вы приобрели эфир, установите MetaMask и создайте кошелек. Затем переведите эфир в этот кошелек (перед отправкой ETH, всегда делайте тестовую транзакцию с небольшим количеством эфира, например, 0.0001 ETH, чтобы узнать, все ли у вас в порядке с переводами). Как только ваш кошелек MetaMask будет заполнен некоторым количеством эфира (можно начинать с по крайней мере 0.1 ETH, что составляет около 47 долларов), просто зайдите на сайт CryptoKitties, создайте учетную запись. Теперь, когда MetaMask пополнен и подключен к основной сети Ethereum, вы сможете легко покупать, продавать и разводить котят на веб-сайте CryptoKitties.

Обратите внимание, что для совершения любой транзакции в сети Ethereum, которая в данном случае включает в себя покупку, продажу и разведение котят, вам нужно достаточно ETH для оплаты сборов, связанных с этой транзакцией, но вам также потребуется дополнительное количество ETH для продвижения этой транзакции.

Теперь, когда MetaMask работает, вы залогинились и у вас есть ETH в вашей учетной записи, пришло время купить котенка. Но зачем это делать? Для новичков игра может показаться очень простой и даже скучной. Вы не можете по-настоящему ласкать своих котят; вы не можете кормить их, как в случае с Тамагочи; с ними больше нечего делать, кроме как покупать их, продавать, сдавать в аренду для разведения (siring). Но игра становится интересной, когда вы начинаете выяснять, какие признаки являются редкими, и как их получить. Например, в игре есть тысячи котят, но, согласно сайту CryptoKittydex, имеются только 81 котенка «mainecoon» и всего лишь 156 «jaguar». Помимо владения цифровой редкостью интерес подогревают цены на этих котят. Некоторые из самых редких стоят сотни ETH; некоторые цены уже исчисляются миллионами долларов. Так что это немного похоже на цифровую лотерею; если вы разводите котят и получаете редкий экземпляр, вы действительно сможете продать его за большие деньги.

Однако, чтобы начать играть, единственное, что вам нужно, это купить котенка – или еще лучше, две кошачьих особи, чтобы вы могли их скрестить. Это легко сделать. Перейдите в MarketPlace, осмотритесь в нем немного, и когда вы найдете котенка, который вам нравится, нажмите «buy now». Вы получите запрос от MetaMask с просьбой подтвердить транзакцию (всегда проверяйте, сколько эфира вы фактически потратите, если цена кажется необоснованно высокой, нажмите «reject», обновите страницу и повторите попытку).

Каких же котиков купить, спросите вы? Котята появляются с несколькими важными атрибутами, поэтому обратите внимание на них, когда вы их покупаете. Помимо признаков – у каждого котенка около десятка из них – есть также номер поколения и время восстановления (cooldown). Номер поколения сообщает вам, сколько поколений прошло, начиная с нулевого поколения Gen 0. Если особь Gen 0 скрещивается с другой особью Gen 0, потомство будет Gen 1. Если Gen 1 размножается с Gen 5, потомство будет Gen 6. Чем выше номер поколения, тем хуже будет котенок, и тем ниже будет его ценность.

Время восстановления – еще один очень важный параметр. Он ранжируется от «fast» до «catatonic» и он показывает вам, сколько времени нужно котику, прежде чем он сможет размножаться после его последнего скрещивания. Очевидно, что котики, которые могут размножаться быстрее, более желательны. Однако трюк заключается в том, что каждый раз, когда такой котик порождает нового котенка, его время восстановления становится немного хуже.

CryptoKitties подрывают концепцию Ethereum

Стремясь создать «мировой компьютер», ethereum стремится предоставить платформу, на которой могут работать децентрализованные приложения (dapps). Но в то время как целая группа стартапов разрабатывает решения на основе ethereum для чего угодно, от социальных сетей до обмена файлами, ни один из них пока не привлек большой аудитории.

CryptoKitties

Интернет-игра для покупки, продажи и разведения очаровательных цифровых котят CryptoKitties оказалась в центре внимания в последние дни. Многие участники криптосообщества приветствовали приложение из-за его возможности предоставить новым пользователям легкий и интересный способ узнать о протоколах криптовалюты. Но также были и те, кто оказался категорически против этого приложения, поскольку приложение вызвало серьезные транзакционные сбои в сети Ethereum.

Но есть еще одна проблема CryptoKitties – ваш котенок не так децентрализован, как вы думаете.

Как минимум, это утверждение некоторых критиков, претендующих на то, что CryptoKitties, как и World of Warcraft, находится под контролем центрального узла. Децентрализация приложений, освещаемая как беспрецедентный успех площадки Ethereum , теперь под вопросом, поскольку приложение подрывает концепцию самой площадки.

Разработчик сети биткоина Уди Вертхаймер, спросил Виталика Бутерина:

Вы читали смарт-контракт CryptoKitties ? Собственность может измениться, владельцы могут в любой момент отключить систему и произвольно изменить контракт.

Одомашненный кот

Поскольку CryptoKitties создана на платформе Ethereum, многие участники сообщества предположили, что это dapp (децентрализованное приложение, созданное в сети Ethereum).

Но это не так. Игра запускается в централизованной базе данных и работает используя один интернет-портал – сам сайт CryptoKitties.

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

Критик CryptoKitties и разработчик Bitcoin Core, Питер Тодд, считают, что слишком много власти находится в руках создателей приложения.

Питер Тодд говорит:

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

В то время как большая часть кода CryptoKitties является открытым исходным кодом – что давно рекламируется как ключ к децентрализации – есть несколько команд, которые были скрыты. Например, генетический алгоритм, который создает котят, скрыт, что, согласно словам команды CryptoKitties, «делает игры такими забавными».

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

Еще одна причуда в коде позволяет оператору связи создавать в любой момент до 5’000 экземпляров любого котенка. Маловероятно, что Kitty Corp намеренно саботирует своих игроков, но если злоумышленник взломает их систему, он может устроить « чистку » , либо « перенаселение » .

Филипп Дайан, разработчик языка программирования Viper, подчеркнул в Twitter:

Надеюсь, вы понимаете, что поступаете щедро работая с контрактом, используемым для разведения виртуальных кошек. «Котопокалипсис» очень реалистичен и будет смертоносным.

Ф орк CryptoKitties

Бутерин писал в Twitter, что CryptoKitties – это это шаг в правильном направлении.

Платформа не далека от полной децентрализации в своей нынешней форме. Но я думаю, что люди видят, что это может случиться. Я подозреваю, что сообщество просто сильно разветвит сеть CryptoKitties .

Тем не менее, кто-то может создать сторонний программный протокол для взаимодействия с CryptoKitties, так как для этого достаточно открытого исходного кода. Это также означает, что контракт игры может породить копии – например, лягушек.

Независимо от аспектов кода, который не является публичным, представитель Parity и энтузиаст CryptoKitties Афри Шоедон сказал: «Никто не может помешать вам или мне или кому-то еще создавать свою собственную игру CryptoFrogs по модели CryptoKitties».

И, по его мнению, она будет так же децентрализованна, как и CryptoKitties. Шоедон защищал централизованные аспекты игры, объясняя, что создатели «просто оставили за собой право хранить некоторые запатентованные материалы централизованно и размещать их на каком-то веб-сервере для удобства огромной базы пользователей, которая никогда не взаимодействовала с децентрализованными приложениями или ethereum раньше».

Представители Kitty Corp отозвали эти комментарии, заявив, что основной целью компании является сделать игру доступной для людей, которые только начинают познавать мир криптографии. И децентрализация придет с компромиссами.

Грифф Грин, основатель децентрализованной благотворительной организации Giveth, сказал, что в настоящее время «варианты создания действительно децентрализованного приложения очень ограничены и, в конечном итоге, непрактичны».

Грин сказал, что когда дело доходит до пользовательского опыта: «При попытке запустить приложение на блокчейне ethereum без какого либо использования центральных серверов – это самоубийство».

К оманда Kitty Corp пишет относительно этого вопроса следующее:

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

Ссылка на основную публикацию