带有令牌和帐户的密码

问题描述 投票:0回答:1

[我们正在与Kotlin一起在Corda使用令牌和帐户。我将详细说明该场景。我们有一个node1和一个node2。我们创建了一个从TokenType扩展的“ OurTokenType”。我们在node1上创建了两个帐户(卖方和买方),并与node2共享。根据应用程序的业务规则,node2是发行令牌(FungibleToken)的节点,并且发行可以正常进行。最后,节点1和节点2可以访问FungibleStates进行发行事务。我们的问题在于这些令牌的转移。当我们尝试将代币从帐户卖方转移到买方时。在我们的方案中,令牌的传输可以发生在node1或node2上。当我们通过作为帐户宿主的node1进行转移时,我们可以使用有效的MoveFungibleTokensFlow类,并将node1上的FungibleStates更新为正确的值。但是,当我们在observerSessions参数中将node2添加为观察者时,node2上的FungibleStates没有正确更新。当我们使用MoveFungibleTokensFlow类按不是帐户宿主的node2进行转帐时,它不起作用,它会生成com.r3.corda.lib.tokens.selection.InsufficientBalanceException异常:可支配的支出不足确定的状态,即使平衡。

我的问题是,即使帐户位于另一台主机上,我也可以使用MoveFungibleTokensFlow类在帐户之间进行转移吗?当我们在托管帐户的节点上运行时,使用observerSessions更新FungibleStates有什么问题?还是必须遵循链接https://github.com/corda/samples-kotlin/tree/master/Accounts/worldcupticketbooking的示例?

corda
1个回答
0
投票

让我将您的问题分为两部分:

  1. 观察者会话不会自动更新:这是我们如何在观察者会话上触发更新的示例:https://github.com/corda/samples-kotlin/blob/master/Tokens/stockpaydividend/workflows/src/main/kotlin/net/corda/samples/stockpaydividend/flows/AnnounceDividend.kt#L37这将确保无论维护者何时进行更新,观察者的令牌状态都会被更新。 (注意:只有维护者才能进行更新,而所有者则不能)

  2. 双方之间的可替代令牌转让:是。这是可行的。这行代码是worldcupticketbooking示例中FungibleToken转移的开始:https://github.com/corda/samples-kotlin/blob/master/Accounts/worldcupticketbooking/workflows/src/main/kotlin/com/t20worldcup/flows/DVPAccountsHostedOnDifferentNodes.kt#L102确实有效。

[我看到你提到你在InsufficientBalanceException上收到一条错误消息,如果我是你,我将开始从那里进行挖掘,并查看正在准确查询哪个令牌。

© www.soinside.com 2019 - 2024. All rights reserved.