我开始在 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 实例,所以我不确定为什么我会收到这个错误。
最佳答案
您需要更改对等发现端口 ( 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 测试网上
因为它的默认对等发现端口是
50505
,一个更大的端口号。
此问题在其他操作系统上通常不会发生
因为该 RSK 主网端口号通常未使用。
关于port - 在 Windows 上运行 RSK 节点时如何避免 "PeerDiscoveryException"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66312549/