У меня странное поведение. Когда я обновляю состояние со списком идентификаторов партнеров - других узлов - и затем читаю состояние, через rpcOps.vaultQueryBy
я вижу обновленное или неиспользованное состояние с обновленным списком партнеров, но если я делаю то же самое запрос через serviceHub.vaultService.queryBy
похоже, что список парнеров состояния вообще не изменился.
Если я получу все состояния в потоке - в том числе и использованные - похоже, что изменений не было, но через API все обновления в списке партнеров видны. Это какая-то ошибка, с которой я столкнулся, или я просто чего-то не понимаю?
Мы используем Corda 4.0.
Через API
var servicestates = rpcOps.vaultQueryBy<ServiceState>().states.map { it.state.data }
var services = getServices().filter {
it.linearId == UniqueIdentifier.fromString(serviceId)
}.single()
Внутренний поток
val serviceStateAndRef = serviceHub.vaultService.queryBy<ServiceState>(
QueryCriteria.LinearStateQueryCriteria(linearId = listOf(serviceLinearId))
).states.single()