6

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

 3 years ago
source link: https://www.chainfor.com/news/show/134432.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
使用Chainlink外部适配器在智能合约中获取IPFS数据_区块链资讯_链向财经
使用Chainlink外部适配器在智能合约中获取IPFS数据

来源:桑榆区块链

使用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的灵活功能,而仅使用内置适配器无法实现。

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

· 通过使用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意味着现在可以灵活分配,而不仅限于链上分配方法。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK