Новая глава для RMRK: поддержка EVM и расширение экосистемы NFT

Обзоры

История реализации на Кусаме

RMRK — это стандарт для наиболее продвинутых NFT.

Стандарт RMRK был разработан в начале 2021 года как независимый от языка набор правил о том, как может работать NFT 2.0. Поскольку команда RMRK выросла в экосистемах Polkadot и Kusama, мы хотели внедрить стандарт именно там. Однако ни у Kusama, ни у Polkadot нет возможности добавить он-чейн логику, необходимую для реализации стандарта RMRK, и в то время не было парачейнов, куда мы могли бы это добавить.

Итак, в начале 2021 года мы решили «пробиться» в Кусаме и реализовали наш стандарт, используя подход «граффити». Вкратце, с этой реализацией «граффити» мы отправляли события он-чейн, а затем анализировали их вне блокчейна, используя TypeScript и инструмент, который мы называем «консолидатор». Мы читаем все блоки от первого отправленного события RMRK до последнего блока и анализируем их один за другим, пока не получим последнее состояние.

Это никогда не предполагалось как реальная или устойчивая реализация стандарта RMRK, но поскольку это был единственный способ иметь NFT на Kusama, а сообщество процветало и стремилось создавать NFT следующего поколения и взаимодействовать с ними, это хорошо сработало.

Проблемы с подходом Кусама «Граффити»

Мы всегда предупреждали наших пользователей по разным каналам о недостатках этой реализации: невозможно проверить, был ли уже приобретен NFT, пока консолидатор не выполнит свою работу. Приходится полагаться на централизованный модуль (в данном случае наш сервер с консолидатором) для поиска в новых блоках событий «system.remark», объединять их с историей блоков и, наконец, передавать последнее состояние каждому клиенту (через наш централизованный индексатор/базу данных). Консолидатор и все инструменты имеют открытый исходный код, и любой может запустить наш консолидатор на своем собственном сервере или машине, но на сегодняшний день мы единственные, кто поддерживает его, чтобы наши децентрализованные приложения (например, НФТ маркетплейс singular.app) отображали последнее актуальное состояние.

Отсутствие способа проверки этих транзакций в сети привело к множеству проблем, о которых всегда было известно и о которых сообщалось. В конечном счете, это был временный хак, пока мы не смогли написать реализацию стандарта RMRK в другом стеке, включая смарт-контракты EVM с использованием языка Solidity, Substrate палетты с использованием Rust, Ink! Смарт-контракты WASM с использованием Rust, смарт-контракты Gear и многое другое.

С одной стороны, наличие этой реализации «граффити» позволило нам двигаться быстро и одновременно позиционировать себя как основную и самую популярную реализацию NFT на Кусаме. NFT — это очень социальная технология, и ее результатом стало процветающее и очень интересное сообщество не только внутри RMRK, но и в экосистеме Polkadot в целом. Она объединила людей, пробудила креативность, помогла сотням художников, создателям контента и даже парачейнам монетизироваться и взаимодействовать с их сообществами и сообществом экосистемы Polkadot.

С другой стороны, это означало бесчисленные бессонные часы для команды RMRK по обслуживанию «консолидатора RMRK», отладке и устранению проблем при отключении RPC Kusama, поддержке клиентов при печально известных «двойных тратах» и «двойных покупках», работе с рассинхронизациями, по поддержке централизованных серверов и баз данных, поддержке большого кода на стороне клиента, который, в конечном счете, является средством для предотвращения устаревшего или неправильного состояния.
И всё это только потому, что не хватает он-чейн логики.

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

Внедрение стандарта РМРК

В декабре 2021 года мы начали работать над внедрением EVM стандарта РМРК, и именно здесь мы смогли, наконец, реализовать наше полное видение NFT 2.0 должным образом, без каких-либо недостатков поддержки «граффити». Нам потребовалось более года активной разработки, чтобы закончить контракты, в результате чего появилось несколько EIP, а вскоре и ERC на Ethereum. Это первая полнофункциональная реализация стандарта РМРК. И теперь, когда эта функция завершена, нам нужно было добавить ее поддержку на рынок Singular. Но к этому времени тысячи NFT были созданы и торгуются на «граффити» реализации RMRK, поэтому нам пришлось поддерживать его.

В 2022 году, когда смарт-контракты RMRK EVM были близки к завершению, нам пришлось начать работу по добавлению их поддержки на рынок Singular. Как упоминалось ранее, к этому времени реализация «граффити» была очень хорошо принята и популярна, а тот факт, что это была «халтура» с большим количеством «пластырей», активно игнорировался всеми, кто хотел поиграть с NFT нового поколения. Так что мы не могли просто закрыть его, и из-за этого мы приняли решение добавить поддержку EVM наряду с поддержкой «граффити». Не останавливаясь на этом, мы решили рефакторить нашу кодовую базу для Singular таким образом, чтобы больше реализаций RMRK и блокчейнов могли быть легко добавлены.

Кодовая база в то время была очень тесно связана с инструментами Kusama и polkadot.js. В конце концов, мы пришли к удовлетворительному шаблону React для организации нашего кода и разделения компонентов на презентационные компоненты и компоненты извлечения или отображения данных. Таким образом нам удалось реорганизовать большинство наших компонентов пользовательского интерфейса и код бизнес-логики, однако некоторые причуды Kusama и устаревшего RMRK «граффити» по-прежнему требовали довольно много исключений и особых случаев, которые нельзя было отделить от повторно используемых и кода, не зависящего от выбора блокчейна. Эти накладные расходы на поддержку устаревшей реализации RMRK в сочетании с постоянным обслуживанием устаревшей инфраструктуры и устранением ошибок привели к значительному снижению нашей производительности.

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

Планы на будущее для Singular Marketplace

Мы очень близки к выпуску поддержки RMRK EVM на Singular, и какое-то время она будет жить вместе с нашей устаревшей реализацией “граффити” на singular.app, но вскоре после этого мы разделим Singular на 2 веб-сайта.

1. В приложении singular.app будет только реализация RMRK EVM, а позже и другие «настоящие» реализации RMRK (смотрю на тебя, Инк!).

2. В legacy.singular.app будет только устаревшая граффити-реализация RMRK от Kusama, и мы будем активно отговаривать пользователей создавать или покупать там NFT. График дальнейшей деприоритизации примерно указан ниже:

  • В течение первого месяца после разделения, 2 версия торговой площадки Singular будут работать в основном нормально с почти полным набором функций. «Минтинг» и «Создание коллекции» будут отключены в устаревшем Singular, поэтому новые NFT не могут быть созданы там через пользовательский интерфейс на Kusama. Мы также добавим уведомление, предупреждающее пользователей о снятии приоритета.
  • Через 1 месяц мы добавим опцию миграции только для невложенных и необорудованных NFT. Устаревшие коллекции RMRK, созданные на Kusama, которые не используют часть Equippable стандарта RMRK, смогут повторно развернуть свою коллекцию на RMRK EVM. Это разблокирует возможность для всех владельцев NFT в этой коллекции перенести свои NFT в связанную коллекцию контрактов EVM. Кроме того, мы свяжемся с самыми активными и творческими создателями коллекций Equippable, чтобы помочь им с ручной миграцией на EVM, если они того пожелают.
  • Этот вариант миграции будет активно поддерживаться в течение 2–3 месяцев, в течение этого периода в какой-то момент мы отключим торговлю на устаревшем Singular. Имейте в виду, что устаревший стандарт RMRK является открытым исходным кодом, и другие команды могут создавать свои собственные торговые площадки и пользовательские интерфейсы, если они хотят сохранить его поддержку.
  • Примерно через 3 месяца мы постепенно прекратим поддержку устаревшей инфраструктуры для реализации «граффити» RMRK на Кусаме. Мы пока не закроем его полностью, но наш индексатор и состояние базы данных могут не всегда обновляться, и любые проблемы с ним не будут решаться командой RMRK. Если вы хотите поддерживать инфраструктуру консолидатора и индексатора для устаревшего RMRK на Kusama, свяжитесь с нами, как только мы начнем процесс миграции.
  • Примерно через 4–5 месяцев мы полностью закроем инфраструктуру Kusama и устаревшее децентрализованное приложение Singular.

Удаление всего устаревшего кода из новой кодовой базы Singular значительно повысит нашу производительность и позволит деливерить быстрее и качественнее. Избавление от необходимости поддерживать инфраструктуру консолидатора Kusama значительно улучшит качество жизни команды RMRK и позволит нам сосредоточиться на том, что важно для RMRK и сообщества в целом. Мы благодарны сообществу Kusama за всю креативность и участие, которые произошли в течение этих 2 лет, и это не конец нашего участия в экосистеме Polkadot, мы продолжим использовать парачейны Polkadot с нашей реализацией EVM, а затем с уникальными v2 NFT от Parity и РМРК «Ink!» реализацией смарт-контрактов, которую нам помогла создать команда Astar. Мы надеемся, что сообщество понимает, что снижение приоритета реализации устаревшего RMRK является лучшим для всех участников.

Криптолента