0

我有一个配置有 1 个 Org、2 个 Peers、5 个 Orderers(Raft 集群)的 Hyperledger。该网络有一个带有简单链码的通道。

在使用 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(使用链码更新状态)。任何帮助表示赞赏。

4

2 回答 2

2

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

你有两个(不是相互排斥的)选择:水平扩展排序服务(更多 Raft 节点)和/或垂直扩展(更强大的机器)。

于 2019-10-21T20:38:33.980 回答
0

尝试更多硬件规格 4 个或更多 CPU 8 或更多 GB 内存

于 2019-10-22T07:44:36.377 回答