Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Corda中,如何查询vault中特定状态之后记录的所有状态?_Corda - Fatal编程技术网

在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
    的时间
  • 从该时间之后开始流式更新
  • 下面是一个RPC客户端示例,可以执行此操作:

    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
    }