请选择 进入手机版 | 继续访问电脑版
开启辅助访问
链路首页链路财经的所有资讯均来自网络投稿,不代表本公司任何投资暗示。有侵权者请联系jubao@linksfin.com删除
2019
10/17
10:00
分享
评论
  • 本文由IPFS原力区收集译制,版权所属原作者


    (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,我们可以通过其他网关(例如InfuraIPFS.io)查看它。
    https://ipfs.infura.io/ipfs/QmYcwpKrv5icSDDDx9Jc4QA9y369WYkeZh13fTGYW5ArBo
    https://gateway.ipfs.io/ipfs/QmYcwpKrv5icSDDDx9Jc4QA9y369WYkeZh13fTGYW5ArBo
     

    IPNS概述

     
    如果我们有一个名为“ hello.txt”的文本文件,其中包含“ Hello World!”,我们已经知道它将有一个唯一的CID,可以通过/ ipfs / 进行访问。
     
    现在,我们要更新该文件为“Good night,Moon”。我们现在将有一个全新的CID/ ipfs / 将显示“ Hello World!”,/ ipfs / 将显示“ Good night,Moon!”。
     
    如果我们有一个目录,里面有我们想要的IPFS文件。我们可以添加整个目录并在/ipfs//访问它,并通过/ ipfs / / 访问单个文件。但是,如果我们要添加另一个文件,那么CID目录将更改。这意味着我们必须让使用此目录的所有用户都知道新的CID,才能得到最新的版本。
     
    这就是IPNS的来源我们可以创建一个CID(使用我们的对等ID或新密钥),/ ipfs / 作为/ ipns / 发布到它。如果拥有可以添加或删除文件的网站或目录,这将非常有用。
    如果将站点添加到IPFS,并且它变成/ipfs/并且以后想要更新站点,则每次更新都会有一个新的/ipfs/,这可能会使许多试图查看站点最新版本的人感到困惑。
     
    同样的情况也适用于我们的文件目录。当我们添加或删除文件时,我们将拥有一个新的/ipfs/目录,并且必须更新任何依赖它的服务才能保持最新。当我们更新网站或目录并获取新的CID时,我们可以将该CID发布到IPNS并每次都在相同的/ ipns / 进行访问。这与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 / / 而不是URL,并通过多个不同的网关进行访问。如果我们决定向存储文件的目录中添加更多元数据,则只需要将目录新的CID发布到IPNS,我们的合同元数据URI仍会将其指向正确的位置。
     
    元数据的完整性保持不变,因为元数据的IPFS CID是文件内部内容的加密可验证哈希。这样可以确保我们从对等节点获得的元数据是文件的合法未更改副本。
     
    持元数据的持久性是因为我们总是可以通过不同的对等网关访问元数据。如果一个对等网关无法访问,我们可以通过另一个对等网关访问它。
     
    因此,现在我们的元数据是不可变的,分布式的,并且我们可以通过静态IPNS地址的多个源来访问它。
     
    通过将NFT和IPFS结合起来,我们可以获得分布式的和加密安全的元数据系统。我们可以在以太坊区块链上创建拥有和交易唯一的令牌,这些令牌存储IPFS CID哈希,然后我们可以通过网关查找IPFS CID以可靠安全地检索元数据,否则这将导致成本过高(更不用说浪费了) 存储在区块链上。
     

    NFT IPFS / IPNS示例


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

     

    应用程序


    web应用程序是一个简单的表单,它创建对IPFS服务器的API调用。
    1. 用资产信息填写表单。
    2. 选择要上传的资产图片。
    3. 提交表格。
    就这么简单。
    服务器收到请求后,将执行以下操作:
    1. 将图像固定到IPFS
    2. 将资产信息(包括图像新的ipfs CID)转换为元数据。
    3. 将元数据固定到IPFS。
    4. 铸造一个新的代币

    (霓虹灯区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。

    —End—

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

    IPFS原力区】

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


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


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

     阅读原文,协议学院活动  快速了解

主题帖 732 关注 0 粉丝 1
情感指数

链路大数据分析置信度 12.66 %

TA的主题帖
主题相关
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表