请考虑以下情况:他们是PartyA,并且在PartyA中创建了account1。现在,我们必须在account1和PartyA之间发起交易。是否可以通过帐户启动交易流程,并且接收方是主机节点?如果是,那么任何人都可以建议明智的编码步骤。如果有示例示例,请告诉我。
答案 0 :(得分:0)
PublicKey
代表帐户签署交易;这就是您要寻找的。 所以事情看起来像这样:
PartyA
启动您的流程。 MyState(myAccount: PublicKey)
UUID
中的myAccount
作为输入参数:class MyFlow(val myAccountId: UUID, ...
val myAccountInfo = accountService.accountInfo(myAccountId)
?: throw IllegalStateException("Can't find account with Id $myAccountId")
val myAccountKey = subFlow(RequestKeyForAccount(myAccountInfo.state.data)).owningKey
val myState = MyState(myAccountKey)
PartyA
(这是启动流程的节点,即ourIdentity
)和{ {1}}:myAccountInfo
val command = Command(MyState.Commands.Create(),
listOf(ourIdentity.owningKey, myAccountKey))
(即流程的发起者PartyA
)和密钥ourIdentity
进行签名:myAccountInfo
您可以查看使用帐户库实现的IOU示例;同样,在您的情况下,您不需要响应者流程;他们创建了一个响应者流程,以防val fullySignedTx = serviceHub.signInitialTransaction(txBuilder,
listOf(ourIdentity.owningKey, myAccountKey))
帐户托管在与发起节点不同的节点上。
参见示例here。