使用Chainlink外部适配器在智能合约中获取IPFS数据
使用Chainlink外部适配器连接去中心化基础架构的各个组件,是Chainlink网络帮助简化智能合约开发人员构建新用例,和完全去中心化应用程序的一种方法。
ETH Online Hackaton Toshiake Takase和Tsukasa Noguchi的ETHLink获奖者使用Chainlink的oracle基础架构,和IPFS使基于Audius区块链的音乐流媒体平台上的艺术家能够向其粉丝分发代币奖励,而无需支付成百上千笔个人交易的高昂GAS费。
在本文中,Iroiro团队展示了如何使用Chainlink连接到IPFS,以进行具有成本效益的令牌分发以及各种其他以太坊基础设施用例。
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、此应用程序的总体情况如下:
6、我们使用Chainlink和IPFS完成的工作
我们已经实现了用于分发创建者令牌的上述流程,以及以下内容:
1)大幅降低GAS成本并提高交易效率。
在需要大量GAS的大量数据的情况下,我们能够使用IPFS链下存储数据并通过Chainlink检索,从而大大降低了GAS成本。
这直接导致Iroiro用户的GAS价格降低,并有助于降低用户的进入门槛。
2)连接到链下数据
区块链不可能在IPFS上获取文件内容并执行所需的逻辑,但是我们能够使用Chainlink做到这一点。
这使得开发使用链下数据的高度可扩展的智能合约成为可能。
3)灵活的代币分配方法的实现
Iroiro仅在黑客马拉松期间使用了Audius,但是只要可以通过API获取要在其他平台上分发的数据,就可以在各种平台上使用。
使用Chainlink意味着现在可以灵活分配,而不仅限于链上分配方法。
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。