6

我开始在 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"}

这显然意味着我的节点没有同步,所以我检查了日志并发现Address already in use

 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 实例,所以我不确定为什么会收到此错误。

4

1 回答 1

6

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

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

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

您也可以选择peer.port=50506在相关的配置文件中进行设置。

注意:此问题通常不会出现在 RSK 测试网上,因为它的默认对等发现端口是50505,一个更大的端口号。此问题通常不会在其他操作系统上发生,因为该 RSK 主网端口号通常未使用。

于 2021-02-22T09:00:56.427 回答