在Hyperledger Fabric中以高速率发送交易时未发现错误



我有一个配置了 1 个组织、2 个对等节点、5 个排序者(Raft 集群(的超级账本。该网络有一个带有简单链码的通道。

在使用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(使用链码更新状态(。任何帮助,不胜感激。

我认为

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

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

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

内存

最新更新