如何在Windows上运行RSK节点时避免“PeerDiscoveryException”?

7

我开始在Windows上运行RSK节点,当我尝试:

curl -X POST -H "Content-Type:application/json" --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://localhost:4444

我往往会得到以下信息:
{"jsonrpc":"2.0","id":1,"result":"0x0"}

这显然意味着我的节点没有同步,所以我检查了日志并发现了“地址已在使用”的错误。
 Exception in thread "UDPServer" co.rsk.net.discovery.
 PeerDiscoveryException: Discovery can't be started.
 At co.rsk.net.discovery.UDPServer$1.run(UDPServer.java:65) - caused by: java.net.BindException: Address already in use...

我没有运行其他RSK实例,所以不确定为什么会出现这个错误。

1个回答

6

你需要更改对等体发现端口 (peer.port) 以使用另一个端口。 这是因为RSK主网默认使用 5050 作为对等体发现端口, 而Windows通常已经分配了较小的端口号用于其他用途。

例如,要使用50506作为对等体发现端口启动RSKj, 请使用以下命令:

java \
  -D peer.port=50506 \
  -cp <PATH-TO-THE-RSKJ-JAR> \
  co.rsk.Start \
  --regtest

你也可以选择在相关配置文件中设置peer.port=50506
注意:这个问题通常不会发生在RSK Testnet上,因为它的默认对等方发现端口是50505,这是一个更大的端口号。这个问题通常不会发生在其他操作系统上,因为RSK Mainnet端口号通常未被使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接