开发那点事(十六)从零开始搭建一个NFT数字藏品平台

这篇具有很好参考价值的文章主要介绍了开发那点事(十六)从零开始搭建一个NFT数字藏品平台。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面的话
从6月初到七月研究了将近一个月NFT 区块链这方面的东西,从啥都不会到了解原理,总算是有点成果了,在这里分享给大家。

核心大纲

  • 百度超级链开放网络(Solidity语言)
  • 集成openzeppelin中的ERC721合约快速完成合约开发
  • Springboot 作为后台开发语言调用线上合约
  • 通过调用线上合约将数据永久存储在链上

由于篇幅受限,在这里我就不过多的阐述有关NFT的背景知识,总结成一句话就是把用户的数据永久存到区块链上使得用户的资产私有化。

编写合约于编译合约

  • 依赖安装

全局安装 solcjs 用于编译可部署到链上的solidity合约
cnpm install solcjs -g

node安装openzepplin

npm init
npm install --save  @openzeppelin/contracts

在项目根目录编写合约 main.sol
示例合约详情

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

import "../node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "../node_modules/@openzeppelin/contracts/access/Ownable.sol";

contract Xj is ERC721, Ownable {
   constructor() ERC721("nft", "MTK") {}
   }

合约编写完成之后通过刚刚安装的solcjs 进行编译
编译命令如下

solcjs --abi --bin .\main.sol -o build

最后,合约项目目录如下,其中build文件夹下的 main_sol_Xj.abi main_sol_Xj.bin这两个文件就是咱们需要部署到线上的合约文件了
从零搭建nft交易平台
部署合约到链上以及调用合约方法

以Springboot为例
在部署调用合约之前需要去百度超级链官网上注册账号,点我去超级链官网
选择开发网络完成注册流程,然后充点钱,10块够用很久。
最后得到private.key文件 以及设置6位的交易密码,这两个在超级链服务初始化时需要使用

官方开发文档

可以调用里面的铸造 转移等方法 生成nft,并交易给个人用户。唯一需要注意的是,在百度超级链里有一个用户唯一编码,需要通过用户输入获取,用来确定用户在百度链上的唯一性
在这里获取

其实仔细读一下openzeppelin里的源码,就能了解NFT数字藏品的真正原理

所有的nft藏品数据以及权限控制,其实都是通过合约里的各种 map(key,value) 等变量来实现的
藏品数据也是存在合约里的map里
通过Java或者调用合约里的方法去生成修改里面的数据
文章来源地址https://www.toymoban.com/news/detail-792087.html

到了这里,关于开发那点事(十六)从零开始搭建一个NFT数字藏品平台的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • less预处理语言的运用之-变量拼接那点事

    less语法的技巧总结,很基础,熟练掌握后能提高我们在大型项目中的开发效率 递归 less连接符与import 关注我的个人公众号,获取更多前后端开发经验知识

    2024年02月16日
    浏览(58)
  • Bootstrap.yml那点事 Spring Cloud 配置中心多环境配置

    加载顺序 若application.yml 和bootstrap.yml 在同一目录下:bootstrap.yml 先加载 application.yml后加载,bootstrap.yml 用于应用程序上下文的引导阶段。bootstrap.yml 由父Spring ApplicationContext加载。 配置区别 bootstrap是spring cloud的配置上下文加载。由spring-cloud-context包加载。引入依赖 具体加载类

    2023年04月08日
    浏览(32)
  • 关于聚合根,领域事件的那点事---深入浅出理解DDD

    作者:京东物流 赵勇萍 最近有空会跟同事讨论DDD架构的实践落地的情况,但真实情况是,实际中对于领域驱动设计中的实体,值对象,聚合根,领域事件这些战术类的实践落地,每个人理解依然因人而异,大概率是因为这些概念还是有一些抽象,同时有有别于传统的MVC架构

    2023年04月27日
    浏览(29)
  • 【Web3 系列开发教程——创建你的第一个 NFT(3)】开始创建 NFT

    本文将引导你使用以太坊和星际文件系统 (IPFS) 编写和部署不可替代 (ERC721) 代币智能合约。 星际文件系统 IPFS 是一个旨在 实现文件的分布式存储、共享和持久化的网络传输协议 。它是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点构成一个分布式文件系统。它是

    2023年04月08日
    浏览(50)
  • 从零开始,搭建一个简单的UVM验证平台(四)

    UVM前置基础: 1.UVM基础-factory机制、phase机制 2.UVM基础-组件(driver、monitor、agent...) 3.UVM基础-TLM通信机制(一) 4.UVM基础-TLM通信机制(二) ...还在更新 从零搭建一个UVM验证平台: 从零开始,搭建一个简单的UVM验证平台(一) 从零开始,搭建一个简单的UVM验证平台(二) 从

    2023年04月14日
    浏览(44)
  • React--》从零开始搭建一个文章后台管理系统

    目录 项目准备 项目搭建 scss预处理器的使用 配置基础路由 组件库antd的使用 开发者工具的安装 登录模块 基本样式搭建 创建表单结构 获取表单数据并进行相关登录操作 对登录模块的token进行相关处理 路由鉴权实现 后台页面模块 基本页面结构搭建 菜单高亮显示 展示个人信

    2023年04月17日
    浏览(34)
  • 什么是Dapp?带你从零开始搭建一个Dapp

    前言:Dapp就是去中心化应用,它和我们平时使用的App(微信,支付宝等)只差了一个去中心化,如何理解这一去中心化?从体验层面来说:Dapp中并没有管理者,大家都是平等的,互相监督;而从技术层面来说:传统的App和部署在服务器的后端产生交互,而Dapp则是和部署在区

    2024年02月05日
    浏览(31)
  • 如何从零开始开发一个小程序

    申请账号 小程序注册页 开发设置 登录 小程序后台 ,我们可以点击左侧菜单 “开发”-“开发管理”,点击后正文上方点击 “开发设置” ,就看到小程序的 AppID(小程序ID) 了 。 小程序的 AppID 相当于小程序平台的一个身份证,后续你会在很多地方要用到 AppID (注意这里要区别

    2024年02月10日
    浏览(43)
  • 从零开始搭建STM32CubeMX开发环境

    本文记录一下如何从零开始使用STM32CubeMX,包括软件的安装,环境的搭建,配置代码的生成等; 本文以STM32G030C8T6为例,如果你的单片机不是以STM32G030C8T6为例,换成你的单片机类型即可,过程都是通用的; STM32CubeMX 是意法半导体推出的针对STM32 系列芯片的图形化配置工具,通

    2024年02月12日
    浏览(36)
  • 从零开始搭建游戏服务器 第一节 创建一个简单的服务器架构

    由于现在java web太卷了,所以各位同行可以考虑换一个赛道,做游戏还是很开心的。 本篇教程给新人用于学习游戏服务器的基本知识,给新人们一些学习方向,有什么错误的地方欢迎各位同行进行讨论。 本篇教程预计使用Java+Redis+Mongo 本着先完成再完美的原则,从最简单的

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包