Setup node on Java
Make sure your system meets the minimum requirements before installing RSK nodes on it.
You also need to install Java 8 JDK.
For Mac M1 / M2 (Apple Chips)
In order to run RSKj on Apple M1/M2 machines using x86 based software, make sure to have Rosetta
installed in your device (it should be pre-installed by default on recent versions of macOS). Also you'd need an x86 JDK build. A suggestion could be Azul Zulu 11 (x86)
Install the node using a JAR file
The Fat JAR or Uber JAR can be downloaded or compiled (in a reproducible way or not).
To run the node:
- Linux, Mac OSX
$ java -cp <PATH-TO-THE-RSKJ-JAR> co.rsk.Start
- Windows
C:\> java -cp <PATH-TO-THE-RSKJ-JAR> co.rsk.Start
Replace <PATH-TO-THE-RSKJ-JAR>
with your path to the JAR file. As an example: C:/RskjCode/rskj-core-5.2.0-FINGERROOT-all.jar
Using import sync
Note: This feature is optional.
Note: This feature, first released as part of RSKj v2.0.1, is currently experimental.
If you don't want to synchronize your node in the default way, you can use the import sync feature. This method imports a synchronized database from a trusted origin in a fraction of the time currently required.
Use this command to run the node:
- Linux, Mac OSX
$ java -cp <PATH-TO-THE-RSKJ-JAR> co.rsk.Start --import
- Windows
C:\> java -cp <PATH-TO-THE-RSKJ-JAR> co.rsk.Start --import
If your hardware meets the minimum hardware requirements, but you get a memory error during the process, please consider adding the following flag to the command to change the memory allocated to the process:
- Linux, Mac OSX
$ java -Xmx4G -cp <PATH-TO-THE-RSKJ-JAR> co.rsk.Start --import
- Windows
C:\> java -Xmx4G -cp <PATH-TO-THE-RSKJ-JAR> co.rsk.Start --import
Replace <PATH-TO-THE-RSKJ-JAR>
with your path to the JAR file. As an example: C:/RskjCode/rskj-core-5.2.0-FINGERROOT-all.jar
For further reference, check out the
database.import
configuration setting.
Check the RPC
If you see no output, it means that the node is running. To confirm, you can open a new console tab (it is important you do not close this tab or interrupt the process) and issue a request to the node's RPC HTTP server. This is an example using cURL:
- Linux, Mac OSX
$ curl http://localhost:4444/ -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
- Windows
C:\> curl http://localhost:4444/ -X POST -H "Content-Type: application/json" --data '{\"jsonrpc\":\"2.0\",\"method\":\"eth_blockNumber\",\"params\":[],\"id\":1}'
The response should look similar to:
{"jsonrpc":"2.0","id":1,"result":"0xfc0"}
... where the result
property is the number of the latest block that has been synced (in hexadecimal).
Switching networks
If you want to change the network use these commands:
- Mainnet:
java -cp <PATH-TO-THE-RSKJ-FATJAR> co.rsk.Start
- Testnet:
java -cp <PATH-TO-THE-RSKJ-FATJAR> co.rsk.Start --testnet
- Regtest:
java -cp <PATH-TO-THE-RSKJ-FATJAR> co.rsk.Start --regtest
Replace <PATH-TO-THE-RSKJ-FATJAR>
with your path to the jar file. As an example: C:/RskjCode/rskj-core-5.2.0-FINGERROOT-all.jar