如何编写流程,在其中Oracle服务与Corda中的对等方并行地签署事务

时间:2018-10-15 17:41:19

标签: corda

从文档中,我了解到有一种方法可以允许对等体和Oracle之间进行并行签名,但看不到Corda文档上给定流程中的功能如何工作:

  
      
  1. 取决于利率的交易的创建者   询问当前汇率。他们可以在此时放弃   
  2.   
  3. 他们以该速率及其所插入的时间插入一条命令   进入交易。
  4.   
  5. 然后他们将其发送给oracle   与其他所有人一起进行签名。的   oracle检查命令是否具有已断言的正确数据   时间,如果有,请签字。
  6.   

Oracle首先没有提供命令,因此在第一步中对事务进行了签名吗?我知道这里的目的是避免来自Oracle的第一手签名,但是以上流程如何促进了这一点?如果不通过Oracle,如何获得费率?Oracle是否不必签署该第一条款?这是Oracle两次认证的情况吗?一次将事实提供给请求者,两次时请求者将事实重新插入为要由Oracle和其余对等双方验证的命令?

1 个答案:

答案 0 :(得分:0)

从Corda 3开始,无法并行请求签名。此功能可能会在将来的版本中添加。现在,您必须按特定顺序请求签名。

oracle不签署它提供的命令。相反:

  • 交易的创建者从oracle接收命令并将其包含在交易中
  • 一旦交易完全建立,交易的创建者会将交易发送回oracle
  • oracle决定是否签名:
    • 如果命令中的数据正确,则oracle应该签署整个事务
    • 如果命令中的数据不正确,oracle应拒绝签名

此方法可防止已签名的oracle数据在事务之间重复使用。由于每笔交易都有唯一的哈希,因此每次使用oracle数据都需要请求签名,从而使oracle可以按使用收费并具有可行的业务模型。