---
# System prepended metadata

title: RIF Relay Installation Requirements
tags: [' user', rif, ' envelope', ' install', ' guide', ' relay']

---

---
layout: rsk
title: RIF Relay Installation Requirements
tags: rif, envelope, relay, user, guide, install
permalink: /guides/rif-relay/install/
---

## Requirements

In this section, we will setup our development environment to use RIF Relay, run an RSK Node, and install RIF Relay locally using Truffle or Docker.

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. 

### RSK Node

You need to have a running RSK node version [RSKj](https://github.com/rsksmart/rskj/releases). It is recommended to use any version above `IRIS-3.2.0`.

> 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; on this guide we will use `Regtest` and `Testnet`. 


### Node & NPM

The `Node` version used is `v16.4.0`. 

We recommend the use of [`nvm`](https://github.com/nvm-sh/nvm) and the `.nvmrc` file included at the root of this project, you can install the correct node version by running:

```node
nvm use
nvm install
```

If you choose to use node without `nvm`, you can find the installation instructions at Node's [site](https://nodejs.org/en/). 

You can check the installation by running `node -v`.

### Truffle

An important tool we use for interacting with the blockchain is `Truffle` version `v5.0.33`.

You can follow the installation guide in the Truffle official [website](https://www.trufflesuite.com/truffle).

Run all truffle 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 truffle version` in your terminal.

The configuration file is `truffle.js`. Please see [Truffle's documentation](https://trufflesuite.com/docs/) for details about this file and how to use it.


### Using Docker

We recommend following the official [documentation](https://docs.docker.com/get-docker/) for installing Docker and keeping it updated.

You'll need to install both `docker` as well as `docker-compose`.

The RIF Relay components can be deployed using Docker or locally using [Truffle](/owyreJVJSnOcvPEOhO_kxQ#Truffle).

#### Running on macOS

To run the project using Docker on a Mac, please do the following: 

> Note that these steps are highly recommended, else the scripts and web apps will not work. 

- Patch `readlink`
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](https://brew.sh/) as follows:

```shell
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/local/bin` over `/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.

### Web3

Incomplete section