# Learn about Fiews

Fiews offers connectivity to blockchains, both highly specific for Chainlink nodes or general access for any projects.

### Blockchain access for my dapps/websites/projects:

{% content-ref url="/pages/-Llc0mKcddimgEaaSKJg" %}
[Getting started](/general-purpose/getting-started)
{% endcontent-ref %}

### Blockchain access for Chainlink nodes:

{% content-ref url="/pages/-LjIiiBmavafpxXlQOMU" %}
[Getting Started with Ethereum as a Service](/chainlink/getting-started)
{% endcontent-ref %}

{% content-ref url="/pages/-LjIkREx4Ns7bfVGWq6P" %}
[Run a Chainlink node from scratch without Ethereum node](/chainlink/run-a-chainlink-node-from-scratch)
{% endcontent-ref %}

{% content-ref url="/pages/-LjIpoBr0WmHsAdarxYm" %}
[Troubleshooting](/chainlink/troubleshooting)
{% endcontent-ref %}


# Frequently asked questions

## Are nodes using Fiews more reliable?

A node using Fiews usually has access to better and more reliable infrastructure than a node operator who's hosting their own Ethereum node.

## Do nodes using Fiews fulfill requests faster?

In many cases, yes! Due to the fact that this is a paid service and we only accept the method calls required by a Chainlink node, we are able to provide more performant resources and our transaction pool is far less congested than most free services. Additionally, we can provide granular control over the number of Chainlink node operators on a particular Ethereum node and redistribute load based on a number of metrics.


# Our Chainlink Oracle

Use our officially-reviewed Chainlink Oracle to get data to your Ethereum smart contracts.

{% hint style="success" %}
Our Chainlink node has gone through Chainlink's review process, making it an officially reviewed Chainlink node! This means our Oracle is listed on [the official listing page](https://docs.chain.link/docs/decentralized-oracles-ethereum-mainnet).
{% endhint %}

## General information

Our Chainlink nodes are online and accepting requests on both Mainnet and Ropsten. For more information on how you can request data from our Chainlink nodes, please check out the official documentation:

{% embed url="<https://docs.chain.link/docs/contract-creators-overview>" %}
Follow the official documentation to learn how to use our Chainlink nodes
{% endembed %}

### Address and price

{% tabs %}
{% tab title="Mainnet" %}
**Oracle address:** `0x049Bd8C3adC3fE7d3Fc2a44541d955A537c2A484`\
**Price:** 0.1 LINK
{% endtab %}

{% tab title="Ropsten" %}
**Oracle address:** `0x1948C20CC492539968BB9b041F96D6556B4b7001`\
**Price:** 1 LINK
{% endtab %}
{% endtabs %}

## Job ids

### `HttpGet` -> `JsonParse` -> `EthBytes32`

{% tabs %}
{% tab title="Mainnet" %}
`0d21526754cc4cc3a53f1d4973454adc`
{% endtab %}

{% tab title="Ropsten" %}
`5ec95d6fcf8641eeb52a0f2f667f8f11`
{% endtab %}
{% endtabs %}

### `HttpPost` -> `JsonParse` -> `EthBytes32`

{% tabs %}
{% tab title="Mainnet" %}
`a9adb8bb48044961b0334eec95686afe`
{% endtab %}

{% tab title="Ropsten" %}
`69de7192bd36464d8a979ecf71ec96bb`
{% endtab %}
{% endtabs %}

### `HttpGet` -> `JsonParse` -> `Multiply` -> `EthInt256`

{% tabs %}
{% tab title="Mainnet" %}
`79d17c42a2694b408a6393a9ee8fbff2`
{% endtab %}

{% tab title="Ropsten" %}
`d0a996e4accd4796a2bcc418a6056012`
{% endtab %}
{% endtabs %}

### `HttpGet` -> `JsonParse` -> `Multiply` -> `EthUint256`

{% tabs %}
{% tab title="Mainnet" %}
`98839fc3b550436bbe752f82d7521843`
{% endtab %}

{% tab title="Ropsten" %}
`80fecd06d2e14c67a22cee5f9728e067`
{% endtab %}
{% endtabs %}

### `HttpGet` -> `JsonParse` -> `EthBool`

{% tabs %}
{% tab title="Mainnet" %}
`531efbbea5424b19bcbcb3f593cf9ac4`
{% endtab %}

{% tab title="Ropsten" %}
`fa6e09faa642407489d7ed43e6932ae8`
{% endtab %}
{% endtabs %}

{% hint style="info" %}
Do you need data from a private API or from an external adapter? Send an email to <business@fiews.io> and we'll figure out a plan!
{% endhint %}

## Supported parameters

### `HttpGet`

| Parameter     | Type                  | Description                                                                        |
| ------------- | --------------------- | ---------------------------------------------------------------------------------- |
| `get`         | string                | Takes a string containing the URL to make a `GET` request to                       |
| `headers`     | object                | Takes an object containing keys as strings and values as arrays of strings.        |
| `queryParams` | string *or* \[]string | Takes a string or array of strings for the URL's query parameters                  |
| `extPath`     | string *or* \[]string | Takes a slash delimited string or array of strings to be appended to the job's URL |

### `HttpPost`

| Parameter     | Type                  | Description                                                                        |
| ------------- | --------------------- | ---------------------------------------------------------------------------------- |
| `post`        | string                | Takes a string containing the URL to make a `POST` request to                      |
| `headers`     | object                | Takes an object containing keys as strings and values as arrays of strings.        |
| `queryParams` | string *or* \[]string | Takes a string or array of strings for the URL's query parameters                  |
| `extPath`     | string *or* \[]string | Takes a slash delimited string or array of strings to be appended to the job's URL |

### `JsonParse`

| Parameter | Type                  | Description                                                                                                                |
| --------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `path`    | string *or* \[]string | Takes an array of strings, each string being the next key to parse out in the JSON object or a single dot-delimited string |

### `Multiply`

| Parameter | Type   | Description                         |
| --------- | ------ | ----------------------------------- |
| `times`   | number | The number to multiply the input by |


# Plans & pricing

For the most up-to-date plans and pricing, please see <https://fiews.io/pricing>


# Getting started

Access to our general-purpose endpoints require an API key, which can be acquired from our dashboard: <https://dashboard.fiews.io/>

<table data-header-hidden><thead><tr><th width="252.13415508510542">Network</th><th width="343.9694858552554">Endpoint URL</th></tr></thead><tbody><tr><td><strong>Network</strong></td><td><strong>Endpoint URL</strong></td></tr><tr><td>Ethereum Mainnet</td><td><code>https://mainnet.ethereum.api.fiews.io/v2/rpc/&#x3C;YOUR_API_KEY></code></td></tr><tr><td>Ethereum Mainnet (WS)</td><td><code>wss://mainnet.ethereum.api.fiews.io/v2/ws/&#x3C;YOUR_API_KEY></code></td></tr></tbody></table>

### Example cURL request

A simple request using cURL is shown below. This request will call the `net_version` method, which gets the ID of the network.

```bash
curl https://mainnet.ethereum.api.fiews.io/v2/rpc/<YOUR_API_KEY> -d \
    '{"jsonrpc":"2.0","id":"1","method":"net_version","params":[]}'
```

The response from this call should be: `{"jsonrpc":"2.0","id":"1","result":"1"}` The result, 1, indicates that we are connected to the Ethereum testnet.


# Use with Metamask

Our blockchain RPC endpoints are compatible with Metamask. Learn how you can use our endpoints with Metamask.

Using free, public blockchain RPC can sometimes lead to slower page loads in dApps, or worst-case, make them not work at all. However, it is possible to use premium paid RPC endpoints, such as Fiews, to ensure a better experience.

Using Metamask with Fiews has some benefits, including, but not limited to:

* Access to a pool of blockchain nodes, used by production apps and Chainlink nodes, among others
* Proprietary TX broadcasting logic, ensuring your transactions are broadcast across the network, reducing the wait times for miners and explorers to pick up your transactions.

Here's a quick guide on how you can use Metamask with Fiews:

{% hint style="info" %}
If you already have a Fiews subscription, feel free to skip to **Step 2**.
{% endhint %}

## Step 1: Get a Fiews subscription

Head over to [the Fiews dashboard](https://dashboard.fiews.io/register) and create a new subscription. Once activated, it will look something like this:

![If you want access to a different network than Ethereum, such as Polygon or Binance Smart Chain, you will have to add these to your subscription.](https://4191904791-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LjIiMBUD6tDEdFQWjal%2Fuploads%2FmWpWxh46G5lIUwcJf1wi%2FSkjermbilde%202022-01-05%20kl.%2022.11.36.png?alt=media\&token=b049cbc9-45a5-447b-a6c7-74b195842f49)

Take note of the RPC URL for the network you want to use. The RPC URL will begin with `https://...`. Keep in mind that these URLs contain your private API key, and should not be shared with anyone.

![This is what the endpoint URLs look like in your dashboard. The API key we're using in this guide is a dummy key and doesn't actually work.](https://4191904791-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LjIiMBUD6tDEdFQWjal%2Fuploads%2FECGR0MAjmTGoEgGb6lE5%2FSkjermbilde%202022-01-05%20kl.%2022.12.52.png?alt=media\&token=afe7961a-5ab8-42db-9551-aa3579f409df)

## Step 2: Set up Metamask

In Metamask, you can choose to either add a new network or edit the RPC of an existing network you've previously added.

### Option A: Adding a new network

In your Metamask, click the network name you're currently connected to, and click the **"Add network"** button at the bottom of the list.

Here you'll have to fill out 5 fields:

![](https://4191904791-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LjIiMBUD6tDEdFQWjal%2Fuploads%2FhfWhYszQZe7lipdVp6sc%2FSkjermbilde%202022-01-05%20kl.%2022.15.27.png?alt=media\&token=dbc90d86-85f9-4e41-b8ab-cf2c98168e41)

**Network name:** This is a name for you to identify which network this configuration is for. For instance, you can name Polygon **"Polygon Fiews"**.\
**New RPC URL:** This is the RPC URL for the network. You'll find the Fiews RPC URL as described in **Step 1** of this guide.\
**Chain ID:** This is the chain ID for this network. Check out the table below if you're not sure.\
**Currency Symbol:** This is the ticker of the currency used on this chain, e.g. "ETH" or "MATIC". Check out the table below if you're not sure.\
**Block Explorer URL:** Give it the link of the block explorer of this chain, so you can quickly view your transactions in this explorer. Check out the table below if you're not sure.

<table><thead><tr><th>Network name</th><th data-type="number">Chain ID</th><th>Currency Symbol</th><th>Block Explorer URL</th></tr></thead><tbody><tr><td><strong>Ethereum</strong> Mainnet (Fiews)</td><td>1</td><td>ETH</td><td><a href="https://etherscan.io/">https://etherscan.io/</a></td></tr><tr><td><strong>Polygon</strong> Mainnet (Fiews)</td><td>137</td><td>MATIC</td><td><a href="https://polygonscan.com/">https://polygonscan.com/</a></td></tr><tr><td><strong>BSC</strong> Mainnet (Fiews)</td><td>56</td><td>BNB</td><td><a href="https://bscscan.com/">https://bscscan.com/</a></td></tr></tbody></table>

### Option B: Modifying an existing network

{% hint style="info" %}
Metamask does not allow you to change the RPC URL for Ethereum mainnet. If you want to use Fiews for Ethereum you'll have to add a new network to Metamask.
{% endhint %}

In Metamask, click the account visualization in the top right corner. Then click **Settings**. Scroll down and click **Networks**.

From this list, find the network you want to change and click it.

You will be given the same input fields as in option A, except pre-filled with the values you already had. The only thing you want to change is the **New RPC URL** field, which will be the Fiews RPC URL as described in Step 1.

![This is what it looks like when we add the Polygon network with the RPC URL from Step 1](https://4191904791-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LjIiMBUD6tDEdFQWjal%2Fuploads%2F3HNABkv0YFMj5oQmLz8y%2FSkjermbilde%202022-01-05%20kl.%2022.16.53.png?alt=media\&token=82ceef35-fe53-418f-aed2-2c2cafa36fa3)

## Step 3: Use the updated network! 🎉

The network should now be ready, and you can select it in the network dropdown in Metamask. When using the network you created/updated, you are using a Fiews RPC endpoint!


# Access limitations

## Method whitelist

Our PAYG access is based on an RPC method whitelist:

<table data-header-hidden><thead><tr><th width="305.3594470046083">Method</th><th width="257">Restrictions or Limitations</th></tr></thead><tbody><tr><td><strong>Method</strong></td><td><strong>Restrictions or Limitations</strong></td></tr><tr><td><code>eth_getTransactionCount</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_subscribe</code></td><td><ul><li>Number of subscriptions may be limited</li></ul></td></tr><tr><td><code>eth_unsubscribe</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getBalance</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getBlockByNumber</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_call</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getLogs</code></td><td><ul><li>Maximum 10 calls per 30 minutes</li><li>Must use a filter</li><li>Filter must contain at least one topic</li><li>Will only search the last 100 blocks at most.</li></ul></td></tr><tr><td><code>eth_sendRawTransaction</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getTransactionReceipt</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_blockNumber</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_chainId</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getCode</code></td><td><em>N/A</em></td></tr><tr><td><code>net_version</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getUncleByBlockHashAndIndex</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_coinbase</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_gasPrice</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_estimateGas</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_feeHistory</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_protocolVersion</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getTransactionByHash</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getTransactionByBlockHashAndIndex</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getTransactionByBlockNumberAndIndex</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getUncleByBlockNumberAndIndex</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getBlockByHash</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getStorageAt</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_syncing</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_mining</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_protocolVersion</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getBlockTransactionCountByNumber</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getUncleCountByBlockNumber</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getBlockTransactionCountByHash</code></td><td><em>N/A</em></td></tr><tr><td><code>eth_getUncleCountByBlockHash</code></td><td><em>N/A</em></td></tr><tr><td><code>web3_clientVersion</code></td><td><em>N/A</em></td></tr></tbody></table>

## Rate limits

In addition to the method whitelist, the following rate limiting is in place:

* User starts out with 10,000 credits
* Credits are reset 300 seconds after the first request
* Single RPC requests costs 2 credits
* Batch RPC requests costs 1 credit per message in batch

These limits are visible in the `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset` headers.

For WebSockets, we also limit a maximum of 100 concurrent connections per API key, and 50 concurrent connections per IP address per API key.

If you surpass these limits your requests will be throttled.

The rate limits of our service is subject to change at any time without notice. For increased limits, please get in touch with us and we'd be happy to figure out a solution that works for everyone.


# Getting Started with Ethereum as a Service

We'll explain how to connect your Chainlink node to our EaaS

Running a Chainlink node with our Ethereum-as-a-Service (EaaS) is probably the easiest way to run a chainlink node on your own. It combines the security of having full control over your funds while giving you reliable access to the Ethereum blockchain. Essentially, you can run your Chainlink node on the Amazon AWS free tier or use free credits from Google Cloud Platform – your only expense would be our service!

### 1. Create an API key

Getting started is really easy. Head over to [dashboard.fiews.io](https://dashboard.fiews.io/register) 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`. This is all you need to do on the website.

### 2. Change your Chainlink node's configuration

{% content-ref url="/pages/-LjIkREx4Ns7bfVGWq6P" %}
[Run a Chainlink node from scratch without Ethereum node](/chainlink/run-a-chainlink-node-from-scratch)
{% endcontent-ref %}

For the next step, head over to your server/machine that's running your Chainlink node. In the `.env` file, you need to change some values. We will explain what each value is. Feel free to change between tabs to select the network you want to use. Do note that all values change based on which network you are connecting to.

{% tabs %}
{% tab title="Mainnet" %}

```
ETH_URL=wss://mainnet.ethereum.api.fiews.io/v2/ws/yourapikey
ETH_CHAIN_ID=1
```

{% endtab %}
{% endtabs %}

* `ETH_URL` tells your Chainlink node how to communicate with your Ethereum node. Since you are using our EaaS, we'll set this to our relevant URL. Remember to change `yourapikey` to the API key you generated earlier.
* `ETH_CHAIN_ID` lets your Chainlink node which chain you are connecting to.
* `LINK_CONTRACT_ADDRESS` defines the LINK token address for the chain you are using. Please refer to the [official documentation](https://docs.chain.link/docs/addresses-and-job-ids) for details.

### 3. Run your node!

If you have completed the above steps, all you have to do is run your node! Check your logs and make sure there are no errors. You should soon new headers coming in. If everything seems to be working, you are done! Though, there are usually something that didn't go as planned when setting it up, and an error could show up. But don't worry, they are usually easy to fix! Head over to troubleshooting to see the most common mistakes.


# 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

{% hint style="info" %}
Official documentation from the [Chainlink docs](https://docs.chain.link/) will always be the preferred way to setup a node. This guide is only meant to give minimum and easy to follow instructions.
{% endhint %}

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:

{% tabs %}
{% tab title="Amazon Linux 2" %}

```bash
sudo amazon-linux-extras install docker
sudo systemctl start docker
sudo gpasswd -a $USER docker
exit
# log in again
```

{% endtab %}

{% tab title="CentOS" %}

```bash
curl -sSL https://get.docker.com/ | sh
sudo systemctl start docker
sudo usermod -aG docker $USER
exit
# log in again
```

{% endtab %}

{% tab title="Debian" %}

```bash
curl -sSL https://get.docker.com/ | sh
sudo usermod -aG docker $USER
exit
# log in again
```

{% endtab %}

{% tab title="Fedora" %}

```bash
curl -sSL https://get.docker.com/ | sh
sudo systemctl start docker
sudo usermod -aG docker $USER
exit
# log in again
```

{% endtab %}

{% tab title="Ubuntu" %}

```bash
curl -sSL https://get.docker.com/ | sh
sudo usermod -aG docker $USER
exit
# log in again
```

{% endtab %}
{% endtabs %}

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](https://dashboard.fiews.io/) 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.

{% hint style="info" %}
If you want to run your node on mainnet you can not use a free trial subscription. Please use one of our [paid plans](https://fiews.io/pricing).
{% endhint %}

## 3. Set up the Chainlink node

First we create a directory to hold your CL node:

{% tabs %}
{% tab title="Mainnet" %}

```bash
mkdir -p ~/.chainlink-mainnet
```

{% endtab %}
{% endtabs %}

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.

{% tabs %}
{% tab title="Mainnet" %}

```bash
echo "ETH_URL=wss://mainnet.ethereum.api.fiews.io/v2/ws/yourapikey
ROOT=/chainlink
LOG_LEVEL=debug
ETH_CHAIN_ID=1
CHAINLINK_TLS_PORT=0
SECURE_COOKIES=false
ALLOW_ORIGINS=*" > ~/.chainlink-mainnet/.env
```

{% endtab %}
{% endtabs %}

Now we are ready to start the Chainlink node!

{% tabs %}
{% tab title="Mainnet" %}

```bash
cd ~/.chainlink-mainnet && docker run -p 6688:6688 -v ~/.chainlink:/chainlink -it --env-file=.env smartcontract/chainlink local n
```

{% endtab %}
{% endtabs %}

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](https://docs.chain.link/docs/miscellaneous#section-use-password-file-on-startup).

{% hint style="info" %}
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.
{% endhint %}

You can now connect to your Chainlink node's UI interface by navigating to [http://localhost:6688](http://localhost:6688/). If using a VPS, you can create a [SSH tunnel](https://www.howtogeek.com/168145/how-to-use-ssh-tunneling/) 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](https://docs.chain.link/docs/best-security-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](https://docs.chain.link/docs/node-operator-overview)


# Troubleshooting

## Docker related issues

### Trying to link Ethereum node

If you are trying to run the chainlink container with commands copied directly from the official guide, you might have included `--link eth`. This is not necessary when using EaaS, and will cause errors if you do not already have a container with that name.

### Not reloading `.env` file

If you have updated the `.env` file with the EaaS variables, simply running `docker start [container_name]` is not going to load the new configuration. Start off by deleting the container with `docker rm [container_name]`, then run the initial docker start command.Have you had a chance to answer the previous question?

## Other issues

We try to update this list as we are helping people setting up nodes. If your issue was not solved by anything we've mentioned on this page, feel free to send us an email to <support@fiews.io> or ask on Slack/Discord.


# Chainlink node guides

{% content-ref url="/pages/wF8trZeqL4BqoXKGszJu" %}
[Runlog gas lanes](/chainlink/chainlink-node-guides/runlog-gas-lanes)
{% endcontent-ref %}


# Runlog gas lanes

## Background

### What are gas lanes?

Gas lanes allow us to create runlog jobs with different maximum gas prices. This allows us to create cheap runlog jobs that will not be fulfilled during gas spikes and more expensive runlog jobs that are guaranteed to be fulfilled during the highest gas spikes. This is especially useful for runlog users who do not need requests to be fulfilled at high gas prices, making it cheaper overall.

### How do we achieve this?

If we were to create runlog jobs with different max gas prices using the same Ethereum account, we would likely end up in a situation where a low gas price transaction is holding up a queue of high gas price transactions. Luckily, the Chainlink node supports using multiple Ethereum accounts. This allows us to purpose each account for its own gas lane.

As an example, we could have this setup of accounts on the node:

* Account A: max gas price = 50 Gwei
* Account B: max gas price = 500 Gwei
* Account C: max gas price = 5,000 Gwei

## Setting it up

{% hint style="danger" %}
In some versions of the Chainlink node, the `ETH_MAX_GAS_PRICE_GWEI` env var will override the gas lane settings. Make sure you're not using this env var with gas lanes prior to v1.5.0.
{% endhint %}

### 1. Configuring the accounts

{% hint style="info" %}
Remember to take note of which gas lane you configure each account for!
{% endhint %}

#### Updating existing accounts

The Chainlink node will automatically create a new account on the initial setup. To set the gas lane of this account or any other additional accounts you've added to the node, you can use the command below:

```bash
chainlink keys eth update --maxGasPriceGWei <gas price> <address>
# Example to use this account as the 300 Gwei gas lane:
chainlink keys eth update --maxGasPriceGWei 300 0x481df95742cc38b387871e789913659a2469daa6
```

#### Add new accounts

To add new accounts to the node (and set their gas lane), you can use the following command:

```bash
chainlink keys eth create --maxGasPriceGWei <gas price>
# Example to create a 300 Gwei gas lane:
chainlink keys eth create --maxGasPriceGWei 300
```

### 2. Setting up the jobs

Next, we need to configure jobs to use the correct gas lane. We do this by defining the "from" address in the ethTx task of the jobs, e.g.:

```toml
submit_tx    [type="ethtx"
               from="<The account address for the desired gas lane>"
               to="0x049bd8c3adc3fe7d3fc2a44541d955a537c2a484"
               data="$(encode_tx)"]
```

Once we create this job, it will use the account we defined in the `from` param - which means that this job will not use a gas price higher than what we defined for this account.

{% hint style="warning" %}
If you have existing jobs on your node, you will probably want to modify them to specify which gas lane to use - otherwise it will choose one at random!
{% endhint %}


