Сегодня зашел на github проекта голос, там увидел вот этот тикет @t3ran13.
https://github.com/golos-blockchain/chain-node/issues/201
Речь идет о оценке добавления NFT токена в блокчейн. Мне кажется было бы хорошей идеей добавить NFT в блокчейн. Не хайпа ради, а как инструмент для разработчиков. Для хранения уникуальных записей ассоциированных с определенным аккаунтом.
Что это за зверь, nft?
Сначала об устройсте, как я себе представляю, по колхозному. Это просто уникальная монетка, со своим номером (token_id), к которой привязан небольшой кусочек неизменяемой информации и этой монеткой может владеть только один человек единовременно. Монетки можно передавать другим людям или обменивать их либо на другие монетки, либо продавать за токены GBG к примеру.
Для программистов, к примеру такой json объект в базе данных, репрезентирующий такую монетку, как я себе его представляю.
Зачем nft может пригодиться.
Самый хайповый кейс использования. Кто нибудь выпускает такую монетку и в прикрепленной информации указывают к примеру URL картинки. Ну и типа кто владеет этой монеткой, тот и владеет этой картинкой. Что бы такое работало, нужны люди новой формации, которые не копируют просто так картинку, а отдают дань уважения автору. Такое будет когда нибудь, при коммунизьме.
Я же думаю о более практичном применении nft. Взять к примеру какую нибудь игру, в которой есть игровые предметы, ту же Splinterlands. Я в нее не играл, смутно себе представляю конечно. Но думаю не ошибусь если скажу, что есть в этой игре карты с каким то набором характеристик. Аттака, Защита, Подвижность. Карту можно каким то способом получить. Выиграв ее у другого игрока, купив на рынке, получить в подарок.
Если бы я делал игру без всяких блокчейнов, я бы сделал у себя базу данных, где вел бы учет, какой игрок владеет какой картой, с какими характеристиками. Обмен был бы возможен только через игру. Учет остается на совести игродела. Если надо организовать рынок карт, то мне как игроделу пришлось бы все программировать самому. Прием токенов из блокчейна или денежных средств из вне, вести учет, организовывать торговую площадку и прочее. Вроде все это не связанно с игрой напрямую, но будет отнимать большой кусок ресурсов у программиста, ресурсы, которые я мог бы потратить на игру.
А вот были бы реализованы nft в блокчейне, то я мог бы в блокчейне печатать такие монетки, в карточке к монетке указывать владельца и информацию о игровой карте. И дальше все отдается на откуп инфрструктуре блокчейна. Игроки могут в блокчейне обмениваться картами, выставлять их на продажу, дарить. Все прозрачно, не зависит игродела. Обменивать можно за любую валюту доступную в блокчейне. Мне как игроделу не нужно думать о приеме средств от банка, или других блокчейнов. Я могу к примеру создать карты и выставить на продажу, тем самым соберу средства на игру. NFT мог бы снять большой груз с игродела.
Для начала, навскидку следующее API приходит в голову.
nft_create(name) - Создание NFT ассета
nft_issue(asset name, to_account, json_meta) - Выпуск монетки и ассоциация инфы с монеткой. В ответ возвращается уникальный token_id этой монетки.
nft_transfer(token_id, new_owner) - передача монетки другому аккаунту блокчейна
nft_create_sell_order(token_id, asset price) - создание ордера на продажу. Пользователь указывает сколько и каких токенов он хочет получить в обмен.
nft_buy(token_id, order_id) - покупка монетки.
nft_list(account opt., start_id, count) - получение списка nft монеток
Так как монетки будут храниться в консенсусной части базы данных ноды, за печать монеток надо будет удерживать стоимость печати устанавливаемую делегатами. За создание ассета можно брать как обычно GBG или даже лочить их, что бы у создателя ассета был стимул удалить токен, если он больше не используется.
Я еще не знаю, на сколько это все совпадает с тем, что реализовано в ETH (EIP-721) или предложенное тут https://github.com/Bit20-Creative-Group/BitShares-NFT-Specification для BitShares.
Я просто описал, как я себе это представляю, чего ожидаю и чем это могло бы помочь. Имхо, я думаю это не ограничивается только играми. Можно добавить опцию, непередаваемости монетки. Тогда можно было бы ассоциировать какой то кусок информации с определенным аккаунтом. @denis-skripnik предлагал создать, что то вроде социального рейтинга. Так вот кто то мог бы на это базе создать такое.
Потому предложение @lex оценить стоимость разработки. Можно конечно ориентироваться на BitShares, только я не уверен, что технически BitShares и GOLOS совпадают в реализайии.
С наступившим старым новым годом!
Анела у себя на стихах неплохую идею замутила - к каждому посту нфт и кто больше даст тот и выкупает. Можно так продавать авторские права на посты удобно ведь, можно даже биржу так тектов организовать. Лайки лайками, но хотелось бы и другой выхлоп иметь на тежи посты, так что считаю это неплохим дополнением к монетизации постов.
Ну а вцелом базовая функция выпуска нфт нынче везде, нужно топать в ногу со временем.
В целом когда я нфт просил, то думал сам замутить сервис на эту тему, аналог опенси, так что будут фичи как я описал, а не на инвайтах, то займусь
@t3ran13, кстати инвайты тоже я просил, вроде юзают люди, тут тоже думаю не хуже
@bitwheeze,
Пример с битшар я притянул для сравнения, может какую часть идеи и там стоило бы позаимствовать.
https://github.com/Bit20-Creative-Group/BitShares-NFT-Specification
Ты же видел что @t3ran13 коллекции еще описывал в ишью, аля опенси делать тоже никто не будет пока, речь лишь о реализации кода в блокчейне. А клиенты и обыгрывание NFT уже вопрос к альтернативным разработчикам, как и биржа под NFT...
Подождем еще комменты/посты и через неск. недель я добавлю заявку проговорив с воркером.
@ksantoprotein, подскажешь в развитие темы, что стоило бы учесть при реализации NFT помимо АПИ выше, те же коллекции насколько важны и пр?
@bitwheeze, NFT - надо!
@jorge, Зачем?
@bitwheeze, Думаю надо. Либо как ты описал, либо сделать какие-то готовые методы для использования связки инвайтов и key-value, о которых писал @lex.
Ещё мне кажется, что зря сделали документацию на нескольких страницах: лучше на одной с разными разделами и подразделами, но это моё мнение...
Что касается реализации:
Если nft будут не дорогущими, выпущу sbt для тех, кто поддерживал мои разработки за месяц. Далее чисто парсить будет удобнее...
Также nft можно использовать для создания профилей пользователей в боте с отложенным получением: пока аккаунта нет, хранятся у меня, но как появляется - выводит себе, и уже бот связан с аккаунтом на Голосе при помощи nft профиля.
Такой профиль может содержать статистику использования проектов...
Удобство также будет в том, что custom_json придётся блок сохранять, а nft можно получить по методу api.
P. s. @lex писал в Гитхабе, что просили key-value: я, если честно, так и не понял назначение, поэтому и не пользовался.
Тема же с UIA и nft более понятная. А как nft будут реализованы - дело другое. Главное - готовое решение, потому что возиться с изучением существующего, объединяя для создания чего-то вроде nft, мало кто будет, особенно при текущем курсе.
Если бы key-value было бы в конесенсусной части, то теоретически можно было на его основе организовать хранение данных. Вроде распределенной базы данных, не нужно самому что то локально устанавливать. golos blockchain ввиде mongodb сервера.
Key-Value сейчас реализовно в виде плагина. Можно тоже хранить данные, форум вроде бы пользуется этой фичей, но все зависит от наличия плагина.
Это в принципе удобно использовать для приложений без своей инфраструктуры. К примеру калькулятор, которые хранит предыдущие значения в памяти или приложение, которое хранит настройки в базе. К примеру, на какие разделы форума подписан пользователь. В таких случаях хранят данные обычно в самом браузере, в localStorage. Тоже key-value база. Но это привязка к одному браузеру. А так можно кроссбраузерно хранить данные. Даже если слетят настройки в браузере, данные можно подтянуть из ноды.
@bitwheeze, Благодарю. Понятно. Но как понимаю, данные хранятся публично - шифровать надо самостоятельно...
Хотя это и логично.
Пошёл смотреть api и broadcast методы для взаимодействия с ним... Интересная штука оказывается.
@bitwheeze, привет у меня мысль тоже пришла с аватарами (репутации) по неубиваемой репе + приемущества акаунта какие-нибудь