You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cardano预生产测试网节点同步失败(TrConnectError)求助

Cardano测试网节点无法同步问题排查与解决

问题概述

Cardano开发者门户旧测试网文档已过时,我参考新测试网文档(World Cardano Book及GitHub资源),遵循官方节点运行教程但替换为预生产测试网的新环境文件(未使用弃用文件),但节点始终无法同步网络。尝试devnet和预览测试网后问题依旧,当前使用节点版本为:

cardano-node 1.35.3 - linux-x86_64 - ghc-8.10
git rev ea6d78c775d0f70dde979b52de022db749a2cc32

错误日志

节点反复输出以下日志:

TrConnectError (Just 127.0.0.1:1337) 3.72.231.105:30000 Network.Socket.connect: <socket: 29>: invalid argument (Invalid argument)

TrConnectionManagerCounters (ConnectionManagerCounters {fullDuplexConns = 0, duplexConns = 0, unidirectionalConns = 0, inboundConns = 0, outboundConns = 0})

TracePromoteColdFailed 50 0 3.72.231.105:30000 160.633570297628s Network.Socket.connect: <socket: 29>: invalid argument (Invalid argument)

TraceGovernorWakeup
TracePublicRootsRequest 100 1
TracePublicRootRelayAccessPoint [RelayAccessDomain "preprod-node.world.dev.cardano.org" 30000]
TracePublicRootResult "preprod-node.world.dev.cardano.org" [(3.72.231.105,60)]
TracePublicRootsResults (fromList []) 9 512s

同步状态(首次运行)

{
    "block": 0,
    "epoch": 0,
    "era": "Byron",
    "hash": "9ad7ff320c9cf74e0f5ee78d22a85ce42bb0a487d0506bf60cfb5a91ea4497d2",
    "slot": 0,
    "syncProgress": "0.01"
}

原因分析

  1. 网络端口/配置冲突:Network.Socket.connect: invalid argument错误通常指向本地网络参数异常,比如节点配置的监听端口1337被占用,或系统网络参数(如somaxconn)设置过低导致连接失败。
  2. 防火墙/安全组拦截:日志显示已解析测试网中继节点IP,但无法建立连接,大概率是本地防火墙或云服务商安全组拦截了出站端口30000的TCP流量。
  3. 配置文件参数错误:替换环境文件时可能遗漏关键参数,比如config.json中的protocolMagicId与测试网不匹配(预生产为1、预览为2、devnet为1097911063),或topology.json中的中继节点配置失效。
  4. 节点数据损坏:首次运行时的初始数据目录可能存在残留的旧测试网数据,导致同步逻辑异常。

解决步骤

1. 排查本地端口与网络参数

  • 检查端口1337是否被占用:
    lsof -i :1337 || netstat -tulpn | grep 1337
    
    若被占用,修改节点配置文件config.json中的listenAddress端口(例如改为1338)。
  • 调整系统网络参数(Linux):
    sudo sysctl -w net.core.somaxconn=4096
    echo "net.core.somaxconn=4096" | sudo tee -a /etc/sysctl.conf
    
  • 放行出站端口30000:
    sudo ufw allow out 30000/tcp
    # 若使用云服务器,需在安全组中添加对应出站规则
    

2. 验证配置文件正确性

  • 确认protocolMagicId:
    • 预生产测试网:1
    • 预览测试网:2
    • Devnet:1097911063
  • 重新下载官方测试网环境文件:从Cardano官方GitHub仓库获取对应测试网的config.json、topology.json、genesis.json,避免手动修改引入错误。

3. 清理节点数据并重启

  • 停止节点进程:
    pkill cardano-node
    
  • 删除旧数据目录(默认路径示例):
    rm -rf ~/.cardano/testnet/db
    
  • 重新启动节点(预生产测试网示例):
    cardano-node run \
      --topology ./preprod-topology.json \
      --config ./preprod-config.json \
      --database-path ./db \
      --socket-path ./node.socket \
      --host-addr 0.0.0.0 \
      --port 30000
    

4. 升级节点版本(可选)

虽然1.35.3是稳定版,但可尝试升级至最新官方稳定版,确保与测试网协议完全兼容。


内容的提问来源于stack exchange,提问作者Daykoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 11:45:39