我从“交易流程”'中读到以下声明。 hyperledger-fabric docs的一章。 (https://hyperledger-fabric.readthedocs.io/en/latest/txflow.html)
如果客户端应用程序打算将交易提交给订购服务以更新分类帐,则应用程序会在提交之前确定是否已满足指定的认可政策
'背书政策'是指可以在CLI中指定的链码的认可政策? (c.f.-P" OR(' Org1MSP.member',' Org2MSP.member')")
如果是这样,我可以举一个例子来检查“认可政策”吗?在node.js应用程序中? 谢谢。
答案 0 :(得分:0)
检查认可的一致性已经是SDK的一部分,因此对于客户端代码应该是透明的,请查看Channel.js:
var endorsements = [];
let proposalResponse = proposalResponses;
if(Array.isArray(proposalResponses)) {
for(let i=0; i<proposalResponses.length; i++) {
// make sure only take the valid responses to set on the consolidated response object
// to use in the transaction object
if (proposalResponses[i].response && proposalResponses[i].response.status === 200) {
proposalResponse = proposalResponses[i];
endorsements.push(proposalResponse.endorsement);
}
}
} else {
if (proposalResponse && proposalResponse.response && proposalResponse.response.status === 200) {
endorsements.push(proposalResponse.endorsement);
}
}
if(endorsements.length < 1) {
logger.error('sendTransaction - no valid endorsements found');
return Promise.reject(new Error('no valid endorsements found'));
}
现在,此代码检查它是否得到了所有签注对等方请求的一致认可响应。
虽然由客户端应用程序逻辑来确保它何时具有可满足的签名签名集。例如。如果认可政策是
AND(OR(Org1.member, Org3.member), OR(Org2.member, Org3.member))
并且您只获得了org1和org2的签名,上述检查将通过,而应用程序必须知道认可规则,并了解org1和org2单独的响应是不够的,需要得到org3的认可。
即将推出的Fabric版本,很可能是v1.2,它将提供服务发现功能,其中应用程序将提供自动检测支持同行的可满足子集的功能,使应用程序开发人员更容易使用此部分。