如何 return 链码中执行调用函数时的事务 ID、时间戳?

How to return Transaction id, time stamp on execution of invoke function in chaincode?

我需要在每次调用函数调用后 returning 事务 ID、客户端界面上的时间戳方面的指导。

我发现 stub.GetTxID() 用于获取交易 ID,但是 peer.response 只接受一个参数,所以我无法 return 上的 TxID客户端界面。

您可以创建一个响应对象来捕获相关信息,将其编组为 json 并 return 返回,如下所示:

 type ChaincodeResponse struct {
      txID string
      time *timestamp.Timestamp
 }

然后

// rest of the invoke code skipped, here is
// the relevant part:

resp, err := json.Marshal(ChaincodeResponse{
      txID: stub.GetTxID(),
      time: stub.GetTxTimestamp(),
})

// return json representation of relevant information
// in response
return shim.Success(resp)

我目前正在做一些事情,要求我们的所有交易都加上时间戳。我根据你上面的代码尝试了一些东西,但我认为 api 自 2017 年以来已经有了很大的进步。

目前,我正在为我们放在分类账上的所有内容添加一个 created: stub.GetTxTimestamp() 字段,然后在以后的任何查询中读取它们。虽然我想知道时间戳是否已经生成并存储,因此不需要这样做 - 你知道时间戳是否仍然自动存储在分类账上的每个项目上吗?