Если вы ищете альтернативу блокчейну Ethereum, существует множество различных вариантов. Одним из них является Flow, блокчейн, разработанный создателями CryptoKitties и Dapper. Он был создан с учетом масштабируемости и был адаптирован для интенсивного использования блокчейна. В этой статье мы более подробно рассмотрим функции Flow, поговорим о том, что делает его уникальным, и рассмотрим создание NFT на блокчейне Flow с использованием Rarible Protocol.

Список содержания:

  1. Что такое блокчейн Flow?
  2. Flow-контракты на Rarible Protocol
  3. Как создать NFT в Flow с помощью Multichain SDK
  4. Краткое содержание

Что такое блокчейн Flow

С точки зрения маркетинга, Flow — это «быстрый, децентрализованный и удобный для разработчиков блокчейн, разработанный как основа для нового поколения игр, приложений и цифровых активов, на которых они основаны». Честно говоря, после некоторого исследования это действительно так. Давайте немного разберемся и выделим все плюсы.

Четыре столпа

Есть 4 основные причины, по которым Flow считается уникальным, часто упоминаемым как «Четыре столпа», а именно:

  • Многоцелевая архитектура
  • Ресурсо-ориентированное программирование
  • Эргономика для разработчиков
  • Онбординг потребителей

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

Многоцелевая архитектура

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

Ресурсо-ориентированное программирование

Ресурсы в этом контексте означают новый способ представления собственности на активы. Благодаря Cadence (который является родным языком смарт-контрактов Flow) разработчики могут создавать уникальные долговечные цифровые артефакты, право собственности на которые отслеживается самим языком, что позволяет создать новую мощную категорию приложений( источник).

Эргономика для разработчиков

Под эргономикой разработчика Flow означает создание удобных для разработчиков смарт-контрактов. Кроме того, смарт-контракты в Flow могут обновляться. В Flow вам разрешено развертывать контракт в основной сети в его «бета-состоянии», что позволяет авторам постепенно обновлять код. Пользователи уведомляются о статусе контракта и могут выбрать, хотят ли они доверять ему сейчас или только после его завершения.

Онбординг потребителей

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

По моему честному мнению, Flow звучит неплохо. Теперь пришло время погрузиться в то, как мы можем воспользоваться этим с Rarible Protocol.

Flow-контракты на Rarible Protocol

Как упоминалось во введении, я также предоставлю контракты Rarible Protocol, распространяемые на Flow. На момент написания статьи их четыре.

  • RaribleFee: менеджер комиссий, который хранит ставки и адресные комиссии.
  • LicensedNFT: интерфейс контракта добавляет роялти к NFT. Вы можете внедрить этот LicensedNFT в свой контракт (наряду с NFT), и ваши отчисления будут распределяться при торговле на Rarible.
  • RaribleNFT: контракт Rarible NFT, реализующий стандарт Flow NFT, эквивалентен ERC-721 или ERC-1155 в Ethereum.
  • RaribleOrder: рыночный контракт является оболочкой стандартного NFTStorefront, обрабатывающего рыночные ордера.

Адреса смарт-контрактов

Еще одна важная вещь — это адрес смарт-контракта, который мы хотим использовать. В настоящее время у Rarible развернуто 4 контракта, вы можете увидеть их ниже. Если вы хотите скопировать или прочитать их, вы можете найти всю информацию здесь.

Нам нужны эти адреса, потому что в Multichain SDK (который раньше назывался Union SDK) мы ссылаемся на такие объекты, как идентификатор коллекции, идентификатор токена по Union Addresses, который состоит из имени блокчейна и адреса после двоеточие, например:

ПОТОК: A.ebf4ae01d1284af8.RaribleNFT

(да, контрактные адреса на Flow выглядят забавно 🤡)

Как вы можете создавать NFT в Flow с помощью Multichain SDK?

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

GitHub — kolberszymon/union-sdk-template

С Next JS -›, который позволяет вам кодировать ваши приложения, TypeScript -›, который предоставляет вам аннотации типов…GitHub.com

Все уже настроено, чтобы сэкономить вам время и нервы. Мы не будем описывать каждую деталь, как я уже делал в прошлых статьях, поэтому, если вас интересуют дальнейшие объяснения, обратитесь к:

Создайте приложение, которое позволит вам размещать и продавать NFT за 60 минут

«NFT Minting vs Lazy Minting. Минтинг объяснил.

Самая сложная часть использования Multichain SDK — это его настройка, но мы уже сделали это за вас в шаблоне GitHub. Теперь я расскажу вам о специфических для Flow аспектах этого процесса.

Какой кошелек следует использовать для Flow?

Первый важный вопрос: какой кошелек мы можем использовать для Flow? К сожалению, вы не можете получить к нему доступ из Metamask. Согласно официальным предложениям Flow, есть два варианта:

  1. Блокировать
  2. Главная книга

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

Кодирующая часть

Окончательно! Пришло время для части кодирования. 🥳 Я буду вашим гидом и, надеюсь, сделаю этот процесс очень простым.

  1. Выберите FCL в качестве нужного кошелька в _app.tsx

Когда дело доходит до работы с Multichain SDK, есть две вещи, которые должны быть правильными, чтобы все остальное работало.

It’s:

  1. Сетевое окружение,
  2. Союзный адрес

Сетевое окружение необходимо для отправки и подписания транзакций. Вы можете относиться к этому так же, как к функции входа в систему. С другой стороны, многоцепочечные адреса необходимы, потому что мы взаимодействуем с несколькими цепочками блоков, используя одну кодовую базу. Таким образом, код должен знать, с какой цепочкой блоков (первая часть адреса мультицепочки) и с каким объектом (вторая часть адреса мультичейна) мы хотим взаимодействовать. Значения в «желаемых кошельках» будут преобразованы в кнопки на интерфейсе (вы можете стилизовать их в файле sdk-wallet-connector с помощью функции «Параметры»), что позволяет пользователям подключаться к выбранным блокчейнам.

2. Подготовить мяту

Получите информацию о том, как вы можете создать токен. Информация, такая как:

  • поддерживается ли ленивый минтинг?
  • поддерживается ли множественный минтинг?
  • действителен ли указанный адрес коллекции?

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

3. Чеканка

На этом шаге мы отправляем ответ, полученный на шаге №2. Лучший способ сделать это (по крайней мере, для меня) — сохранить его в хуке useState 🪝. Чтобы успешно создать NFT, нам также нужны URI, lazymint и поставка. Еще одна вещь, которую я хочу рассмотреть более подробно, — это URI.
Прежде всего, для успешного отображения изображения на Rarible URI должен быть в следующем формате:

ipfs://ipfs/{хэш

например ipfs://ipfs/QmWLsBu6nS4ovaHbGAXprD1qEssJu4r5taQfB74sCG51tp

Во-вторых, URI должен указывать на объект метаданных, подобный показанному ниже.

Если вы хотите проверить, что находится под вашим URI в IPFS, вам нужно объединить https://rarible.mypinata.cloud/ipfs/ со своим хешем. Вот и все! 😎

Краткое содержание

В этой статье мы рассмотрели процесс создания NFT с помощью Multichain SDK, рассказали о том, как работает блокчейн Flow и что делает его уникальным, а также рассказали, как правильно хранить URI.

Проект GitHub:

https://github.com/kolberszymon/flow-rarible-tut

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

Небольшой раздор DAO: https://discord.com/invite/zqsZsEWBbN

Рассмотрите возможность подписки на нашу еженедельную рассылку: https://www.getrevue.co/profile/raribleprotocol

Моя личная контактная информация:

Discord: Шимон из Польши#6093

GitHub: kolberszymon

LinkedIn: Колбершимон

Удачного кодирования, амигос!