我有一个配置了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(使用链码更新状态)。任何帮助表示赞赏。
答案 0 :(得分:2)
我认为没有人可以直接回答您的问题。 Fabric论文介绍了使用一些功能非常强大的机器进行的测量(我认为每个节点大约32个CPU内核)。由于当时还没有实现Raft,因此它使用了Kafka排序。
您有两个选择(并非互斥):水平(更多Raft节点)和/或垂直(更坚固的机器)扩展订购服务。
答案 1 :(得分:0)
尝试更多硬件规格的产品 4个或更多CPU 8或更多GB公羊