RSK node can be installed on all major platforms, including Linux, Windows, and Mac. The RSK local node is known as RegTest, the same name as bitcoin’s local node.
In this step, we provide step-by-step instructions for running an RSK RegTest node.
Note: This step is only necessary for Mac OSX Developers.
Please ensure you are running xcode directly, and not the command line instance:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
This is a system command that is likely already installed on your system.
If curl --version
displays an error,
download curl.
Go to the official Java download page, and download and run the installer from there.
There are a variety of ways to do this, and SDKman is one which allows you to install and switch between multiple versions as needed:
curl -s "https://get.sdkman.io/" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
# to get a filtered list of available java versions
sdk list java | grep "8\." # copy a selection for use below
# install the version of java copied above
# (replace accordingly)
sdk install java 8.0.242.j9-adpt
# show installed versions, and switch to the selected one
# (replace accordingly)
sdk list java | grep installed
sdk use java 8.0.242.j9-adpt
java -version
RSKj is the software for running RSK nodes.
There are several ways to set up an RSK node. Here, we will download a JAR file, and run it using the Java SDK that has been installed.
Go to the releases page, and click on the most recent one to download it.
You need to click on the JAR file,
in the end of the post about the latest release.
Its name should be rskj-core-*.jar
:
When installing and running the RSKj node, it is always good practice to verify that your copy is legitimate.
Let’s compute the checksum using the following command:
sha256sum rskj-core-2.0.1-PAPYRUS-all.jar
For this version, the output should look like this:
43149abce0a737341a0b063f2016a1e73dae19b8af8f2e54657326ac8eedc8a0 *rskj-core-2.0.1-PAPYRUS-all.jar
On Windows, use this command instead:
C:\>certutil -hashfile rskj-core-2.0.1-PAPYRUS-all.jar SHA256
For this version, the output on windows should look like this:
SHA256 hash of rskj-core-2.0.1-PAPYRUS-all.jar:
43149abce0a737341a0b063f2016a1e73dae19b8af8f2e54657326ac8eedc8a0
CertUtil: -hashfile command completed successfully.
The output checksum should match the checksum seen on the releases page.
For more information about verifying that your copy is legitimate, including signature verification, check out the full instructions on how to do this.
To run the node:
java -cp <PATH-TO-THE-RSKJ-JAR> -Drpc.providers.web.cors=* co.rsk.Start --regtest
(Replace <PATH-TO-THE-RSKJ-JAR>
with your path to the JAR file).
Example:
C:\>java -cp C:\RSK\node\rskj-core-2.0.1-PAPYRUS-all.jar -Drpc.providers.web.cors=* co.rsk.Start --regtest
If you see no output - that is a good thing: Its output is directed to a log file.
Note: The flag provided above,
-Drpc.providers.web.cors=*
, This disables cross origin resource sharing protection, effectively allowing any web page to access it. As we want to make JSON-RPC requests from a browser, such as a DApp, we need this flag.
Do not close this terminal. If closed, the RSKj node will stop running. Run the following commands in a new terminal.
RSKj allows you to connect over HTTP,
and is currently listening on port 4444
.
Let us verify that this works.
Open a new terminal window.
Issue a JSON-RPC request to the RSKj over HTTP. For example:
curl http://localhost:4444/ \
-s \
-X POST \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
For Windows:
C:\>curl http://localhost:4444/ -s -X POST -H "Content-Type: application/json" --data "{\"jsonrpc\":\"2.0\",\"method\":\"eth_blockNumber\",\"params\":[],\"id\":1}"
The response should look similar to this:
{ "jsonrpc": "2.0", "id": 1, "result": "0x2991b" }
The result
property is the number of the latest block that has been synced. Note that this value (0x2991b
) is the block number in hexadecimal (base 16), so the output above indicates that the current block number is 170267
in decimal (base 10).
Note: You can enter any other valid JSON-RPC commands as the
POST
body.
RSKj also allows you to connect over websockets,
and is currently listening on port 4445
.
Let’s verify that this works too.
Note: This step is optional, the HTTP connection above is sufficient.
Note: You will need NodeJs and npm installed on your system for this.
npx wscat -c ws://localhost:4445/websocket
If you have not installed
wscat
globally before,
wait for it to do so,
and then it will load up its own shell.
Connected (press CTRL+C to quit)
>
Again, you can enter any valid JSON-RPC command in the prompt. Be sure to check that you receive a valid and expected response.
For example, enter the following request:
> {"jsonrpc":"2.0","method":"eth_blockNumber", "params": [], "id":1}
This should return a response similar to the following:
< {"jsonrpc":"2.0","id":1,"result":"0x299d3"}
Now that we have an RSK Regtest node running, we’re ready to begin the next step, where we will connect to this.
Go to top