先简单科普下事务机制的概念。事务机制是指,遵循原子性、......
今天我们将继续深入介绍o的事务机制与广播模式,了解其是如何确保数据的顺利传输。
先简单科普下事务机制的概念。事务机制是指,遵循原子性、一致性、隔离性和持续性(acid)的属性,以使数据能够正确地提交到数据库中。将一系列数据库更改归入一个逻辑操作。更改数据库后,所做的更改可以作为一个单元进行提交或取消。
为了发出由o网络验证的数据请求,o的事物机制必须由合约或独立用户创建。通过「目标url」和「缩短下载内容的过滤器」这两个所需参数来触发新创建的o系统,这些特殊事务才会允许与o网络进行交互。
例如,通过采用分布式市场形式的智能合约,用户可以在其中买卖商品。如果商品以gas定价,一旦gas的价格发生较大波动会导致市场动荡。如果使用o网络,通过其来监控gas的市场价格,就能够以法币对商品进行定价,再通过智能合约动态计算出相应的gas价格。
在此示例中,o调用url接入了价格监控api。在o网络中使用目标url,每个o节点将会通过三个指令实时监测gas的法币价格。
- 目标url -
://-/?=gas&;=usd,eur,gbp
过滤器可用于过滤掉一部分无用数据,以便o只需以oa的确认机制验证返回响应的特定部分,并最终存储在区块中。该过程允许用户或智能合约通过使用o网络直接访问任何必需的信息,再将其带入区块链做进一步使用。
事务结构
与n上的常规事务机制相比,o事务机制有两个区别,它是由已签名和未签名的数据组成。在一个常规事务中,已签名部分保留着诸如发件者,版本和其他属性之类的信息。未签名部分由事务签名组成。
一个可行的o事务结构是将一个名为erh的新属性添加到已签名部分的属性中。尽管很可能会在事先不知道结果的情况下发出大多数o请求,但是这种包含很有用,因为它使用户可以指定要检查的结果以验证交易。核心开发者b认为,这还便于节点检查,可以快速了解这个事务是否为o事务。
在用户不期望任何特定结果的情况下,该哈希将改为零填充,从而导致结果完全取决于o节点之间的共识。
另一个区别是新的oa部分,该节位于未签名的部分中,并且是dc的宿主,其中包含了三个重要信息:从中检索数据的url,用于限制下载内容仅限于必需内容的过滤器(如jsonp或xp)信息和内容本身(由o节点执行)。
广播模式
实施n o的一个显著优势是,它充分利用了bft提供的独立块事务终局性来优化确认时间,网络流量和链存储空间。这是因为在n网络上运行的o调用仅需要在单个块内处理和确认单个事务,使结果可以立即用于智能合约中。
所提出的内存池和广播模式显示了如何通过网络进行o事务,除了o的节点外,网络中的所有节点也会协助事务的运行。当o事务已广播到网络中后,每个节点会将当前未验证的事务作为已知的哈希存储在其内存池中,并将其传递给其他节点。
通过此过程,会发现o事务的o节点将使用url并应用dc中提供的过滤器来完成所有包含的请求。然后,通过将结果和签名附加到o事务的oa部分,这些节点将就返回响应的数据达成共识。
一旦收集到足够的签名以通过批准阈值(当前为tbd),就可以将o事务视为已验证,并由共识节点将其存储在一个区块中。实际上,同一事务既用于o调用,又用于确定结果,而以前的链下数据现存储在链上,可由智能合约使用。
在「预言机篇」的第三讲中,我们将更深入地探讨o的请求机制与达成共识的确认规则。
新年伊始,我们特别推出了「三分钟入门n」系列专题,带大家率先了解n的方方面面。