Corda:用于验证从发起节点收到的交易请求的用户交互
Corda: User interaction for verifying the transaction request received from the initiator node
我们有一个用例,需要执行以下步骤:
(1) Initiator通过UI触发交易流程
(2) 流程被发起,由发起者签名并发送给接收者进行验证和签名(在 Corda 中)
(3) 发起者的流程应该暂停,直到接收者通过验证合约代码验证交易并通过UI再次提交"verified"
(4) 这应该重新启动发起者的流程,并且应该按照 Corda
中的预期遵循剩余的过程
几周前有人提到 Corda 尚不支持用户交互;这个功能还没有吗?将来,我们甚至可能希望通过 UI 添加状态的属性,因为它使我们能够灵活地提出我们想要的交易,而不是将其硬编码。知道这在未来的版本中是否可行吗?
请参阅 Negotiation Cordapp 示例,了解这在实践中如何运作的示例 here。
目前尚未实现暂停人类交互流程(从 Corda V3.0 开始)。
相反,您可以通过向您的状态添加状态标志来实现此目的:
class FooState(
override val participants: List<Party>,
val accepted: Boolean) : ContractState
你有三个命令:
interface Commands : CommandData {
class Propose : Commands
class Reject: Commands
class Accept: Commands
}
还有两个流程:
一个提案流程:在这个流程中,发起者创建并签署了一个Propose
交易,以使用Propose
命令和 accepted
标志设置为 false
一个接受流程:在这个流程中,接收者要么:
- 创建一个
Reject
交易,该交易使用提议的状态并且不输出任何内容。该状态已从账本中删除并被有效拒绝
- 创建一个
Accept
事务来更新提议的状态,以便 accepted
为 true
。现在状态已经被接受,这个事实被登记在账本上
您将为接受流程提供一个参数,该参数决定是否接受提案。当流程通过 API 或直接通过 RPC 启动时,用户将提供此参数。
我们有一个用例,需要执行以下步骤: (1) Initiator通过UI触发交易流程 (2) 流程被发起,由发起者签名并发送给接收者进行验证和签名(在 Corda 中) (3) 发起者的流程应该暂停,直到接收者通过验证合约代码验证交易并通过UI再次提交"verified" (4) 这应该重新启动发起者的流程,并且应该按照 Corda
中的预期遵循剩余的过程几周前有人提到 Corda 尚不支持用户交互;这个功能还没有吗?将来,我们甚至可能希望通过 UI 添加状态的属性,因为它使我们能够灵活地提出我们想要的交易,而不是将其硬编码。知道这在未来的版本中是否可行吗?
请参阅 Negotiation Cordapp 示例,了解这在实践中如何运作的示例 here。
目前尚未实现暂停人类交互流程(从 Corda V3.0 开始)。
相反,您可以通过向您的状态添加状态标志来实现此目的:
class FooState(
override val participants: List<Party>,
val accepted: Boolean) : ContractState
你有三个命令:
interface Commands : CommandData {
class Propose : Commands
class Reject: Commands
class Accept: Commands
}
还有两个流程:
一个提案流程:在这个流程中,发起者创建并签署了一个
Propose
交易,以使用Propose
命令和accepted
标志设置为false
一个接受流程:在这个流程中,接收者要么:
- 创建一个
Reject
交易,该交易使用提议的状态并且不输出任何内容。该状态已从账本中删除并被有效拒绝 - 创建一个
Accept
事务来更新提议的状态,以便accepted
为true
。现在状态已经被接受,这个事实被登记在账本上
- 创建一个
您将为接受流程提供一个参数,该参数决定是否接受提案。当流程通过 API 或直接通过 RPC 启动时,用户将提供此参数。