共计 1200 个字符,预计需要花费 3 分钟才能阅读完成。
1. 趣链预言机架构
预言机个别会作为区块链的一个独立模块或第三方服务与执行引擎进行交互。预言机只负责数据的可信获取,不直接参与交易的执行。
step1. 用户通过合约调用的模式(也能够通过非凡的 API 接口服务等其余形式发动预言机服务申请)发动预言机的服务申请,通过调用某个内置合约接口(图中“预言机服务”接口),告知区块链执行引擎,用户想要执行一笔含预言机服务的交易。
step2. 执行引擎执行过程中检测到对预言机的服务申请,通过外部通信组件将它转发给预言机模块,这个申请里会封装申请内部数据源的一些信息,如一个 Web 数据申请,会蕴含常见的 URL、HTTP Headers 等信息。
step3. 预言机在收到服务申请后,向内部数据源发动数据获取申请,拿到数据后利用交易生成器产生一笔新的外部回调交易,并对其进行签名(这一过程会应用 TEE 等硬件技术保障平安及不可篡改)。
step4. 预言机将这笔回调交易发向执行引擎,执行对获取到的数据组织、治理、存储等一系列操作,至此一个残缺的含预言机服务的区块链交易执行流程完结。
2. chainlink
Chainlink 通过在链上的智能合约和链下的数据节点,即用户的智能合约把申请给链上 Oracle 合约,通过链下的 API 接口取得内部数据,更确切的说是内部把数据给链上的 Oracle 合约,而后 Oracle 合约再把数据给用户的智能合约。
step1. 用户通过智能合约向 Chainlink oracle 合约发动数据申请,并且附带相应的数据需要参数(链上),其实也是一笔 LINK 的代币转账,在转账事务的 payload 中携带有数据申请的参数;
step2.Chainlink 节点组成的网络通过订阅 Oracle 合约的日志获取相干信息;
step3.Chainlink Core 拆解用户需要(链下);
step4. 拆解后的工作由不同的节点通过内部的 API 数据源实现,获取数据返回;
step5. 返回的数据发送至 Chainlink Core;
step6.Chainlink Core 将数据再次返回至链上的 Chainlink 智能合约上;
step7.Chainlink 链上合约整合数据(利用不同节点提供的数据的概率调配、去除异样值(Outliers)等操作),同时依据最终后果纪录每一个提供数据的节点名誉,最终将后果发送给用户的智能合约,实现整个流程。
3. 总结:不管哪种办法,最初都是通过创立一笔交易将数据返回给智能合约
:)对读者发问 : 智能合约与交易的关系 ?
参考
[1].QTech. 预言机 - 区块链的触角
版权申明:本文为 CSDN 博主「thefist11」的原创文章,遵循 CC 4.0 BY-SA 版权协定,转载请附上原文出处链接及本申明。
原文链接:
https://blog.csdn.net/thefist…
文章起源:CSDN 博主「thefist11」
文章原题目:《区块链预言机(5)预言机原理》
如有侵权请与咱们分割删除。