В Corda, как я могу запросить хранилище для всех состояний, записанных после определенного времени? - PullRequest
0 голосов
/ 02 октября 2018

Я хочу получить все состояния, которые мой узел записал после времени x.Как я могу получить поток всех состояний, записанных моим узлом с того времени?

1 Ответ

0 голосов
/ 02 октября 2018

Вот пример RPC-клиента, который возвращает все состояния, сохраненные узлом после времени x:

fun main(args: Array<String>) {
    // Getting an RPC connection to the node.
    require(args.size == 2) { "Usage: ExampleClientRPC <node address> <time>" }
    val nodeAddress = NetworkHostAndPort.parse(args[0])
    val client = CordaRPCClient(nodeAddress)
    val rpcOps = client.start("user1", "test").proxy

    val startTime = Instant.parse(args[2])

    val queryAfterTimeExpression = TimeCondition(
            RECORDED, BinaryComparison(GREATER_THAN_OR_EQUAL, startTime))
    val queryAfterTimeCriteria = VaultQueryCriteria(
            status = Vault.StateStatus.ALL,
            timeCondition = queryAfterTimeExpression)
    val queryAfterTimeResults = rpcOps.vaultTrackBy<ContractState>(queryAfterTimeCriteria)
    val afterTimeStates = queryAfterTimeResults.updates
}
...