在 Hyperledger 结构中提交交易后,有没有办法从特定对等方获取背书,使用contract.submitTransaction()
or channel.sendTransaction()
?到目前为止,背书似乎总是来自同一个同行,而不是组织中的其他同行。请在下面查看我的环境详细信息。此外,如果我使用节点 sdk sendTransactionProposal(request)'s
ChaincodeInvokeRequest 首选或忽略列表来定位特定对等方,那似乎没有任何区别。是否有任何特定文档或替代资源可以解决此问题?
ChaincodeInvokeRequest{ 目标:allPeers 或 peer2,// 或不同的 peer 首选:peer2,ignore,peer1 }
环境详细信息 当前设置:1 个组织和 2 个对等点
简单的背书政策:
{"identities":[{"role":{"name":"member","mspId":"Org1MSP"}}],policy:{"1-of":[{"signed-by":0}]}}
Fabric SDK库:
fabric-ca-client - v1.4.1
fabric-client - v1.4.1
fabric-network - v1.4.1
Hyperledger Fabric 版本:v1.4.1
使用以下方法针对 sdk 中的特定对等点:
const request = {
targets: peers or peer[1] or [peer2], -- target specific peer
chaincodeId: chaincodeName,
txId,
fcn: functionName,
args,
transientMap: transientMapData // , // private data,
ignore: list of peer[s] to ignore
preferred: list of peer[s] to prefer
};
const endorsementResults = await channel.sendTransactionProposal(request);
if (channel.verifyProposalResponse(endorsementResults[0][0])) {
const transactionRequest = {
proposalResponses: endorsementResults[0],
proposal: endorsementResults[1]
};
invokeResponse = await channel.sendTransaction(transactionRequest);
}
预期成绩:
transaction1 - 客户端向 peer1 提交交易并从 peer1 获得背书。transaction2 - 客户端向 peer2 提交交易并从 peer2 获得背书。
实际结果:
transaction1 - 客户端向 peer1 提交交易并从 peer1 获得背书。transaction2 - 客户端向 peer2 提交交易并从 peer1 获得背书。