探讨下NFT带来的价值,源码开发
导读:
NFT盲盒系统开发,NFT交易系统,APENFT系统治理,数字藏品盲盒系统,NFT艺术品铸造系统,NFT系统开发,数字藏品交易系统,数字藏品拍卖系统,NFT交易系统,天猫数字藏品代上架,蚂蚁链粉丝粒代上架,NFT中国代上架,Opensea平台代上架,NFT系统源码,NFR系统,NFR系统源码,数字产品交易系统源码,NFT培训,NFT入行,NFT如何参与,元宇宙系统开发,元宇宙模式开发公司,BSC智能链NFT元宇宙挖/矿游戏系统开发,NFT元宇宙链游系统开发,BSC链质押流动挖/矿NFT游戏开发,链游开发,dapp智能合约软件定制,defi质押挖/矿系统源码搭建,上链挖/矿平台dapp平台源码搭建,开发模式分析,经济模型分析,案例分析,技术分析,开发源代码,开发技术公司,开发技术团队,开发服务商,CyberDragon赛博之龙游戏软件系统开发,NFT和链游占据加密新闻头条
自从2017年提出ERC-721规范后,非同质化通证(NFT)已经从虚拟宠物交易的实验性平台发展到被主流行业大规模采用。在这个教程中,我们将门票作为一种NFT资产,利用FLow区/块/链的Cadence智能合约来解决票务市场的主要痛点,例如防伪、中介手续费、二级市场混乱等问题。
NBA TopShot已经向其80万用户售卖了超过3亿美元的NFT,索斯比则刚刚以1700万美元的价格拍出一幅数字艺术品。当你购买一个NBA TopShot藏品时,你并没有获得唯一的商业权力,你甚至不能独享其权力。实际上那幅1700万美元的艺术品,你可以免费观赏。
让我们探讨下NFT带来的价值:资产具有密码学算法可验证的所有权以及合约赋予的售卖或转让能力。
很多类型的资产可以受益于密码学可验证的所有权:成绩单、证书、知识产权等。想象一下用区/块/链代替USPTO…可以跳过律师直接提交你的申请,先到先服务。
是一个朋友的建议让我看是考虑将门票作为一种NFT资产,这很有意义。票务市场Zui大的问题是什么?下面是一些:
防伪大量的交易手续费。我们都知道当你看到50美元的门票却需要花费72.50美元以便覆盖售票中介的成本时的感觉不受监管的二级市场
如果我们使用智能合约来管理资产,这些问题就会消失。确定NFT的真实性是小事一桩,交易
手续费也可以通过采纳区/块/链得到大幅削减。
对我而言,Zui令人兴奋的一点是票务发行人能够设置二级市场条款。你可以让你的资产不可转让,确保只能低于标价出售,甚至在任何二次销售时帮助表演者削减成本。
在这个去中心化系统中,每个人都可以得到更公平透明的体验。好了,让我们开始这个系统的开发。
我们需要做出的第一个决定,是选择使用哪个区/块/链平台。
我们可以使用以太坊,交易手续费有点高,在未来的ETH 2.0升级后手续费可能显著下降。
Flow是一个开发者友好的新型区/块/链生态,手续费微乎其微,听起来是一个好的选择。
实际上Dapper Lab的NBA Top Shot就是使用Flow智能合约,和我们下面要部署的合约没有太多区别。
从较高的层面讲,下面就是我们需要构造的一个基本但可用的票据集市,我们没有实现完整的买/卖功能,这可能是下一个教程的主题。
在我们的Flow智能合约中定义票证的不可转让条款创建虚拟账号以便发行人和参与者能够访问NFT使用交易来安全地展示常见功能,例如铸造和票证转让使用React.js实现一个简单的前端web界面
我利用Flow文档中的教程来熟悉其智能合约编程语言Cadence以及其标准的NFT模板。如果你打算遵循这一学习路径,则需要安装FlowCLI。
当然我们可以在Flow主网或测试网部署合约,我们讲利用FLow仿真器来进行快速本地开发。使用如下命令启动仿真器:
我们的非同质化票证智能合约需要定义NFT的特点以及铸造、存储、转让等函数。其中某些功能需要公开可用,例如存入或获取元数据,而另一些功能例如提取和铸造,则需要一定的权限才可以执行。
我也希望确认我们的票证是不可转让的,我们需要设置必要的检查条件以便禁止多次存入。下面看一下我们的Cadence智能合约。
关于Cadence,Flow官方文档要比我介绍的更清楚,在更高的层面来说,Cadence使用Resources(资源)和Capabilities(能力)来定义谁(Who)可以访问什么(What)功能。
例如,我们讲NFTCollection和NFTMinter资源存入部署账号的路径,这意味着这些资源是私有的。我们在路径下发布一个指向NFTReceiver能力的链接。需要注意的是,我们的NFT只是简单的利用其整数ID定义,并采用一个numTransfers计数器来记录NFT的存入次数。
在这个示例中,如果某人试图转让我们的票证,交易将失败。将合约存入名为的目录。
在我们部署合约之前,我们需要创建flow.json文档来指定谁(Who)在哪里(Where)部署什么(What)。在项目目录中执行以下命令初始化这个文件:
这会给我们一个启动账号以及相应的私钥。稍后我们将查看flow.json文件,我们需要为参与者创建一个账号。运行下面的代码来生成密钥对:
保存上述命令生成的密钥对,运行:
将ATTENDEE_PUB_KEY替换为你刚刚生成的公钥。
记录下来0x开头的地址。现在我们具备了flow.json需要的所有资料。
注意:永远不要共享你的私钥。
你将看到我们在NonFungibleTicket合约中添加了一个指针(Pointer),我们的新的参与者账号以及仿真器账号(标识我们的票证发行人)的合约部署。现在我们可以用下面的命令部署合约:
如果一切顺利,你将会看到下面这样的输出:
现在是时候创建我们的第一个NFT了。下面我们将使用Cadence,我们将使用交易而不是定义一个合约。交易是我们使用智能合约中定义的函数的方法,交易执行将导致区/块/链状态的变化。
对我而言,这部分有趣的环节是NFT的元数据。我创建了一个演示用的具有若干属性的票证,例如区域和排,以及一个指向票证图像的URI链接。
这引起了我的思考,我不知道是否轻量级NFT用户理解其工作原理。
区/块/链在跟踪NFT的持有人以及其相关的元数据方面表现出色。数字资产更常见的实现方式是采用外部存储来保存这些资产的实际内容。
作为S3 bucket服务的用户,没有什么可以阻止我删除或更新这些文件!
想象一下,你花费3万美元购买了Steph Curry的3分球,Dapper Lab悄悄地将其替换为AlexCaruso的罚球!希望像IIPFS这样的去中心化存储方案能够解决这一类问题。
我们的票务发行账号部署合约,该账号在其私有存储中保存了NFTMinter资源。必须使用这个账号来签名如下交易:
如果我们尝试用参与者账号签名,交易就会失败。让我们用一个Cadence脚本来检查我们的票务签发账号的余额。
使用如下命令运行脚本:
你将看到一个包含所持有NFT的ID的数组:
这表示发行账号目前持有我们新铸造的NFT!
现在我们将把门票转让给一位热切等待的乐迷。我们将在参与者的存储中创建一个NFTCollection资源。
这让我们有机会了解FLow架构的一个有用的方面。
在以太坊中,如果你将以太币发送到一个无效的钱包地址,这些以太币就没了。在FLow中,在没有明确的目标地址时资源不可能发送出去,或者整个交易回滚。我们不会因为手误发送到无效地址而失去门票。
使用以上交易运行如下命令:
现在我们的参与者已经准备接收票据了。我们将使用Cadence交易来完成这个操作,在这个交易中发行账号取出其NFT存入参与者的藏品存储。
别忘了每次存入时,合约都会增加存储在NFT中的numTransfers参数的值。在这个交易之后,numTransfers=1.
下面是合约的内容:
使用下面的命令转让门票:
你可以分别用两个账号运行CheckTicketBalance脚本,验证下getIDs()在使用发行账号时返回空数组,而在使用参与者账号时返回!让我们看看如果试图将门票转回发行账号会发生什么情况。
我们的智能合约正确地杜绝了这种情况的发生。我们的门票在二级市场不可以销售!
我们不会深入介绍前端应用的细节,它主要是利用FLowJS库访问我们的Cadence合约。在这个简单的示例程序中,我们读取NFT的元数据,你可以用同样的方法执行任何Cadence代码。
使用如下命令启动我们的前端应用:
微三云系统底层架构优势:分布式+微服务架构
已稳定支持多家超过100亿营业额的平台,上百家过百万会员的商城平台,齐全的订单会员数据接口,方便二次开发,对接第三方系统便捷,支持多应用多功能并行开发快速部署上线,系统安全系数高,系统稳定性高,并增加秒杀级算法框架,能满足高迸发的业务场景。
详情请看网站资讯https://wsyguanyun.com或https://32wsy.com