Как избежать «PeerDiscoveryException» при запуске узла RSK в Windows?

Я начал запускать узел RSK в Windows и когда попробовал:

      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, поэтому я не уверен, почему я получаю эту ошибку.

1 ответ

Вам необходимо изменить порт обнаружения одноранговых узлов ( peer.port), чтобы использовать другой. Это потому, что RSK Mainnet использует 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 обычно не используется.

Другие вопросы по тегам