0
点赞
收藏
分享

微信扫一扫

NFT卡牌盲盒链游系统dapp开发技术

   NFT的非同质令牌不同于比特币的“同质令牌”。每个NFT代表一个不同的对象,所以它不能交换,替换或切割。当创作者将一件NFT作品“投”在区块链上,就会发生一定数量的代币来证明其稀缺性。


第一步:制作id


 制作id,这是把物质制作成NFT的第一步。物质有哪些?一段文字、一张图片,一件衣服等,夸张的说,现实世界的物质,无论是虚拟的(游戏装备)或实质物质,都可以被通证化。


 如何操作?


 通过第三方技术手段获取物质的唯一标志性中间产物。


 因此制作NFT第一步,广义于下面等式:


 id=F(I)


 I=输入的物质


 F=处理函数,代表一种方法


 id唯一标志性的中间产物


 最简单的例子就是哈希函数,不考虑哈希碰撞,它就可以根据不同的内容输出不同的哈希值。思维在这里不要局限于哈希函数。

NFT卡牌盲盒链游系统dapp开发技术_智能合约

 获取图片的唯一id


 这里用图片代表一系列的文件类数据。


 我们可以将图片转换成[]byte字节数组,然后计算其哈希值。这种操作虽然比较简单,但是图片别人却不能访问,看不到;


 如果我们想向外部任何人提供图片的读权限,在计算完id后,有两种做法:


 上传图片到文件服务器,任何人可以通过url链接访问。这里的服务器是中心化的;


 增加区块链属性。上传文件到IPFS(ipfs是什么,自行搜索),如此一来,文件别人能访问,同时还具备了区块链的去中心化等属性。其中IPFS会在上传完文件后,会使用它的算法,帮你计算好哈希值返回,可以直接用它的作为id。


 获取衣服的唯一id


 这里用衣服来代表一系列的实际物质。如果获取它们的唯一id呢?做法可以放飞思维去思考,比如可以:


 衣服的出厂信息、扫描内容、照片,等系列关于它的信息,数据化,然后用这些数据制作成文件,最后参考图片的做法。


 第二步:通证化


 第一步中获取了物质的id,现在要把它们通证化。切记一点:目前公认的NFT都是基于区块链公链的,那么以后是不是会一直这样呢?不一定,说不准出来了新的共识。


 基于不同公链的流程


 通证化的流程如下:


 选择一条区块链公链。这里的选择会决定后面智能合约等系统组件的技术栈,这一点很核心;


 在所选的公链上开发智能合约;


 所开发的智能合约需要遵循一些基础约定,比如至少能保证物质的id能达到验证去重,什么意思呢?意思是,如果A在今天上传了id=1到链上,明天B也上传同个id=1到链上,合约要能告诉B,你不能上传了,id已经存在;


 部署智能合约到链上,此时它变成DApp;


 通过发交易的方式,调用该智能合约的方法,将id等相关数据存储到链上。


 NFT的智能合约


 NFT智能合约可以基于不同的公链开发,它不局限于任何一条公链。不同公链的智能合约方案实现也不同,下面以以太坊公链举例说明。


 在以太坊上面,开发NFT智能合约,已经有很多标准,比如ERC-721 1155 998,各有各的特点,但它们的特点是在基础属性上拓展而来的。(各标准文档:https://eips.ethereum.org/EIPS/eip-721)


 如果选择ERC-721标准开发NFT智能合约,在元数据存储部分,就有tokenUrl这项,它相当于物质的唯一id,像下面的样子,_tokenURIs存储的就是通证当前计数id与其对应的tokenUrl,这里的tokenUrl是字符串格式,一般是文件url,存储在IPFS或其他服务上面的文件的链接,但不局限于链接,也可以是其它的内容。

举报

相关推荐

0 条评论