Corda:用于验证从发起方节点接收的事务请求的用户交互

Corda:用于验证从发起方节点接收的事务请求的用户交互,corda,Corda,我们有一个需要以下步骤的用例: (1) 启动器通过UI触发事务流 (2) 流程由发起人发起、签名,并发送给接收方进行验证和签名(Corda) (3) 在接收方通过验证合同代码验证交易并通过UI再次提交“已验证”之前,发起方的流程应该暂停 (4) 这将重新启动启动器的流程,并且应按照Corda中的预期遵循剩余流程 几周前有人提到Corda还不支持用户交互;此功能是否仍然不存在?将来,我们甚至可能希望通过UI添加状态的属性,因为它使我们能够灵活地提出我们想要的事务,而不是将其硬编码。您知道这在未来的

我们有一个需要以下步骤的用例: (1) 启动器通过UI触发事务流 (2) 流程由发起人发起、签名,并发送给接收方进行验证和签名(Corda) (3) 在接收方通过验证合同代码验证交易并通过UI再次提交“已验证”之前,发起方的流程应该暂停 (4) 这将重新启动启动器的流程,并且应按照Corda中的预期遵循剩余流程


几周前有人提到Corda还不支持用户交互;此功能是否仍然不存在?将来,我们甚至可能希望通过UI添加状态的属性,因为它使我们能够灵活地提出我们想要的事务,而不是将其硬编码。您知道这在未来的版本中是否可行吗?

请参阅Negotiation Cordapp示例,以了解这在实践中是如何工作的

目前尚未实施暂停流程以进行人机交互(从Corda V3.0开始)

相反,您可以通过向您的状态添加状态标志来实现这一点:

class FooState(
    override val participants: List<Party>,
    val accepted: Boolean) : ContractState
和两个流程:

  • 提议流:在该流中,发起人创建并签署一个
    提议
    交易,使用
    提议
    命令和设置为
    假的
    接受
    标志将状态发布到分类账上

  • 接受流:在该流中,收件人可以:

    • 创建一个
      拒绝
      事务,该事务使用建议的状态,但不输出任何内容。该状态已从分类帐中删除,并被有效拒绝
    • 创建更新建议状态的
      Accept
      事务,以便
      accepted
      true
      。该州现在已被接受,这一事实已登记在分类账上

您将为accept流提供一个参数,该参数决定是否接受该提议。当通过API或直接通过RPC启动流时,该参数将由用户提供。

有关如何在实践中工作的示例,请参阅协商Cordapp示例

目前尚未实施暂停流程以进行人机交互(从Corda V3.0开始)

相反,您可以通过向您的状态添加状态标志来实现这一点:

class FooState(
    override val participants: List<Party>,
    val accepted: Boolean) : ContractState
和两个流程:

  • 提议流:在该流中,发起人创建并签署一个
    提议
    交易,使用
    提议
    命令和设置为
    假的
    接受
    标志将状态发布到分类账上

  • 接受流:在该流中,收件人可以:

    • 创建一个
      拒绝
      事务,该事务使用建议的状态,但不输出任何内容。该状态已从分类帐中删除,并被有效拒绝
    • 创建更新建议状态的
      Accept
      事务,以便
      accepted
      true
      。该州现在已被接受,这一事实已登记在分类账上
您将为accept流提供一个参数,该参数决定是否接受该提议。当通过API或直接通过RPC启动流时,用户将提供此参数