使用indy-sdk调用pool.open_pool_ledger时出现网络超时错误求助
Indy-SDK
pool.open_pool_ledger 网络超时排查方案 仅pool.open_pool_ledger接口触发网络超时,而wallet.open_wallet等本地操作接口正常,说明问题集中在节点池的网络连通或配置层面,以下是针对性排查步骤:
验证节点池配置文件(Genesis文件)有效性
检查genesis文件中记录的节点IP、端口是否正确,且当前机器能访问这些节点。可通过nc -zv <节点IP> <节点端口>或telnet <节点IP> <节点端口>测试连通性,若无法连接,需修正genesis文件或打通网络链路。调整池连接超时参数
Indy-SDK默认超时时间可能不足以完成节点池初始化,调用pool.open_pool_ledger时可手动设置更长超时:import json from indy import pool # 设置60秒超时(根据实际情况调整) pool_config = json.dumps({"timeout": 60000}) await pool.open_pool_ledger("your_pool_name", pool_config)检查目标节点状态
确认节点池内的节点是否正常运行:- 私有链节点:联系运维查看节点进程状态、资源占用情况;
- 公共测试网:查看官方状态公告,确认无维护或故障。
排查本地网络限制
本地防火墙、代理或VPN可能拦截了到节点池的网络请求(钱包操作无需网络,因此不受影响)。临时关闭相关网络限制后重试,验证是否解决问题。确认SDK与节点版本兼容性
若SDK版本与节点池的Indy节点版本不匹配,可能导致通信协议不兼容引发超时。对照官方版本兼容文档,尝试升级或降级SDK版本测试。
相关错误日志
2023-07-24 16:44:57,015 DEBUG _get_error_details: >>> 2023-07-24 16:44:57,015 DEBUG _get_error_details: <<< error_details: {'backtrace': '', 'message': 'Error: Pool timeout\n Caused by: Pool timeout\n'} 2023-07-24 16:44:57,015 DEBUG _indy_callback: >>> command_handle: 2, err , args: (0,) 2023-07-24 16:44:57,016 DEBUG _indy_callback: <<< 2023-07-24 16:44:57,016 DEBUG _indy_loop_callback: >>> command_handle: 2, err , args: (0,) 2023-07-24 16:44:57,016 WARNING _indy_loop_callback: Function returned error 2023-07-24 16:44:57,016 DEBUG _indy_loop_callback <<<
内容的提问来源于stack exchange,提问作者jinnan li
相关产品推荐
相关产品推荐

