RIF Relay Installation Requirements
To have the RIF Relay System running locally there are some tools that are required. All of these tools are open source and have their own support page. The functionality of RIF Relay does not depend on these technologies and could be updated or replaced, if necessary.
You need to have a running RSK node version RSKj. It is recommended to use the latest released version.
The node can be run locally or using docker.
When running a local RSKj node, we can configure the node to connect to a specific network; in this guide we will use
Node & NPM
Node version used is
We recommend the use of
nvm. After the installation process you can execute the following commands to use node version 16.
nvm install 16 nvm use 16
If you choose to use node without
nvm, you can find the installation instructions at Node's website.
You can check the installation by running
An important tool we use for interacting with the blockchain is
You can follow the installation guide in the Hardhat official website.
Run all hardhat commands with the prefix
npx. This is to execute node packages using the project's version.
Check if the installation was successful by running
npx hardhat version in your terminal.
The configuration file is
hardhat.config.ts. Please see Harhats's documentation for details about this file and how to use it.
We recommend following the official documentation for installing Docker and keeping it updated.
You'll need to install both
docker as well as
The RIF Relay components can be deployed using Docker or locally using Hardhat
A guide for the RIF Relay Server can be found in the repository.
Running on macOS
To run the project using Docker on a Mac, please do the following:
The startup scripts assume that GNU's
readlink command is available. But MacOS ships with BSD's
readlink, which is incompatible with GNU's version. So we must patch
readlink. This can be done using Homebrew as follows:
brew install coreutils ln -s /usr/local/bin/greadlink /usr/local/bin/readlink
After this step, ensure that the
PATH variable gives priority to
/usr/bin. You can check this with
which readlink, which should output
/usr/local/bin/readlink. Alternatively, try executing
readlink -f ., if it works, you're ok.
The interaction with the blockchain is done using Ethers v5.