【发布时间】:2018-07-18 00:39:59
【问题描述】:
我在使用 Hyperledger Fabric node.js sdk 时遇到性能问题。
当我向 sdk 发出调用请求并使用以下代码使用链码给出的响应时
var proposalResponse = results[0];
var proposal = results[1];
let isProposalGood = false;
if(proposalResponse
&& proposalResponse[0].response
&& proposalResponse[0].response.status === 200){
isProposalGood = true;
var res = JSON.parse(proposalResponse[0].response.payload.toString());
res.event_status = 'VALID'
resolve(res);
}else{
reject(createErrorResponse(proposalResponse[0].message,500))
return
}
但是,当我使用以下代码等待orderer确认交易时:
if (code === 'VALID'){
//get payload from proposal response
var res = JSON.parse(proposalResponse[0].response.payload.toString());
res.event_status = 'VALID'
resolve(res);
}else{
var return_status = createErrorResponse("Transaction was not valid", 500);
return_status.tx_id = transaction_id_string
reject(return_status)
return
}
响应时间约为 2500 毫秒,如下图邮递员截图所示:
如果我错了,请纠正我
我知道这需要时间,因为orderer 确认事务并提交到ledger。但是您不认为只有在orderer 同意事务并提交到ledger 时我们才应该继续。如果是,则需要 2.5 秒才能响应(网络在本地机器上的 docker 上运行,而在同一台机器上的 sdk 上运行),这是一个性能问题。
如果将数据写入链码,然后订购者拒绝将交易写入分类帐,会发生什么情况?
任何帮助将不胜感激
【问题讨论】:
标签: node.js hyperledger-fabric