Corda Node是否支持缓存

时间:2018-04-20 03:21:32

标签: corda

corda节点是否支持使用corda引擎进行缓存?缓存来自响应者流的数据。

用例是缓存来自相应方(例如Oracle节点)的(已知)响应,以便该节点不会始终联系Oracle以通过网络调用获取修复属性。

例如。如果Oracle今天将FX汇率设置为1.41,那么节点可以查询一次以及后续调用当天它使用缓存机制来避免后续多次查询以获得相同的结果。因为Oracle会被相同的查询(来自不同的节点)淹没,这将导致oracle节点的流量极高,而oracle节点只提供静态信息。

1 个答案:

答案 0 :(得分:1)

首先,请注意与oracle有两个交互点:

  • 请求输入数据到交易(例如外汇汇率)
  • 请求oracle的签名

后者总是需要与oracle进行交互,因为每个事务都有不同的哈希,因此需要不同的签名(这是设计,请参阅技术白皮书了解更多详情)。

前者不一定需要与oracle交互。您可以猜测数据,或通过Web API检索数据,或从先前的请求中缓存它。只要oracle判断交易中包含的数据是正确的,它就会签字。如何访问它并不重要。

缓存oracle数据的机制没有内置到节点中,但可以通过在流程中或作为服务的一部分直接读取和写入节点的数据库来实现。有关此示例,请参阅Flow DB示例here