在Hyperledger Fabric中以高速率发送事务时未发现订购者错误

时间:2019-07-10 10:18:28

标签: hyperledger-fabric raft hyperledger-caliper

我有一个配置了1个组织,2个对等体,5个订购者的超级账本(筏集群)。该网络具有一个带有简单链码的通道。

使用Hyperledger Caliper(最多7个客户端)将事务发送到网络时,对于每秒较少的事务数,它可以正常工作。当我将TPS增加到60以上时,对于某些事务它会引发以下错误。

2019-07-10T08:20:58.651Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://orderer2-hlf:7050
2019-07-10T08:20:58.652Z - error: [Orderer.js]: Orderer grpcs://orderer2-hlf:7050 has an error Error: Failed to connect before the deadline URL:grpcs://orderer2-hlf:7050 
(node:585) UnhandledPromiseRejectionWarning: Error: Failed to connect before the deadline URL:grpcs://orderer2-hlf:7050
    at checkState (/opt/caliper/node_modules/fabric-client/node_modules/grpc/src/client.js:833:16)
(node:585) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 42)

增加订购者数量会减少拒绝交易的数量。看起来像订购者中的缓冲区限制。

Fabric声称大约有1000 TPS,但我不能超过90 TPS(使用链码更新状态)。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

我认为没有人可以直接回答您的问题。 Fabric论文介绍了使用一些功能非常强大的机器进行的测量(我认为每个节点大约32个CPU内核)。由于当时还没有实现Raft,因此它使用了Kafka排序。

您有两个选择(并非互斥):水平(更多Raft节点)和/或垂直(更坚固的机器)扩展订购服务。

答案 1 :(得分:0)

  

尝试更多硬件规格的产品   4个或更多CPU   8或更多GB公羊