【发布时间】:2017-11-01 00:10:21
【问题描述】:
如果我的业务网络有 4 个 peer 加入一个通道,如何确定哪个 peer 接受了交易提议,哪个 peer 背书了交易,以及哪个 peer 将交易负载提交到状态数据库?
【问题讨论】:
标签: hyperledger-fabric hyperledger
如果我的业务网络有 4 个 peer 加入一个通道,如何确定哪个 peer 接受了交易提议,哪个 peer 背书了交易,以及哪个 peer 将交易负载提交到状态数据库?
【问题讨论】:
标签: hyperledger-fabric hyperledger
所有对等方在处理事务后要么接受要么拒绝。 您可以通过订阅事件并接收交易状态的更新来知道它是否被接受。
为交易背书的节点,将他们的 SerializedIdentity 放入背书。因此,要知道哪些对等方认可了一个给定的交易,您需要使用类似于以下代码的代码来深入研究该交易:
var block common.Block
data := block.Data.Data
env, err := utils.GetEnvelopeFromBlock(envBytes)
payload, err := utils.GetPayload(env)
tx, err := utils.GetTransaction(payload.Data)
ccActionPayload, err := utils.GetChaincodeActionPayload(tx.Actions[0].Payload)
endorsements := ccActionPayload.Action.Endorsements
var endorsers []*peer.Endorser
for _, e := range endorsements {
endorsers = append(endorsers, e.Endorser)
}
【讨论】: