我正在尝试连接到hedera测试网。我按照文档创建了一个帐户并使用
hederaClient := hederaSdk.ClientForTestnet()
hederaClient.SetOperator(cfg.Hedera.OperatorID, cfg.Hedera.OperatorKey)
字符串
此片段尝试连接到常春藤网络。但它会抛出“ERROR:[传输]客户端收到GoAway,错误代码为ENHANCE_YOUR_CALM,调试数据等于ASCII“too_many_pings”。
我发现这是grpc连接的问题,但我只打开一个连接,并没有改变连接中的任何设置。
我的go版本是1.20和hedera sdk是v2.24.3
1条答案
按热度按时间2exbekwf1#
对于一些背景,grpc构建在HTTP/2之上。在HTTP/2中,您可以在单个连接上有多个交错的并发请求。这些唯一请求中的每一个被称为“流”。Hedera配置为每个连接最多支持10个并发流(请求)。
限制的主要原因是控制所有连接的总内存使用量。也许Hedera可以提高上限,也许不是。在任何一种情况下,客户都必须准备好处理案件。
本例中的客户端得到了一个GOAWAY and ENHANCE_YOUR_CALM,因为它试图发送比允许的更多的并发流。SDK应该透明地处理这个问题,这样客户端应用程序就不会遇到这种情况。如果不是这样的话,那么我会先看看SDK是否有bug。