如何获得传递给交易的历史状态参数

问题描述 投票:1回答:2

我正在尝试进行负责新状态的操作。简而言之,我想获得传递给invoke方法的函数名。当我查看历史状态时,我可以获取其值,时间戳,事务ID等,但不能获取负责该事务的参数。

我知道我们可以从块历史中获取参数,但是对于状态,我需要它。

有没有办法从链码方面实现这一目标?

hyperledger-fabric hyperledger-chaincode hyperledger-fabric-sdk-java
2个回答
0
投票

是的,您可以从链码中创建一个Invoke端点并执行以下操作:

func (s *SmartContract) Invoke(APIstub shim.ChaincodeStubInterface) sc.Response {
function, args := APIstub.GetFunctionAndParameters()
}

这里您拥有了想要的一切。例如,如果您打印function,您将看到您调用的函数的名称。


0
投票

我也想知道您的方法。但这是我的看法,我们可以在sdk中注册一个事件侦听器(使用registerChaincodeEvent方法)并在其中创建一个事件(使用setEvent方法)我们的链码,其中有效负载将是getFunctionAndParameters方法的结果。而且您可能可以继续将这些结果存储到数据存储中,以便以后全部获取。

或者:您可以简单地通过shim.success将getFunctionAndParameters的结果作为键发送回响应对象。

© www.soinside.com 2019 - 2024. All rights reserved.