gpt4 book ai didi

go - 我怎么知道哪个 Peer 在 Hyperledger Fabric Go 中进行了交易?

转载 作者:IT王子 更新时间:2023-10-29 02:35:03 25 4
gpt4 key购买 nike

我正在努力获取交易 ID 信息,它将提供交易的对等详细信息。目前,我能够检索 key 的历史记录,这会为我提供提交给该 key 的事务列表。

我的代码:

historyRes, err := stub.GetHistoryForKey(userNameIndexKey)

if err != nil {
return shim.Error(fmt.Sprintf("Unable to get History key from the ledger: %v", err))
}

for historyRes.HasNext() {

history, errIt := historyRes.Next()

if errIt != nil {
return shim.Error(fmt.Sprintf("Unable to retrieve history in the ledger: %v", errIt))
}

deleted := history.GetIsDelete()

ds := strconv.FormatBool(deleted)

fmt.Println("History TxId = "+history.GetTxId()+" -- Delete = "+ds)
}

输出

History TxId = 78c8d17c668d7a9df8373fd85df4fc398388976a1c642753bbf73abc5c648dd8 -- Deleted = false

History TxId = 102bbb64a7ca93367334a8c98f1f7be17e6a8d5277f0167c73da47072d302fa3 -- Deleted = true

但是我不知道,这个交易是哪个peer做的。 fabric-sdk-go 中是否有可用的 API 来检索交易 ID 的对等信息。

请给我一些解决方案。

最佳答案

调用 stub.GetHistoryForKey(userNameIndexKey) 将查询状态数据库而不是分类帐( channel )。有关进行交易的身份的信息存储在 block 中。

我已经用 NodeJS SDK 实现了同样的事情。然而,Go SDK 也包含类似的 API 调用。以下步骤对我有用:

  1. 使用您的 SDK,获取 transactionId
  2. 使用SDK功能通过transactionId查询区 block 。引用文献 here .
  3. 在这一步,您将获得 block 。现在提交者的身份位于此 block 内。提示:Payload -> Header -> Signature Header -> Creator -> IdBytes。
  4. 这些身份字节是提交者的 X509 证书。您可以阅读证书信息以找出哪个成员提交了此交易。主题和 OU 将指示进行交易的同行的组织。

关于go - 我怎么知道哪个 Peer 在 Hyperledger Fabric Go 中进行了交易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56944097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com