在 Corda 中,如何软锁定状态以防止另一个流从保管库中选择它?如何释放软锁?它会在任何时候自动释放吗?
您可以使用以下内容软锁定流中的状态:
serviceHub.vaultService.softLockReserve(
runId.uuid,
NonEmptySet.of(stateRef)
)
哪里:
stateRef
是要软锁定的状态runId
是每个流中定义的属性
通过以这种方式锁定状态,软锁定将在软锁定它的流结束时自动释放(成功或错误(。
您还可以使用以下方法释放软锁:
serviceHub.vaultService.softLockRelease(
runId.uuid,
NonEmptySet.of(stateRef)
)
您没有义务使用流的UUID
软锁定状态。您可以提供自定义UUID
,以提供对软锁释放时间的额外控制。