我正在尝试进行负责新状态的操作。简而言之,我想获得传递给invoke方法的函数名。当我查看历史状态时,我可以获取其值,时间戳,事务ID等,但不能获取负责该事务的参数。
我知道我们可以从块历史中获取参数,但是对于状态,我需要它。
有没有办法从链码方面实现这一目标?
是的,您可以从链码中创建一个Invoke端点并执行以下操作:
func (s *SmartContract) Invoke(APIstub shim.ChaincodeStubInterface) sc.Response {
function, args := APIstub.GetFunctionAndParameters()
}
这里您拥有了想要的一切。例如,如果您打印function,您将看到您调用的函数的名称。
我也想知道您的方法。但这是我的看法,我们可以在sdk中注册一个事件侦听器(使用registerChaincodeEvent方法)并在其中创建一个事件(使用setEvent方法)我们的链码,其中有效负载将是getFunctionAndParameters方法的结果。而且您可能可以继续将这些结果存储到数据存储中,以便以后全部获取。
或者:您可以简单地通过shim.success将getFunctionAndParameters的结果作为键发送回响应对象。