Corda 我是否可以在某个节点上拥有一个帐户,并在该帐户上进行交易,而不使状态保留在帐户节点上?

Corda 我是否可以在某个节点上拥有一个帐户,并在该帐户上进行交易,而不使状态保留在帐户节点上?,corda,Corda,我在和科达的客户合作。 在我的场景中,帐户在节点M上创建,并与节点D共享。 节点D运行状态创建流,其中帐户是参与者。 通过对解决方案进行建模,事务必须在节点D上注册,而不是在节点M上注册。 问题是,当使用属于节点M的帐户时,需要节点M的会话。当我不在响应程序流上执行ReceiveFinalityFlow时,会生成一个意外的FlowEndException异常 我需要能够通过accountId进行Vault查询 问题是,我是否可以在一个节点上拥有一个帐户,并与该帐户进行交易,而不让状态保留在帐户节

我在和科达的客户合作。 在我的场景中,帐户在节点M上创建,并与节点D共享。 节点D运行状态创建流,其中帐户是参与者。 通过对解决方案进行建模,事务必须在节点D上注册,而不是在节点M上注册。 问题是,当使用属于节点M的帐户时,需要节点M的会话。当我不在响应程序流上执行ReceiveFinalityFlow时,会生成一个意外的FlowEndException异常

我需要能够通过accountId进行Vault查询

问题是,我是否可以在一个节点上拥有一个帐户,并与该帐户进行交易,而不让状态保留在帐户节点上

  • FinalityFlow
    如果您没有为每个参与者提供
    FlowSession
    (请参阅),并且您的帐户是参与者,则会抛出错误;因此,您需要为节点
    M
    提供
    FlowSession
  • 由于您为节点
    M
    传递了
    FlowSession
    ,因此应该有一个响应程序流,其中节点
    M
    调用
    ReceiveFinalityFlow
    ;否则,您的启动器流将挂起,因为
    FinalityFlow
    将执行
    send()
    将事务发送到
    M
    ,而
    M
    没有
    receive()
    调用(执行
    ReceiveFinalityFlow
  • 您可以通过调用
    ReceiveFinalityFlow
    并将输入参数
    statesToRecord
    设置为
    NONE
    来实现所要求的要求;默认情况下,该参数设置为“仅相关”(请参见流定义)。说明了各种类型的
    StatesToRecord
  • 您的响应程序流必须具有
    if
    语句,如果
    getOurIdentity()
    是node
    M
    ,则使用
    statesToRecord==NONE
    调用
    ReceiveFinalityFlow
    (因为您不希望
    M
    记录状态),如果是节点
    D
    ,则使用
    statesToRecord==RELEVANT
    调用
    ReceiveFinalityFlow
    (因为您希望
    D
    记录状态)
  • 请注意,仅仅因为您以某种方式编写了响应程序,并不保证node
    M
    将执行您的版本;编写响应程序流通常是另一个节点的责任;他们的开发人员可以编写自己版本的响应程序,在其中使用
    statesToRecord==RELEVANT
    调用
    ReceiveFinalityFlow
    (意思是节点
    M
    将注册结果状态)。阅读中的第一个这不是真的
  • 一旦实现了上述功能,请编写一个流测试来检查该节点
    M
    • 未在其事务存储中注册生成的事务
    • 未在其vault中注册结果状态
  • 我要求您这样做的原因是因为我在Corda的代码中注意到以下内容:
    • ReceiveFinalityFlow
      调用
      ReceiveTransactionFlow
    • ReceiveTransactionFlow
      调用
      ResolveTransactionFlow
    • ResolveTransactionFlow
      statesToRecord
      NONE
      覆盖到
      RELEVANT
      ,这句话让我很担心;我只想确保当您在节点
      M
      ReceiveFinalityFlow
      中将
      statesToRecord
      设置为
      NONE
      时,它不会记录事务或状态
  • 让我知道事情进展如何

    此外,要按帐户查询,请阅读以下两部分:

  • 搜索最后,如何按帐户查询vault?
  • 也请阅读这一点非常重要

  • 你好,阿德尔,非常感谢。成功了。我检查了节点M,没有保存状态。项目7中的问题未得到证实。没有一个的价值得到尊重。