LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > 预言机如何「预言」 | 三分钟入门Neo3

预言机如何「预言」 | 三分钟入门Neo3

2020-03-17 Neo智能经济 来源:火星财经

昨天的推文中,我们简单介绍了Oracle的概念和运作模式。不少小伙伴在后台留言询问Github上的Oracle议程讨论地址。链接就在下方,欢迎浏览并参与我们的社区讨论!

- Github 讨论地址-

https://github.com/neo-project/neo/issues/1272


今天我们将继续深入介绍Oracle的事务机制与广播模式,了解其是如何确保数据的顺利传输。

先简单科普下事务机制的概念。事务机制是指,遵循原子性、一致性、隔离性和持续性(ACID)的属性,以使数据能够正确地提交到数据库中。将一系列数据库更改归入一个逻辑操作。更改数据库后,所做的更改可以作为一个单元进行提交或取消。

为了发出由Oracle网络验证的数据请求,Oracle的事物机制必须由合约或独立用户创建。通过「目标URL」和「缩短下载内容的过滤器」这两个所需参数来触发新创建的Oracle系统,这些特殊事务才会允许与Oracle网络进行交互。

例如,通过采用分布式市场形式的智能合约,用户可以在其中买卖商品。如果商品以GAS定价,一旦GAS的价格发生较大波动会导致市场动荡。如果使用Oracle网络,通过其来监控GAS的市场价格,就能够以法币对商品进行定价,再通过智能合约动态计算出相应的GAS价格。

在此示例中,Oracle调用URL接入了价格监控API。在Oracle网络中使用目标URL,每个Oracle节点将会通过三个指令实时监测GAS的法币价格。

- 目标URL-

https://min-api.cryptocompare.com/data/price?fsym=GAS&tsyms=USD,EUR,GBP


过滤器可用于过滤掉一部分无用数据,以便Oracle只需以OracleAgreement的确认机制验证返回响应的特定部分,并最终存储在区块中。该过程允许用户或智能合约通过使用Oracle网络直接访问任何必需的信息,再将其带入区块链做进一步使用。

事务结构

与Neo3上的常规事务机制相比,Oracle事务机制有两个区别,它是由已签名和未签名的数据组成。在一个常规事务中,已签名部分保留着诸如发件者,版本和其他属性之类的信息。未签名部分由事务签名组成。


Oracle事务的逻辑结构

一个可行的Oracle事务结构是将一个名为ExpectedResultHash的新属性添加到已签名部分的属性中。尽管很可能会在事先不知道结果的情况下发出大多数Oracle请求,但是这种包含很有用,因为它使用户可以指定要检查的结果以验证交易。核心开发者Belane认为,这还便于节点检查,可以快速了解这个事务是否为Oracle事务。

在用户不期望任何特定结果的情况下,该哈希将改为零填充,从而导致结果完全取决于Oracle节点之间的共识。

另一个区别是新的OracleAgreement部分,该节位于未签名的部分中,并且是DownloadCache的宿主,其中包含了三个重要信息:从中检索数据的URL,用于限制下载内容仅限于必需内容的过滤器(如JSONPath或XPath)信息和内容本身(由Oracle节点执行)。

广播模式

实施Neo Oracle的一个显著优势是,它充分利用了dBFT提供的独立块事务终局性来优化确认时间,网络流量和链存储空间。这是因为在Neo网络上运行的Oracle调用仅需要在单个块内处理和确认单个事务,使结果可以立即用于智能合约中。

所提出的内存池和广播模式显示了如何通过网络进行Oracle事务,除了Oracle的节点外,网络中的所有节点也会协助事务的运行。当Oracle事务已广播到网络中后,每个节点会将当前未验证的事务作为已知的哈希存储在其内存池中,并将其传递给其他节点。

通过此过程,会发现Oracle事务的Oracle节点将使用URL并应用DownloadCache中提供的过滤器来完成所有包含的请求。然后,通过将结果和签名附加到Oracle事务的OracleAgreement部分,这些节点将就返回响应的数据达成共识。

一旦收集到足够的签名以通过批准阈值(当前为TBD),就可以将Oracle事务视为已验证,并由共识节点将其存储在一个区块中。实际上,同一事务既用于Oracle调用,又用于确定结果,而以前的链下数据现存储在链上,可由智能合约使用。

在「预言机篇」的第三讲中,我们将更深入地探讨Oracle的请求机制与达成共识的确认规则。

本文来源:Neo智能经济
原文标题:预言机如何「预言」 | 三分钟入门Neo3

—-

编译者/作者:Neo智能经济

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

知识 预言机 NEO3
LOADING...
LOADING...