首页 > 世链号 > 使用Chainlink外部适配器在智能合约中获取IPFS数据
Filecoin社区  

使用Chainlink外部适配器在智能合约中获取IPFS数据

摘要:我们使用Chainlink来检查IPFS中的地址是否作为Audius钱包存在,从而在创建广告活动时将合同链接到大量数据,而不会消耗大量资源。

使用Chainlink外部适配器连接去中心化基础架构的各个组件,是Chainlink网络帮助简化智能合约开发人员构建新用例,和完全去中心化应用程序的一种方法。

ETH Online Hackaton Toshiake Takase和Tsukasa Noguchi的ETHLink获奖者使用Chainlink的oracle基础架构,和IPFS使基于Audius区块链的音乐流媒体平台上的艺术家能够向其粉丝分发代币奖励,而无需支付成百上千笔个人交易的高昂GAS费。

在本文中,Iroiro团队展示了如何使用Chainlink连接到IPFS,以进行具有成本效益的令牌分发以及各种其他以太坊基础设施用例。

Integrate-IPFS-Data-With-Smart-Contracts-Using-a-Chainlink-External-Adapter.png

1、介绍

以太坊上的ERC20令牌标准除了可用作货币外,还可用作公用事业令牌。

在这种情况下,我们专注于令牌在创作者和粉丝之间进行交流的有效性,并开发了“ Iroiro ”作为平台,使艺术创作者能够生成自己的ERC20令牌并将其分发给粉丝。

这种创建者令牌有很多潜在的用例,将这些令牌分发给粉丝的目的会因创建者而异。有时候,这只是出于表达感激之情,有时是为了访问专有内容或体验,例如私人聊天频道,直播或现场表演津贴。潜在的独家奖励范围是艺术家可以探索的另一个创意空间。

但是,当前在以太坊上进行交易的成本为许多交易造成了障碍。发送令牌的成本很容易超过艺术家从忠实粉丝身上获得的任何收益。为了使粉丝奖励计划成为ERC20代币的可扩展用例,我们需要实现一些支持基础架构,以使其对于创作者而言是合理的用例。

 

2、Audius API

对于ETH Online Hackathon,我们决定使用Audius启用令牌分发。Audius是一种去中心化的音乐流协议。

由于Audius拥有用户帐户并促进了艺术家与追随者之间的关系,因此,我们决定,作为这种关系的扩展,我们可以建立一个流程,由艺术家创建令牌,并根据用户帐户将令牌分配给他们的粉丝。

Audius提供了一个API,了解更多加 ipfssy,您可以通过该API获取由Audius开发的Hedgehog钱包中存储的帐户的钱包地址以及关注者地址。

因此,我们决定实施以下流程:

1)生成创建者令牌的用户将获得其Audius帐户之后的地址列表

2)创建者令牌生成器接收并存储跟随者地址信息作为合同上的快照,并将地址设置为令牌分发目标

3)每个关注者都会收到dApp外部有一个分发活动的通知,如果他们有资格进行分发,他们可以执行声明功能并接收令牌

 

3、智能合约和大量数据

但是,此流程中的实现存在问题,因为有时关注者的数量很多,尤其是对于著名艺术家(例如RAC)而言。追随者的数量可以攀升至数万或数十万,并且随着Audius之类的创作者平台的采用,这一数字可能会增加。

如果我们尝试在链上合同中记录追随者的所有地址,这将在GAS费中花费大量的ETH,尤其是在网络拥塞时,这将使创建者负担交易成本。

因此,我们的实现不是使用合同来写入关注者信息,而是使用IPFS将其保存为脱链文件。我们使用Chainlink来检查IPFS中的地址是否作为Audius钱包存在,从而在创建广告活动时将合同链接到大量数据,而不会消耗大量资源。

 

4、IPFS外部适配器

1)关于IPFS

IPFS是用于存储媒体文件的分布式系统。上传、下载的文件存储在分布式网络上。

Iroiro中,由Audius API获得的跟随者地址列表以JSON文件中的字符串数组形式存储在IPFS中,以便可由Chainlink IPFS外部适配器检索。

2)连接IPFS和Chainlink时出现问题

如果仅在此处使用Chainlink,则在将其与IPFS链接时会遇到问题。这是因为Chainlink的内置HTTP GET Adapter可以在JSON字符串中的特定路径处检索值,但不会检索并返回整个值数组。

要保存并存储在IPFS上的JSON文件包含一个数组形式的地址列表,如以下示例所示。这意味着,为了让关注者检查自己的地址是否存储在JSON文件中,必须构建一个Chainlink外部适配器来处理在地址数组中的搜索。

{

  "addresses": [

    "address1",

    "address2",

    ...

  ]

}

3)IPFS外部适配器

我们开发了Chainlink外部适配器以实现上述问题中所需的功能。

外部适配器是一个独立的应用程序,它接受来自Chainlink节点的请求并执行必要的处理,并以Chainlink节点可以处理的格式返回结果。

通过构建外部适配器,我们可以利用Chainlink的灵活功能,而仅使用内置适配器无法实现。

外部适配器将执行以下过程:

&middot通过使用ChainFS请求合同时收到的IPFS cid(表示文件的唯一密钥)来获取IPFS文件。

· 验证用户地址是否存储在IPFS文件的字段中,以确认令牌分发目标。

· 如果存储了目标地址,Chainlink将通过返回用户地址,活动地址和地址存储信息(布尔值)的哈希值作为返回值来满足请求。

 

5、此应用程序的总体情况如下:

upload_41affac0efcf942f97ac576471ddcac3.png

6、我们使用Chainlink和IPFS完成的工作

我们已经实现了用于分发创建者令牌的上述流程,以及以下内容:

1)大幅降低GAS成本并提高交易效率

在需要大量GAS的大量数据的情况下,我们能够使用IPFS链下存储数据并通过Chainlink检索,从而大大降低了GAS成本。

这直接导致Iroiro用户的GAS价格降低,并有助于降低用户的进入门槛。

2)连接到链下数据

区块链不可能在IPFS上获取文件内容并执行所需的逻辑,但是我们能够使用Chainlink做到这一点。

这使得开发使用链下数据的高度可扩展的智能合约成为可能。

3)灵活的代币分配方法的实现

Iroiro仅在黑客马拉松期间使用了Audius,但是只要可以通过API获取要在其他平台上分发的数据,就可以在各种平台上使用。

使用Chainlink意味着现在可以灵活分配,而不仅限于链上分配方法。

 

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。