NFT кругозор, часть 1
Сегодня я начну вам рассказывать об нфт
Начнем
В основном все нфт делятся на два типа, on-chain и off-chain, но в чем их отличие?
Что такое off-chain
Если кратко, off-chain = хранение данных вне блокчейна (что логично по названию). Но тут встает момент того что нам всегда говорили, мол ваши нфт это блокчейн! Обманывали ли они нас? Давайте разбираться
Чтобы понять что за картинка у нас перед глазами нам надо провернуть несколько простых действий (буду объяснять на примере MAYC)
- Надо найти контракт коллекции и перейдем в раздел "contract" ТЫК
- Зайти в раздел "read contract" ТЫК
- Найти там поле "tokenURI" и ввести туда номер нфт, чьи данные нас интересуют и нажать на "query". На выходе мы получим это:
- Оп, а вот и метаданные! В каждом поле хранятся данные, которые соответствуют этой нфт, то есть в поле "image" у нас лежит ссылка на картинку, в "attributes" у нас лежат атрибуты и тд. Нас тут особенно интересует ссылка в поле "image". Копируем ее и снова вставляем в поисковую строку
И тут мы начинаем чувствовать подвох, ведь получается что у нас не сама картинка, а просто ссылка на картинку, которая хранится вообще в другом месте и если поменять картинку по этой ссылке и то сама нфт поменяется!
По сути да, но нет, ведь зачастую все картинки для нфт хранятся на децентрализованных хранилищах данных, коим IPFS и является
А теперь поговорим о моих любимых on-chain нфт)
Что такое on-chain
on-chain = хранение данных в блокчейна (что тоже логично). Получается это те самые настоящие нфт, которые мы заслуживаем? По сути да, но пока они нам не нужны, щас тоже все расскажу
Для начала нам надо повторить примерно тот же круг что и с off-chain нфт (разбор будет на примере моей коллекции ТЫК)
- Надо найти контракт коллекции и перейдем в раздел "contract" ТЫК
- Зайти в раздел "read contract" ТЫК
- Найти там поле "tokenURI" и ввести туда номер нфт, чьи данные нас интересуют и нажать на "query". На выходе мы получим это:
Так, снова метаданные! Опять же берем всю строку из поля "image", вставляем это в поисковую строку и получаем это:
Оп, готовая и рабочая картинка! Никаких ссылок! Минимум чудо вселенское)
Выводы:
Так, ну вроде в ходе статья все всё поняли, а именно что on-chain = "круто", а off-chain = "не круто", но почему все не делают on-chain нфт?
- Это дорого как для создателя контракта (транзакция создания контракта), так и для пользователя (транзакция минта нфт), ведь мы в транзакции изменяем больше данных (в ссылке банально меньше символов чем в той строке из on-chain нфт в примере)
- Меньше простора для воображения. Скажу так, нарисовать картинку и выгрузить ее на децентрализванное хранилище проще, чем закодировать эту картинку, про трейты и остальное я вообще молчу
- Невозможно сделать очень большие и качественные нфт. У контракта есть ограничение по памяти (нельзя просто 1000000 строк кода выгрузить и верить что это будет работать, тебя просто эфир не пропустит по размеру контракта)