NFT代币智能合约系统开发
Web3社区对于非同质化带币(NFT)充满了期待。I8I开发259I系统3365,尽管还没有级应用的出现,但是这项技术已经重塑了数字资产所有权,身份体系,创新范式和社区运作方式。
因为NFT是可以被买卖交易的数字资产,而NFT交易所收集了NFT的信息并且撮合了买家和卖家,所以NFT交易所是生态中一个必不可少的部分。
这个教程讲解了如何用Solidity来搭建NFT交易所的“后端”,如何开发承载交易所业务逻辑的智能合约。在代码中,我们会创建一个NftMarketplace.sol智能合约和一个兼容ERC-721(NFT)标准的代币合约,然后将这个NFT展示在我们的交易所上。
你需要有一些编程经验,如果你了解一些基础的Javascript,就可以完成整个项目开发。当然如果能够熟悉以太坊的术语就更好了,以太坊的相关知识可以通过浏览以太坊来了解。
这个交易所将会有以下的基础功能:
上架NFT
更新和下架NFT
购买NFT
获取所有的上架NFT的信息
获取卖家的当前状态
智能合约具有以下特征:
可自动执行,由于协议条款存储在代码中,因此,智能合约在相关各方的行动触发后会自动强制执行规则。
可验证和安全,代码透明,可以验证,并且密码安全;
节省成本,中介机构可以节省成本和费用;
速度,智能合约可用于自动化业务任务,从而节省了工作时间;
自治,无需第三方或第三方代理;
不可篡改,由于智能合约是存储于区块链中的,也就意味着所有的这些信息是不可篡改的和去中心化的。
与常规合约一样,智能合约旨在执行协议条款——无论是加密货币交换、代币化权利、身份证明还是其他任何东西。
以上功能都会通过交易所智能合约实现。你可以先思考一下上述的功能是什么意思,因为这些功能的代码逻辑,就是它们业务逻辑的实现。比如说,在交易所中上架一个NFT的时需要什么数据?需要Token ID。因为这个交易所可以上架很多不相关的NFT,同时也需要能够给每一个token加上价格。
OK,那在写NFT相关合约之前,让我们先设置好项目和开发环境。这个项目的GitHub Repo在这里。这个Repo会比这个教程的内容更深入,所以你自己可以根据它去实现更多的功能。
项目环境搭建
在这个项目中,我们会用到yarn,运行npm install-g yarn来全局安装它。另外,你需要确定你的机器上有Node.js,运行node–version来检查它有没有被安装。
除此以外,还会用到Hardhat来编译,部署,测试和交互我们的智能合约,Hardhat是一个以太坊开发环境,相关的知识所以浏览一下Hardhat的的新手教程。
我将用<<root>>来指代项目目录,打开命令行,进入到项目目录,打开IDE(你可以使用任何支持javascript的IDE,比如VSCode)。
在项目目录中,创建一个package.json文件,复制这个文件的内容。这个文件中会包含NPM的依赖包,这些依赖很多都是Hardhat所需的。然后运行yarn install来安装所有的依赖。当安装完成以后,在项目目录下查看node_modules文件夹,这个文件夹会包含所有下载好的依赖文件。
这个教程会使用Hardhat的本地区块链网络,这意味着我们并没有真正接触以太坊的主网和测试网。如果你想要在以太坊测试网比如Rinkeby中测试,请参考Repo的README。
因为NFT是可以被买卖交易的数字资产,而NFT交易所收集了NFT的信息并且撮合了买家和卖家,所以NFT交易所是生态中一个必不可少的部分。
这个教程讲解了如何用Solidity来搭建NFT交易所的“后端”,如何开发承载交易所业务逻辑的智能合约。在代码中,我们会创建一个NftMarketplace.sol智能合约和一个兼容ERC-721(NFT)标准的代币合约,然后将这个NFT展示在我们的交易所上。
你需要有一些编程经验,如果你了解一些基础的Javascript,就可以完成整个项目开发。当然如果能够熟悉以太坊的术语就更好了,以太坊的相关知识可以通过浏览以太坊来了解。
这个交易所将会有以下的基础功能:
上架NFT
更新和下架NFT
购买NFT
获取所有的上架NFT的信息
获取卖家的当前状态
智能合约具有以下特征:
可自动执行,由于协议条款存储在代码中,因此,智能合约在相关各方的行动触发后会自动强制执行规则。
可验证和安全,代码透明,可以验证,并且密码安全;
节省成本,中介机构可以节省成本和费用;
速度,智能合约可用于自动化业务任务,从而节省了工作时间;
自治,无需第三方或第三方代理;
不可篡改,由于智能合约是存储于区块链中的,也就意味着所有的这些信息是不可篡改的和去中心化的。
与常规合约一样,智能合约旨在执行协议条款——无论是加密货币交换、代币化权利、身份证明还是其他任何东西。
以上功能都会通过交易所智能合约实现。你可以先思考一下上述的功能是什么意思,因为这些功能的代码逻辑,就是它们业务逻辑的实现。比如说,在交易所中上架一个NFT的时需要什么数据?需要Token ID。因为这个交易所可以上架很多不相关的NFT,同时也需要能够给每一个token加上价格。
OK,那在写NFT相关合约之前,让我们先设置好项目和开发环境。这个项目的GitHub Repo在这里。这个Repo会比这个教程的内容更深入,所以你自己可以根据它去实现更多的功能。
项目环境搭建
在这个项目中,我们会用到yarn,运行npm install-g yarn来全局安装它。另外,你需要确定你的机器上有Node.js,运行node–version来检查它有没有被安装。
除此以外,还会用到Hardhat来编译,部署,测试和交互我们的智能合约,Hardhat是一个以太坊开发环境,相关的知识所以浏览一下Hardhat的的新手教程。
我将用<<root>>来指代项目目录,打开命令行,进入到项目目录,打开IDE(你可以使用任何支持javascript的IDE,比如VSCode)。
在项目目录中,创建一个package.json文件,复制这个文件的内容。这个文件中会包含NPM的依赖包,这些依赖很多都是Hardhat所需的。然后运行yarn install来安装所有的依赖。当安装完成以后,在项目目录下查看node_modules文件夹,这个文件夹会包含所有下载好的依赖文件。
这个教程会使用Hardhat的本地区块链网络,这意味着我们并没有真正接触以太坊的主网和测试网。如果你想要在以太坊测试网比如Rinkeby中测试,请参考Repo的README。