port - 在 Windows 上运行 RSK 节点时如何避免 "PeerDiscoveryException"?

标签 port json-rpc rsk

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

相关文章:

perl 监听端口号以检查状态

mysql - 在mac终端,如何查看mysql在哪个端口运行?

java - java 上的 Json-rpc 服务用于 jquery 终端模拟器

java - 按照这个简单的 GSON 示例,等效的客户端 RestyGWT 是什么样子?

rpc - 如何在 RSK 上使用 personal_sendTransaction?

ethereum - 如何计算用于 RSK 交易的天然气价格?

node.js - 端口 80 上的 Socket.io

java - 使用java应用程序在linux中打开端口

mongodb - 如何将 mongodb session 放入 creachadair/jrpc2 处理程序中

rpc - 如何从 RSKj regtest 区 block 链节点的测试账户发送 web3 交易