How to Set up a Fantom Node to Start Using RPC – A Step-By-Step Guide

How to Set up a Fantom Node to Start Using RPC – A Step-By-Step Guide

GET ACCESS TO FANTOM

Fantom is a decentralized, permissionless and open-source smart contract platform supporting decentralized applications (dApps) that is intended to aid developers in the creation of decentralized applications (dApps) or other digital assets.

How to Set up a Fantom Node to Start Using RPC - A Step-By-Step Guide

Fantom is known for its reliability, security, and high-performance. The network offers 1-second transaction finality with an average transaction fee of about $0.01. The network launched in 2018, and has provided 100% uptime.

Key Features:

  • Fantom’s EVM-compatibility means that developers accustomed to Ethereum-based frameworks can use popular, common tools to seamlessly deploy smart contract solutions on the Fantom network.

  • Fantom achieves exceptionally high speed through the use of a hybrid Directed Acyclic Graph (DAG) data structure.

  • Fantom’s concensus algorithm Lachesis is secure, scalable, and provides true asynchronous Byzantine Fault Tolerance (aBFT). 

  • The Fantom ecosystem features a wide range of dApps including Decentralized Finance protocols (DeFi), Metaverse spaces, NFT marketplaces, games, and more.

Why use Fantom Node

Fantom nodes seamlessly connect dApps to the Fantom network to enable transactions across the ecosystem. 

Why use Fantom Node

What is RPC?

An RPC is a straightforward API, enabling independent developers to communicate with nodes and execute code remotely. A server is referred to as a node within the blockchain space. 

In short, blockchain RPC nodes are needed to communicate with the blockchain, and anyone can host one themselves. 

What is RPC?

RPC nodes allow users to read blockchain data and send transactions to different networks. This means that an RPC node is vital when it comes to enabling a decentralized application (dApp) to function properly.

Without the possibility to send an RPC call, no dApp can interact with the blockchain. 

Running Fantom Node to use RPC

We will be building a Fantom Node to use RPC, step-by-step, so let’s dive in.

  • Step 1: Setting up a Fantom RPC Go-Opera Node on Ubuntu 20.04.

First, we will need a few things:

Here is what you need to do:

wget https://golang.org/dl/go1.18.3.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.18.3.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
source ~/.bashrc
cd ~
go version

Then you can clone the GitHub and make the go-opera binary:

sudo apt install git
git clone https://github.com/Fantom-foundation/go-opera
cd go-opera
make opera
cd build
cp opera ~/
cd ~

Afterward, you can put the Opera binary in the main home folder so that you can keep track of which version you are on. To find your IP address for the initial go-opera synchronization, use this command:

ip a
  • Step 2: Setting up Cloudflare

Now, prepare Cloudflare and your Domain text. You can replace the 111’s with your IP address.

./opera /–genesis mainnet.g –nat extip:111.111.111.111 –nousb –http –http.vhosts=”*”
–http.corsdomain=”*” –ws –ws.origins=”*”
–http.api=”ftm,eth,debug,web3,net,txpool,sfc”

Next, set up Cloudflare with TLS/SSL, and make a subdomain with a record that points to your IP address:

Navigate to SSL/TLS; next, click on Origin Server, and Create Certificate. You can use the default or specify the full subdomain.

You can create a certificate for the domain and click on “Next”, then copy the info here.

  • Step 3: Setting up the http and web socket in the default file

You can then insert Origin Certificate into cert.pem.

sudo nano /etc/ssl/certs/cert.pem

Then you can insert a Private Key into key.pem

sudo nano /etc/ssl/private/key.pem

Then you can install nginx

sudo apt install nginx

Use the default tile to editor:

sudo nano /etc/nginx//sites-available/default

Now, if you want to set up the https and web socket in the default file, you can use the following:

server {
    listen 80;
    listen [::]:80;
    server_name rpc.denarius.pro;
    return 302 https://$server_name$request_uri;
}
server {
        listen 443 ssl;
        listen [::]:443 ssl http2;
        ssl on;
        ssl_certificate /etc/ssl/certs/cert.pem;
        ssl_certificate_key /etc/ssl/private/key.pem;  
location ^~ /ws {
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection “upgrade”;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_read_timeout 86400s;
      proxy_send_timeout 86400s;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;
      proxy_pass   http://127.0.0.1:18546/;  
}  
location ^~ / {
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection “upgrade”;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;
      proxy_pass    http://127.0.0.1:18545/; 
 }
}

Now you can restart nginx:

sudo nginx -s reload

Afterward, you can load up MetaMask and point the network to your new domain, and that is all there is to it.

Note that you can also set up a read-only node on Fantom to use as an RPC without Cloudflare but on your own dedicated server.

Final Words

Hopefully, now you know a bit more when it comes to setting up a Fantom node as a means of starting to use RPC.

This procedure is straightforward, and by following the step-by-step guide, you will be able to complete the process less than an hour.

That said, if you do not want to manually do this, you can always utilize the blockchain-as-a-service provider NOWNodes as a means of connecting to a pre-configured Fantom (FTM) node or block explorer, where all you need to do is connect through an API key.

GET ACCESS TO FANTOM