Run a Chainlink node from scratch without Ethereum node

This guide will explain how you easily can run a Chainlink node from scratch using the Fiews EaaS on Ethereum Mainnet, Ropsten or Rinkeby

Official documentation from the Chainlink docs will always be the preferred way to setup a node. This guide is only meant to give minimum and easy to follow instructions.

In this guide, we will be setting up and teach you how to run a Chainlink node using the Fiews EaaS. This means you will be running a Chainlink node without your own Ethereum node, which will greatly reduce your operating costs. For simplicity, we will be using Docker, but you can run a CL node without Docker if you want to. We will also use commands for linux/unix systems, but these can easily be changed for e.g. Windows.

If you're looking for a VPS to run your Chainlink node, we would recommend the AWS free tier or use free credits on Google Cloud Platform ($300 credit for free).

1. Install Docker

This step really depends on your operating system. Head over to the official Docker docs and learn how you can install Docker for your system: https://docs.docker.com/install/#supported-platforms

To get you started easily, here are some sample commands that should install Docker for different operating systems:

Amazon Linux 2
CentOS
Debian
Fedora
Ubuntu
sudo amazon-linux-extras install docker
sudo systemctl start docker
sudo gpasswd -a $USER docker
exit
# log in again
curl -sSL https://get.docker.com/ | sh
sudo systemctl start docker
sudo usermod -aG docker $USER
exit
# log in again
curl -sSL https://get.docker.com/ | sh
sudo usermod -aG docker $USER
exit
# log in again
curl -sSL https://get.docker.com/ | sh
sudo systemctl start docker
sudo usermod -aG docker $USER
exit
# log in again
curl -sSL https://get.docker.com/ | sh
sudo usermod -aG docker $USER
exit
# log in again

To confirm that it's installed, run docker version. It should print out something like this:

Client:
Version: 18.06.0-ce
API version: 1.38
[...]

2. Get a Fiews EaaS subscription

Head over to the Fiews Dashboard and sign up for an account. It will require you to verify your email before you can proceed, but you should receive the email within minutes. Once verified, create a new subscription. While we offer our free trial, an API key will be provided instantly. It will look something like this: 8q8Hv7NfZGxh4yc9JiiRAoCdvKwzSz5TUexkku0Rql. Take note of your key, as you will need it later.

If you want to run your node on mainnet you can not use a free trial subscription. Please use one of our paid plans.

3. Set up the Chainlink node

First we create a directory to hold your CL node:

Ropsten
Rinkeby
Mainnet
mkdir -p ~/.chainlink-ropsten
mkdir -p ~/.chainlink-rinkeby
mkdir -p ~/.chainlink-mainnet

Next, create the .env file to hold your environment variables. Copy and run the code below, just remember to change yourapikey to the API key you got from the website in Step 2.

Ropsten
Rinkeby
Mainnet
echo "ETH_URL=wss://cl-ropsten.fiews.io/v1/yourapikey
ROOT=/chainlink
LOG_LEVEL=debug
ETH_CHAIN_ID=3
MIN_OUTGOING_CONFIRMATIONS=2
LINK_CONTRACT_ADDRESS=0x20fe562d797a42dcb3399062ae9546cd06f63280
CHAINLINK_TLS_PORT=0
SECURE_COOKIES=false
ALLOW_ORIGINS=*" > ~/.chainlink-ropsten/.env
echo "ETH_URL=wss://cl-rinkeby.fiews.io/v1/yourapikey
ROOT=/chainlink
LOG_LEVEL=debug
ETH_CHAIN_ID=4
MIN_OUTGOING_CONFIRMATIONS=2
LINK_CONTRACT_ADDRESS=0x01BE23585060835E02B77ef475b0Cc51aA1e0709
CHAINLINK_TLS_PORT=0
SECURE_COOKIES=false
ALLOW_ORIGINS=*" > ~/.chainlink-rinkeby/.env
echo "ETH_URL=wss://cl-main.fiews.io/v1/yourapikey
ROOT=/chainlink
LOG_LEVEL=debug
ETH_CHAIN_ID=1
CHAINLINK_TLS_PORT=0
SECURE_COOKIES=false
ALLOW_ORIGINS=*" > ~/.chainlink-mainnet/.env

Now we are ready to start the Chainlink node!

Ropsten
Rinkeby
Mainnet
cd ~/.chainlink-ropsten && docker run -p 6688:6688 -v ~/.chainlink-ropsten:/chainlink -it --env-file=.env smartcontract/chainlink local n
cd ~/.chainlink-rinkeby && docker run -p 6688:6688 -v ~/.chainlink-rinkeby:/chainlink -it --env-file=.env smartcontract/chainlink local n
cd ~/.chainlink-mainnet && docker run -p 6688:6688 -v ~/.chainlink:/chainlink -it --env-file=.env smartcontract/chainlink local n

Running this for the first time will prompt you to create a password and confirm it. This will be your wallet password that you can use to unlock the keystore file generated for you. Then, you'll be prompted to enter an API Email and Password. This will be used to expose the API for the GUI interface. When running the node again, you can supply the -p option with a path to a text file containing the wallet key password, and a -a option, pointing to a text file containing the API email and password. Instructions on how to do that are here.

You will need to send some ETH to your node's address in order for it to fulfill requests. You can view your node's ETH address when the node starts up or on the Configuration page of the GUI.

You can now connect to your Chainlink node's UI interface by navigating to http://localhost:6688. If using a VPS, you can create a SSH tunnel to your node for 6688:localhost:6688 to enable connectivity to the GUI. Typically this is done with ssh -i $KEY $USER@$REMOTE-IP -L 6688:localhost:6688 -N. A SSH tunnel is recommended over opening up ports specific to the Chainlink node to be public facing. See our Best Security and Operating Practices page for more details on how to secure your node.

Final thoughts

While we have a node running, this guide has not covered how to fund your node with ETH, set up an oracle contract or even get any jobs. At the same time, we have walked through the most difficult steps of getting a node online.

We hope we have made it easy to get started as a node operator. If you want to learn more about our EaaS offering, as well as our pricing, head over to https://fiews.io.

Next steps

Now you know how easy it is to run a CL node, head over to the official Chainlink docs, as it contains important information for node operators. It really is not as difficult as it seems, just break it into small steps and try it out! Learn more