在Corda中,如何查询vault中特定状态之后记录的所有状态?
我拥有节点记录的状态的在Corda中,如何查询vault中特定状态之后记录的所有状态?,corda,Corda,我拥有节点记录的状态的StateRef。既然记录了StateRef,如何获取节点记录的所有状态的流?您需要做两件事: 确定录制您的StateRef的时间 从该时间之后开始流式更新 下面是一个RPC客户端示例,可以执行此操作: fun main(args: Array<String>) { // Getting an RPC connection to the node. require(args.size == 1) { "Usage: ExampleClientRP
StateRef
。既然记录了StateRef
,如何获取节点记录的所有状态的流?您需要做两件事:
StateRef
的时间fun main(args: Array<String>) {
// Getting an RPC connection to the node.
require(args.size == 1) { "Usage: ExampleClientRPC <node address>" }
val nodeAddress = NetworkHostAndPort.parse(args[0])
val client = CordaRPCClient(nodeAddress)
val rpcOps = client.start("user1", "test").proxy
// Change this to an actual StateRef.
val dummyStateRef = StateRef(SecureHash.zeroHash, 0)
// Getting the time the state was recorded.
val queryByStateRefCriteria = VaultQueryCriteria(stateRefs = listOf(dummyStateRef))
val queryByStateRefResults = rpcOps.vaultQueryBy<ContractState>(queryByStateRefCriteria)
val queryByStateRefMetadata = queryByStateRefResults.statesMetadata
val dummyStateRefRecordedTime = queryByStateRefMetadata.single().recordedTime
// Getting the states recorded after that time.
val queryAfterTimeExpression = TimeCondition(
RECORDED, BinaryComparison(BinaryComparisonOperator.GREATER_THAN_OR_EQUAL, dummyStateRefRecordedTime))
val queryAfterTimeCriteria = VaultQueryCriteria(
status = ALL,
timeCondition = queryAfterTimeExpression)
val queryAfterTimeResults = rpcOps.vaultTrackBy<ContractState>(queryAfterTimeCriteria)
val afterTimeStates = queryAfterTimeResults.states
}
fun main(args:Array){
//正在获取到节点的RPC连接。
require(args.size==1){“用法:ExampleClientRPC”}
val nodeAddress=NetworkHostAndPort.parse(args[0])
val client=CordaRPCClient(nodeAddress)
val rpcOps=client.start(“user1”、“test”).proxy
//将其更改为实际StateRef。
val dummyStateRef=StateRef(SecureHash.zeroHash,0)
//获取记录状态的时间。
val queryByStateRefCriteria=VaultQueryCriteria(stateRefs=listOf(dummyStateRef))
val queryByStateRefResults=rpcOps.vaultQueryBy(queryByStateRefCriteria)
val queryByStateRefMetadata=queryByStateRefResults.statesMetadata
val dummyStateRefRecordedTime=queryByStateRefMetadata.single().recordedTime
//在那之后记录状态。
val queryAfterTimeExpression=TimeCondition(
记录,二进制比较(二进制比较运算符.BinaryComparisonOperator.GREATER_大于_或等于,dummyStateRefRecordedTime))
val queryAfterTimeCriteria=VaultQueryCriteria(
状态=全部,
timeCondition=queryAfterTimeExpression)
val queryAfterTimeResults=rpcOps.vaultTrackBy(queryAfterTimeCriteria)
val afterTimeStates=queryAfterTimeResults.states
}