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

如何编写Oracle服务与Corda中的对等方并行签署事务的流程,corda,Corda,从这些文档中,我了解到有一种方法可以允许对等方和Oracle之间进行并行签名,但在Corda文档的给定流程中,我看不到这种方法在功能上是如何工作的: 取决于利率的交易的创建者 询问当前利率。如果他们愿意,他们可以在此时中止 对 他们插入一个具有该速率和时间的命令 在交易中获得 然后,他们将其发送给甲骨文进行验证 和其他人一起签署,可能是并行的。这个 oracle检查命令是否具有正确的断言数据 时间,如果有,请签字 在第一步中,Oracle是否首先没有提供该命令从而对事务进行签名?我知道这里的目的

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

  • 取决于利率的交易的创建者 询问当前利率。如果他们愿意,他们可以在此时中止 对
  • 他们插入一个具有该速率和时间的命令 在交易中获得
  • 然后,他们将其发送给甲骨文进行验证 和其他人一起签署,可能是并行的。这个 oracle检查命令是否具有正确的断言数据 时间,如果有,请签字

  • 在第一步中,Oracle是否首先没有提供该命令从而对事务进行签名?我知道这里的目的是避免甲骨文的第一个迹象,但上述流程如何促进这一点?如果不是通过Oracle,如何获得费率?Oracle是否不必签署第一条规定?在这种情况下,甲骨文会证明两次;一次是向请求者提供事实,两次是请求者将事实作为命令重新插入以供Oracle和其他对等方验证?

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

    oracle不会对其提供的命令进行签名。相反:

    • 事务的创建者从oracle接收命令并将其包含在事务中
    • 事务完全构建后,事务的创建者将事务发送回oracle
    • oracle决定是否签署:
      • 如果命令中的数据正确,oracle应该对整个事务进行签名
      • 如果命令中的数据不正确,oracle应拒绝签名
    这种方法防止在事务之间重用已签名的oracle数据。由于每笔交易都有一个唯一的散列,因此需要为oracle数据的每次单独使用请求一个签名,这样oracle就可以按次使用收费,并拥有一个可行的业务模型