1

在 Hyperledger 结构中提交交易后,有没有办法从特定对等方获取背书,使用contract.submitTransaction()or channel.sendTransaction()?到目前为止,背书似乎总是来自同一个同行,而不是组织中的其他同行。请在下面查看我的环境详细信息。此外,如果我使用节点 sdk sendTransactionProposal(request)'sChaincodeInvokeRequest 首选或忽略列表来定位特定对等方,那似乎没有任何区别。是否有任何特定文档或替代资源可以解决此问题?

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 获得背书。

4

0 回答 0