LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > IPFS相关--将IPFS应用于游戏资产元数据

IPFS相关--将IPFS应用于游戏资产元数据

2019-10-17 IPFS原力区 来源:区块链网络

1571288827379379.jpg

本文由IPFS原力区收集译制,版权所属原作者

1571288828073743.jpg

(IPFS元数据演示的UI)?

总览

Non-fungible代币代表了一种全新的、创新的、拥有保护和分发数字财产的方式。

?数字财产的概念对于许多人来说是陌生的,但游戏玩家凭感觉就能理解这一概念:游戏玩家每年花费数百至数千小时来玩游戏,投入了无数的努力来赚取稀有物品,并将这些奖励称为自己的。对于那些玩过《Magic: The Gathering》等卡牌游戏的玩家,或者在《魔兽世界》中玩了几千个小时的游戏的玩家来说,所有权的观念更加强大。

区块链游戏是视频游戏发展的下一步。将游戏资产的真实所有权与现代大型多人在线游戏结合起来是有意义的。这也是为什么《黑客帝国》和《一级玩家》能与现代玩家产生如此强烈的共鸣的一个重要原因:数字世界与任何有形的东西一样真实,身份和财产的所有权是其中的一部分。?

提供长期数字资产的后勤工作比表面上看起来要复杂得多。首先,要使资产真正去中心化并具有可验证的所有权,资产的记录应该存在于公共区块链上,比如Ethereum。?

理论上,这就足够了:所有与资产所有权和身份相关的信息都可以在链上存在。实际上存储过多的信息是非常昂贵的,特别是当许多游戏资产可以拥有多个图像或3D模型、声音文件、知识页面等等时。?

有一种方法可以将资产直接链接到所有关联的元数据off-chain,但是当前的许多实现都引用集中的服务,比如Amazon Web服务、谷歌云或Heroku。如果这些来源中的任何一个离线或关闭,应该与NFT紧密相连的资产就会丢失。?

好消息是,有一种方法可以解决此问题:将所有元数据存储在分散的分布式文件系统中。IPFS,即星际文件系统,是一种旨在世界范围内的多个源中存储大型文件的系统,并且在此过程中放弃了对资产文件的直接控制,而希望将其提供给公众以供托管、支持和使用。?

它在存储和提供去中心化资产方面更便宜、更有效,而且对于NFTs来说,在不增加公共区块链的重量和成本的情况下,拥有大量的数据的自然进展。?

IPFS概述

IPFS是“一种点对点超媒体协议,旨在使web更快、更安全、更开放”。简单地说,它是一个P2P文件共享网络。?

例如,以文件“cr0wngh0ul.gif”为例;如果我将其存储在服务器上并希望与他人共享,他们可以在这里访问它。但是,如果我的网站因未支付AWS账单而被关闭(糟糕)或不小心删除了我的所有存储,那么就没有人能够再访问这个文件了。?

幸运的是,我还把我的存储上传到了IPFS,当我将?“ cr0wngh0ul.gif”固定到IPFS时,它将获得以下内容标识符(也称为CID):?

QmYcwpKrv5icSDDDx9Jc4QA9y369WYkeZh13fTGYW5ArBo?

CID是文件内容的加密哈希,这也是它在网络上被识别的方式。如果文件更改(即使是最细微的更改),CID也会完全不同。因此,如果有人声称我文件的CID为C0ffEeKrv5icSDDDx9Jc4QA9y369WYkeZh13fTGYW5ArBo,我们将知道它不是实际文件。?现在你有了我的文件的CID,并且知道它是真实的,你可以使用IPFS客户端或公共网关在本地查看和保存文件。?

客户端将连接到网络上的对等点,允许你访问文件。网关允许从单个IPFS服务器通过HTTP访问IPFS文件。

如果我的服务器还在运行,可以通过IPFS网关查看文件:

https?://ipfs.cr0wngh0ul.org/ipfs/QmYcwpKrv5icSDDDx9Jc4QA9y369WYkeZh13fTGYW5ArBo?

如果我的服务器处于脱机状态,但是由于有了P2P,我们可以通过其他网关(例如Infura或IPFS.io)查看它。

https://ipfs.infura.io/ipfs/QmYcwpKrv5icSDDDx9Jc4QA9y369WYkeZh13fTGYW5ArBohttps://gateway.ipfs.io/ipfs/QmYcwpKrv5icSDDDx9Jc4QA9y369WYkeZh13fTGYW5ArBo?

IPNS概述

?如果我们有一个名为“ hello.txt”的文本文件,其中包含“ Hello World!”,我们已经知道它将有一个唯一的CID,可以通过/ ipfs / <CID>进行访问。?

现在,我们要更新该文件为“Good night,Moon!”。我们现在将有一个全新的CID,/ ipfs / <OLD CID>将显示“ Hello World!”,/ ipfs / <NEW CID>将显示“ Good night,Moon!”。?

如果我们有一个目录,里面有我们想要的IPFS文件。我们可以添加整个目录并在/ipfs/<directory cid>/访问它,并通过/ ipfs / <DIRECTORY CID> / <FILENAME或FILE CID>访问单个文件。但是,如果我们要添加另一个文件,那么CID目录将更改。这意味着我们必须让使用此目录的所有用户都知道新的CID,才能得到最新的版本。?

这就是IPNS的来源,我们可以创建一个CID(使用我们的对等ID或新密钥),并将/ ipfs / <CID>作为/ ipns / <STATIC CID>发布到它。如果你拥有可以添加或删除文件的网站或目录,这将非常有用。如果你将站点添加到IPFS,并且它变成/ipfs/<original website cid>并且以后想要更新站点,则每次更新都会有一个新的/ipfs/<new website cid>,这可能会使许多试图查看站点最新版本的人感到困惑。?

同样的情况也适用于我们的文件目录。当我们添加或删除文件时,我们将拥有一个新的/ipfs/<directory cid>目录,并且必须更新任何依赖它的服务才能保持最新。当我们更新网站或目录并获取新的CID时,我们可以将该CID发布到IPNS并每次都在相同的/ ipns / <IPNS CID>中进行访问。这与DNS基本相同。如果我们的服务器获得了一个新的IP地址,我们不必获得一个新的域名,我们只需更改DNS记录,指向新的IP地址。?

NFT(ERC-721)

NFT是以太坊区块链上的non-fungible代币。代表NFTs最流行的合同标准是ERC-721标准。NFT的一大优点是能够为令牌设置元数据URI,赋予它独特的属性。将元数据信息直接存储在区块链上会很昂贵,因此我们将元数据存储在外部资源上。?

在我们的例子中,元数据存储在一个JSON文件中,该文件列出了诸如名称,描述,图像,特征等属性。该元数据可以被多个令牌重用,或者每个令牌可以不同。?

如果有人想查看令牌的元数据,他们将调用合同并获取令牌的元数据URI,例如http://madeupwebsite.example/256.json,该数据存储在传统系统中,例如AWS S3 ,Google Cloud等。接下来,他们读取JSON文件以获取该令牌的所有信息。?

元数据问题

如果创建你NFT的公司或个人消失了,其托管服务提供商关闭了该服务,或者恶意黑客删除了系统上的所有元数据,将会发生什么?不是你,也不是加密之神,将能够保存附加到你的NFT的元数据。对于元数据文件只有一个集中的来源,这是一个基本问题。相反,分散和分布式文件存储可为你的游戏资产提供更高的安全性、冗余性和不变性,从而为你的数字资产创建更多的主权身份。?

IPFS / IPNS元数据

IPFS是来拯救世界的。现在,我们可以将元数据URL保存为/ IPNS / <CID> / <TOKEN_ID>而不是URL,并通过多个不同的网关进行访问。如果我们决定向存储文件的目录中添加更多元数据,则只需要将目录新的CID发布到IPNS,我们的合同元数据URI仍会将其指向正确的位置。?

元数据的完整性保持不变,因为元数据的IPFS CID是文件内部内容的加密可验证哈希。这样可以确保我们从对等节点获得的元数据是文件的合法未更改副本。?

持元数据的持久性是因为我们总是可以通过不同的对等网关访问元数据。如果一个对等网关无法访问,我们可以通过另一个对等网关访问它。?

因此,现在我们的元数据是不可变的,分布式的,并且我们可以通过静态IPNS地址的多个源来访问它。?

通过将NFT和IPFS结合起来,我们可以获得分布式的和加密安全的元数据系统。我们可以在以太坊区块链上创建、拥有和交易唯一的令牌,这些令牌存储IPFS CID哈希,然后我们可以通过网关查找IPFS CID以可靠、安全地检索元数据,否则这将导致成本过高(更不用说浪费了)?存储在区块链上。?

NFT IPFS / IPNS示例

概述:这是一个具有IPNS元数据URL的NFT。元数据文件遵循ERC-721元数据标准,并进行了少许修改以适应OpenSea元数据标准。本质上,每个NFT令牌都保存着不同IPFS文件的信息,这些文件可以被其他人查看和共享。

1571288828435402.jpg

?

应用程序

web应用程序是一个简单的表单,它创建对IPFS服务器的API调用。

1.?用资产信息填写表单。

2.?选择要上传的资产图片。

3.?提交表格。

就这么简单。

服务器收到请求后,将执行以下操作:

1.?将图像固定到IPFS

2.?将资产信息(包括图像新的ipfs CID)转换为元数据。

3.?将元数据固定到IPFS。

4.?铸造一个新的代币。

1571288828934095.jpg?

(霓虹灯区“Season Zero:Baus”)))

?如果我们用霓虹灯区的“ Season Zero:Baus”为例,我们只需填写表格并上传Baus的GIF。服务器将GIF固定到具有CID?QmNf7…Csjf8的?IPFS,然后将元数据创建并固定到具有CID?QmYF1…YsFej的?IPFS?。注意:为清楚起见,缩写为CID。?

接下来,服务器为其存储目录生成一个新的哈希,并将其作为服务器PeerID发布到IPNS,它是/ ipns / QmVc5…W7y3v。现在,可以通过其IPFS CID直接访问文件,例如:https://ipfs.io/ipfs/QmNf7vFHpUowAQEDMfGcGDjFyQapubnFfXEjFFC8uCsjf8或通过在合同中设置为令牌元数据URL的IPNS。

1571288829299433.jpg

—End—本文由IPFS原力区编译,原文链接:https://medium.com/blockadegames/using-ipfs-distributed-file-storage-for-game-asset-metadata-aac4478e3063

1571288829635096.jpg

【IPFS原力区】

价值观:价值?共建?共享?荣耀

总部位于上海,聚集基于分布式网络&存储的众多技术大咖和爱好者,深耕基于?IPFS的商业生态建设和社区发展。

每周二举办“分布式存储网络”主题沙龙,聚集了众多技术大咖和?IPFS?爱好者,通过持续输出全面、精细、优质的IPFS咨询和技术支持,将生态中的爱好者转化为IPFS支持者和参与者,共建IPFS生态的健康发展。

—-

编译者/作者:IPFS原力区

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...