
Создание будущего: проектирование и внедрение безопасного NFT Marketplace DAPP
29 июля 2025 г.Таблица ссылок
Аннотация и I. Введение
II Проектирование и реализация
Iii. Статус проекта
IV Результаты
V. Ограничения и будущая работа, заключение и ссылки
II Проектирование и реализация
Процесс разработки нашего NFT Marketplace DAPP включал несколько ключевых этапов, включая разработку пользовательского интерфейса, внедрение интеллектуальных контрактов на блокчейне, интеграция со сторонними API и проведение тестирования и оценки. В этом разделе мы предоставляем подробный обзор каждого этапа, включая используемые инструменты и технологии, возникающие проблемы и разработанные решения. Кроме того, мы описываем методологии, используемые для надежного подключения кошельков пользователей, создавая уникальные NFT с использованием моделей глубокого обучения, манипуляции NFT на блокчейне, разработке рынка для торговли NFT и созданием профилей пользователей для управления коллекциями NFT. Предоставляя всесторонний отчет о нашем процессе разработки, мы стремимся предоставить информацию и лучшие практики для создания удобных для пользователя и безопасных DAPP для управления и торговли цифровыми активами на блокчейне.
А. Кошелек соединения
Функция подключения кошелька является критически важным компонентом NFT Marketplace DAPP, поскольку он позволяет пользователям надежно подключать свои криптовалютные кошельки с DAPP, не выявляя свои личные ключи. Это достигается за счет использования Metamask [11], популярного расширения браузера, которое действует как мост между браузером пользователя и их криптовалютным кошельком.
Когда пользователь обращается к NFT Marketplace DAPP, им предлагается подключить свой кошелек через Metamask. После подключения пользователь может взаимодействовать с функциями DAPP, такими как генерирование и манипульщение NFT, без необходимости вводить свои личные ключи вручную. Это устраняет риск кражи ключей или несанкционированный доступ к цифровым активам пользователя.
Чтобы обеспечить безопасное и удобное взаимодействие с NFT Marketplace DAPP, мы использовали React.js [6] с Ether.js [7], популярной библиотекой для взаимодействия с сети на основе Ethereum. Эта библиотека позволила нам подключить DAPP с криптовалютными кошельками пользователей через расширение браузера Metamask. Библиотека ether.js предоставила простой и интуитивно понятный API для отправки и получения данных из блокчейна, что позволяет нам легко интегрировать DAPP с сетью Ethereum [5].
B. NFT Generation
Генерация NFT является важным аспектом нашего приложения, которое включает в себя использование модели глубокого обучения для создания уникальных NFT -изображений на основе пользовательского ввода. Чтобы реализовать эту функцию, мы использовали API OpenAI [4], который обеспечивает доступ к предварительному модели Dall · E, способной генерировать изображения из текстовых подсказок.
Чтобы сгенерировать NFT, пользователь вводит набор семенных слов или фраз, которые описывают желаемые характеристики NFT. Эти входы передаются через наш сервер Backend Express [8], который связывается с API OpenAI, который генерирует уникальное изображение, используя модель Dall · E. Эта модель обучается на массивном наборе данных изображений и текстовых подсказок, что позволяет ему генерировать высококачественные и разнообразные NFT-изображения на основе пользовательского ввода. Использование модели глубокого обучения также позволяет создавать персонализированные и уникальные NFT, которые нельзя легко воспроизвести.
Интеграция технологии блокчейна и глубокого обучения в процессе генерации NFT позволяет создавать ценные и отличительные цифровые активы. Используя силу этих технологий, NFT Marketplace Dapp предоставляет уникальный и захватывающий способ для пользователей, чтобы создавать, владеть и торговать NFT.
C. NFT Minting
Функция Minting NFT позволяет пользователям создавать и продавать уникальные цифровые активы на блокчейне. Для реализации этой функции мы использовали комбинацию API OpenAI, IPFS и блокчейна Ethereum [5].
Чтобы заманить NFT, пользователь сначала генерирует изображение, используя API OpenAI. Как только изображение генерируется, пользователь нажимает кнопку «Список NFT», которая инициирует процесс матча.
На этом этапе создается объект JSON, содержащий имя NFT, описание, цену и URL -адрес изображения, предоставляемый API OpenAI. Этот файл JSON затем прикрепляется к IPFS, используя метод Pinata API Pinjsontoipfs [10], который возвращает хэш IPFS, который служит URI метаданных для NFT.
Затем называется функция Mint в интеллектуальном контракте, которая создает новый токен на блокчейне Ethereum и устанавливает свой URI в хэш IPFS, возвращаемый API PINATA. Умный контракт также указывает характеристики токена, такие как его имя, символ и общее количество токенов, существующих. Как только функция выполнена, NFT официально фиксирован и может быть просмотрен на рынке. Metadata URI, хранящийся на IPFS, позволяет любому просматривать имя, описание, цену и изображение NFT. Идентификатор токена на блокчейне гарантирует, что NFT является уникальным и может быть передан между пользователями.
Связывая токен NFT с хэшем IPFS, мы гарантируем, что метаданные NFT децентрализованы и защищены от подделки. Кроме того, использование интеллектуального контракта на блокчейне Ethereum позволяет пользователям надежно и прозрачно передавать право собственности на свои NFT, поскольку информация о праве собственности на блокчейн сохраняется.
D. Marketplace
Функциональность рынка этого приложения позволяет пользователям просматривать и покупать NFT, созданные другими пользователями. Эта функция построена на блокчейне Ethereum, используя Testnet Goerli [3], и позволяет пользователям взаимодействовать со умным контрактом, который обрабатывает создание, хранение и передачу NFT.
На рынке отображаются все доступные NFT, хранящиеся в контракте, позволяя пользователям просматривать их и просматривать их связанные метаданные, такие как имя, описание и цена. Метаданные хранятся на IPFS, обеспечивая децентрализацию и защиту от несоблюдения.
Чтобы приобрести NFT, пользователь нажимает на кнопку «Купить», связанную с желаемой NFT, запуская вызов функции BuyToken Smart Contract. Функция передает право собственности на NFT пользователю и обновляет хранилище Smart Contract, чтобы отразить новое владение. Затем транзакция записывается на блокчейн, обеспечивая неизменную запись о передаче.
DAPP разработан с помощью удобного интерфейса, который включает в себя четкие инструкции и интуитивные кнопки для просмотра, покупки и продажи NFT. Использование технологии блокчейна и IPFS обеспечивает безопасность и целостность транзакций NFT и метаданных, обеспечивая беспрепятственный пользовательский опыт.
E. Пользовательский профиль
Страница UserProfile является ключевым компонентом NFT Marketplace DAPP, предоставляя пользователям обзор владения и стоимости своей учетной записи. Смарт -контрактные возможности Ethereum Blockchain интегрированы в интерфейс DAPP для реализации этой функции.
Когда пользователь обращается к своей странице пользователя, DAPP извлекает данные, которые относятся к учетной записи пользователя. Эти данные включают в себя адрес кошелька пользователя, общее количество принадлежащих NFT и общее значение NFT в владении пользователем. DAPP отображает эту информацию в удобном формате на странице пользователя. Эта страница также отображает все
NFTS принадлежит пользователю. DAPP запрашивает умный контракт Ethereum Blockchain для получения списка собственных NFT и получает метаданные NFT из IPF, используя URI метаданных, связанные с каждым идентификатором NFT токена. Информация отображается в визуально привлекательном и простом в навигации формат.
Интеграция интеллектуальных контрактов на страницу пользователя позволяет пользователям надежно и прозрачно просматривать свое право собственности и ценность NFT на блокчейне.
Ф. командная работа и вклад
Наш проект был совместным усилием, все три среди членов команды. Каждому члену команды было назначено различные задачи, основанные на их сильных сторонах и областях знаний. Мы следовали за гибкой методологией, чтобы гарантировать, что каждая задача была выполнена в течение данной временной шкалы.
В таблице ниже показано разбивка задач, назначенных каждому члену команды:
Авторы:
(1) Пиюш Батра, кафедра компьютерных наук, Университет Альберты (pbatra2@ualberta.ca);
(2) Гаган Радж Сингх, кафедра компьютерных наук, Университет Альберты (grsingh@ualberta.ca);
(3) Ритик Ганди, кафедра компьютерных наук, Университет Альберты (rgandhi1@ualberta.ca).
Эта статья есть
Оригинал