像Twitter这样的社交媒体平台拥有丰富的数据,展示了全世界人们所关心的热门话题。我们正在进入一个数据驱动的世界,而Chainlink提供了一个渠道,将这个庞大的数据集安全地连接到链上世界,为我们的社交媒体生活带来智能合约的可靠性和透明度保证。
在这次的实战演练中,我们将介绍如何让你的智能合约连接到TwitterAPI。具体来说,我们将解释如何从智能合约中发出一条推文,但是围绕社交媒体进行数据分析和智能合约的执行所展示出来的可能性却是无限的。
构造函数
Web3基础设施平台Ankr与波卡二层扩容协议Plasm Network集成:部署区块链节点的Web3基础设施平台Ankr最近宣布与Plasm Network集成。Plasm Network是基于波卡的多虚拟机可扩展智能合约平台。需要链上数据的开发人员或希望支持Plasm网络的社区成员现在获得新的解决方案。作为集成的一部分,Ankr为Plasm构建一键式节点托管解决方案,使用户比以往更容易运行Plasm测试网节点。(Cryptoninjas)[2021/2/6 19:05:05]
我们从熟悉的ChainlinkClient导入和继承开始。导入ChainlinkClient合约包含了构建请求、提交给一个或多个Chainlink节点,并接收回复所需的所有功能。只需定义你选择的oracle地址,该节点为其TwitterJob提供的作业规范ID,并定义该节点处理请求所需的费用。此外,我们还定义了onlyOwner修饰符,这样只有创建合约的地址才能通过这个合约发推特。
Marlin Protocol:FlowMint上的波卡质押者和验证器指标均创新高:Layer 0扩展项目Marlin Protocol在推特表示,其代币分发机制FlowMint上的Polkadot(DOT)质押者和验证器的参与指标创新高。目前共有3.39亿美元的DOT被担保(bonded),验证器已超100个。[2021/1/19 16:28:15]
Tweet函数
构建了合约之后,发推特就非常简单了。tweet函数接收要推送的字符串,创建请求结构体,并将其提交给定义的Chainlink节点。请求结构中需要两个字段:`status`和`copyPath`。`status`,即我们希望发布的推文,在Twitter外部适配器中被定义为一个输入,该节点将运行它来完成这项工作。而`copyPath`则是所有Chainlink节点支持的默认适配器的一部分,它告诉节点如何解析JSON输出。此外,`endpoint`可以指定为不同的Twitter端点,具有不同的功能,但适配器默即可发布推文状态,因此目前不需要关心这一参数。
现场 | 本体去中心化数字身份解决方案DeID集成至波卡平台:金色财经现场报道,在10月29日由 Web3 基金会主办的Web3大会上,本体宣布正在波卡(Polkadot)链上进行开发,将本体去中心化数字身份(Decentralized Identity, DeID)集成到波卡链上,并计划搭建波卡平行链。该合作将加速本体与波卡链上生态的融合,为用户带来更深层次的信任和更为自主的数据管理体验。此外,本体信用分 OScore和DDXF 等技术也将逐步应用到波卡生态中,使其它区块链也可便捷地使用本体 DeID 解决方案。[2020/10/29]
上面是外部适配器的JSON输出示例,在其market.link列表上提供。我们希望得到该推文的`statusCode`来确认它是否成功。`statusCode`是输出的JSON结构中第一层的key,所以路径只是`statusCode`。如果我们希望检索`data:{result:}`,其中result是第二层的key,我们可以使用点符号将路径指定为`data.result`。更多关于Copy和其他适配器的信息在Chainlink适配器文档页面提供。
波卡推出悬赏机制提高国库资金利用效率:10月16日晚间,PolkaWorld官方发文宣布推出国库悬赏机制(Treasury Bounty mechanism)以提高国库资金利用效率。该方案通过将支出提案的策展活动委托给一位称为curator管理人的专家来实现的。该机制现在已经被添加到国库模块上,KSM和DOT持有人已经可以使用。该方案具有两个步骤的批准机制。
首先,理事会批准赏金分配。第二,理事会决定由一名管理人来负责这项任务:一旦管理人接受了这个职位,他们就会交押金。如果管理人行为是恶意的,保证金可以用来惩罚他们,但是如果管理人成功地完成了让提案者完成赏金工作的任务,将收到押金以及部分赏金作为奖励。
官方指出,波卡和Kusama网络推出新的奖金扩展程序(Bounty Extension),允许管理者自动分配资金给带来价值的项目。由于所有事情都发生在链上,将能有效管理国库资金,促进波卡生态系统发展,并赋予那些管理其发展的人更多的自主权。官方表示,新的扩展程序是一种预算机制,旨在帮助理事会扩大他们的审批任务规模。[2020/10/16]
构建好包含tweet和要返回的路径的请求,就可以提交请求,之后就会被节点处理,并在`fulfill()`回调中返回statusCode。用户合约端只需要构建和提交请求即可,因为大部分繁重的工作都由Chainlink节点处理。
Gate.io支持Polkadot波卡DOT主网币映射和充值(映射送DOT):据官网公告,Gate.io已完成Polkadot波卡主网集成,现已支持DOT认领(主网映射)和充值服务。前期投资DOT的用户可以通过Gate.io的DOT地址完成映射并第一时间参与交易。7月22日12:00(UTC+8)之前完成映射充值的用户,将按充值多少分享100DOT,市场价值约1-2万美金。[2020/7/14]
Twitter外部适配器和节点配置
在节点方面,有几件事我们必须做。-安装并运行Twitter外部适配器
在节点和适配器之间建立一个桥接器
创建一个使用桥接器的工作规范
正如Twitter适配器列表中所概述的那样,在使用yarn运行适配器之前,需要四个环境变量来定义TwitterAPI的连接访问。
默认情况下,适配器监听端口为8080。请注意,如果你的节点和适配器不是运行在同一个容器中,或者不是本地的,localhost:8080对它们来说是不一样的。在这种情况下,当你定义连接节点的桥接器时,你需要根据你的适配器运行的位置,指定你的docker容器的IP或你的主机的本地IP。也可以将适配器托管在一台单独的机器上,在这种情况下,您可以指定它的公共IP或本地IP,如果它在同一个局域网内。
在您的节点和适配器之间定义一个桥接器非常简单。只需在你的节点界面上填写新建网桥页面,并输入适配器的URL,给它起个名字,并指定你想要的最低确认数和费用金额。
现在适配器已经运行并连接到您的节点,我们需要定义一个作业规范,以便在智能合约请求调用桥接器时使用它。在节点仪表板的NewJob部分里,我们定义了一个JSON规范,说明什么会启动一个作业,以及这个job会执行什么任务(task)。
在这个Twitter适配器的情况下,我们的作业规范应该是这样的。
首先是触发器。用来告诉节点要监控哪个oracle合约,并从哪个oracle合约上获取job。这与前面创建请求智能合约时使用的oracle地址相同。请求被发送到链上的这个oracle,由于节点正在监控它的作业请求,所以当请求进来时,它将启动这个job。更多关于部署这个oracle合约的内容,可以在FulfillingChainlinkRequests文档页找到。
接下来是任务。当然,我们这里需要的是Twitter任务--只需填写Twitter适配器的桥接器名称即可。接下来我们定义了copyadapter任务,这样它就会处理请求中的copyPath,然后用ethuint256适配器将输出转换为unit256,最后用ethtx适配器将答案提交回链上。至此,节点设置就完成了。在创建这个jobspec时,会提供一个jobID,而请求合约在形成请求时使用的就是这个jobID。
结束语
希望这个演练能够帮助进一步展示Chainlink将任何API连接到您的智能合约的潜力,同时也解释了节点运营方处理这些任务所需的一些配置。
如果你是一名开发人员,并希望将你的智能合约连接到链外数据和系统,请访问开发人员文档并加入Discord上的技术讨论。如果你想安排一个电话,更深入地讨论集成问题,请在这里联系。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。