确定 Hyperledger 网络中的 Peer 类型
Determine Peer type in Hyperledger network
如果我有一个业务网络,其中有 4 个节点加入一个通道,如何确定哪个节点接受了交易提议,哪个节点背书了交易,哪个节点将交易负载提交到状态数据库?
所有节点在处理交易后要么接受要么拒绝交易。
您可以通过订阅事件和接收交易状态更新来知道它是否被接受。
为交易背书的节点将他们的 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)
}
如果我有一个业务网络,其中有 4 个节点加入一个通道,如何确定哪个节点接受了交易提议,哪个节点背书了交易,哪个节点将交易负载提交到状态数据库?
所有节点在处理交易后要么接受要么拒绝交易。 您可以通过订阅事件和接收交易状态更新来知道它是否被接受。
为交易背书的节点将他们的 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)
}