当前位置:首页 > 资讯 > 区块链新闻 > 正文

前哨|TheGraph将推出子图NFT所有权转移功能

发布:中币网   时间:2022-02-25 00:00:00   加入收藏 打赏

区块链网络报道,2月25消息,TheGraph将推出基于NFT的子图所有权转移功能。官方提出GIP-0018治理提案:每当应用程序开发人员发布新的子图时,GNS都会生成NFT,拥有NFT的人控制子图,NF

区块链网络报道,2月25消息,TheGraph将推出基于NFT的子图所有权转移功能。官方提出GIP-0018治理提案:每当应用程序开发人员发布新的子图时,GNS都会生成NFT,拥有NFT的人控制子图,NFT基于ERC-721标准,因此可以轻松转移到不同的账户。

本次的功能更新,是通过GIP-0023提案替换了GIP-0018,GIP-0018中旨在解决子图所有权和控制权转移问题。GIP-0023通过编写单独的NFT(ERC-721)合约而不是使用GNS作为注册表,重构了GIP-0018中提议的子图的NFT所有权的实现。

我们来看下GIP-0023的细则。

GNS合约允许任何人发布具有关联元数据和目标子图部署的子图。新的子图将永远与创建它的帐户绑定。不能转移子图所有权使得某些用例非常不方便,本提案旨在解决这些问题。此GIP取代了GIP-0018,保持相同的目标,但重构了实现。

包含的原GIP-0018内容:应用程序开发人员创建子图来索引区块链数据。他们希望索引器在去中心化网络中运行他们的子图。为了实现这一点,在GNS中发布了一个针对子图部署的子图。由于许多原因,应用程序开发人员可能希望将子图的所有权转移到不同的帐户。

每当应用程序开发人员发布新的子图时,GNS都会生成NFT。拥有NFT的人控制子图。NFT基于标准的ERC721,因此可以轻松无限制地转移到不同的账户。此外,当所有者弃用子图时,NFT会被销毁。

GIP-0023新内容:NFT子图的第一个实现继承了GNS的ERC721行为,因此,我们可以使用GNS合约作为注册表。不过这带来了许多问题,主要是OpenSea、Etherscan和其他应用程序不会将升级后的GNS检测为有效的ERC-721NFT。

本GIP中提出的新实现使用与GNS分开部署的不同NFT合约,并使它们通过可组合性工作。

为了支持这个功能,我们引入了两个合约:

SubgraphNFT:

这是基于OpenZeppelin实现的标准ERC721合约。该合约使用TokenDescriptor来呈现tokenURI。SubgraphNFT允许设置一个称为minter的特殊角色,它是唯一可以铸造、刻录或设置NFT元数据的角色。在我们的设置中,铸币者是GNS。

SubgraphNFTDescriptor:

这是一个实现TokenDescriptor接口的合约,其唯一目的是呈现tokenURI。

对GNS进行了以下更改:

GNS有一个额外的状态变量来存储SubgraphNFT地址,因此每当应用程序开发人员与子图交互时,GNS都可以通过NFT铸造、销毁或检查子图的所有权。

子图元数据是一个IPFS哈希,其中包含一个JSON文件,该文件编码有关子图的相关信息,如图像、显示名称、类别等。

SubgraphMetadataUpdated每当发布子图或应用程序开发人员决定更新它时,子图元数据最初只是在事件上发出。

该GIP建议将子图元数据(IPFS哈希)存储到SubgraphNFT中的状态变量中。这样,NFT就可以从中渲染出正确的tokenURI,并在钱包和任何其他NFT市场上可见。

还将提供一个TokenDescriptor合约,以将存储为bytes32的IPFS哈希格式转换为IPFS在客户端URI中使用的兼容base58字符串。

新实现还将公开一个函数,旧类型子图的所有者可以调用该函数来铸造他们的NFT。此函数必须确保每个旧类型子图仅调用一次。

此外,合约将跟踪subgraphID=>(graphAccount,subgraphNumber)旧子图的映射,以使其向后兼容。

更新后还需注意:

1.需要通过调用合约公开的函数来迁移旧的子图类型和铸造NFT。

2.任何集成GNS功能的前端都需要开始使用单个subgraphID。

3.更新核心网络子图以读取合约发出的新事件。

4.与合约集成的dapp需要更新接口。

查看更多

来源:




来源:中币网  https://www.zhongbi.net/news/blocknews/311769.html
声明:登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。 此文如侵犯到您的合法权益,请联系我们3111859717@qq.com,我们将第一时间处理。