节点之间的流或事务的公共标识符

时间:2018-02-02 08:39:26

标签: corda

使用客户端侦听多个节点上的保险库更新proxy.vaultTrackBy,我无法识别参数以引用跨多个节点的同一事务的结束。 试过:flowIdhashCode也在调查状态,但生产和消费都是空的。

是否有其他标识符?

1 个答案:

答案 0 :(得分:0)

目前,我们故意避免在节点边界之外发送任何类型的调用ID,因为这是私有节点信息,不应出于隐私原因而共享。您有几个选择:

  • 如果交易在两个节点中记录相同的状态&#39;保险库,您可以检查双方生成的Vault<Update>对象,以确保在两个节点中都显示相同的StateAndRef&#39}。金库
    • 如果consumedproduced为空,请检查节点是否正在其保管库中记录状态。这取决于:
      • 他们是否是所有者(OwnableState s)
      • 他们是否是参与者(对于其他州类型)
      • 他们是否将交易记录为参与者
  • 在您的流程中执行以下操作以通知您自己已发生交易(myEventPublishingService是您自己的API):

    @Suspendable
    fun call() {
        val proposal = session.receive<TransactionBuilder>().unwrap { it }
        checkThatTheOtherPartyIsNotScammingMe(proposal)
    
        <here, before signing the transaction and sending it over>
    
        myEventPublishingService.publish(
            TransactionApprovedEvent.from(proposal, otherParty))
    
        proposal.sign(services)
        session.send(proposal)
    }