Local Development Network Setup

This guide walks through how to deploy a local blockchain instance for software development and testing purposes. Alternatively, developers can also develop and test on Anvil Testnet.

1. Prerequisites

i) Install Golang

https://go.dev/doc/install

Tips for Linux (Ubuntu)

#first command needs to be run as root, rest as your normal user
wget https://go.dev/dl/go1.18.3.linux-amd64.tar.gz 
sudo su 
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.3.linux-amd64.tar.gz

#exit root now
exit

#add to path. For more permanent you should add this line to bottom of your ~/.profile
export PATH=$PATH:/usr/local/go/bin

#check go version
go version

ii) Install Rust

https://rustup.rs/

If already installed, please update to 1.59 or newer

iii) Install System Specific Dependencies

2. Build Required Binaries

Findora blockchain can run on both MacOS or Linux. The commands below will build all required binaries to start a local Findora blockchain.

Please make sure to add all below 3 binaries to your $PATH. By default, they will be copied to ~/.cargo/bin/ which should already be in your $PATH.

  • stt: The tool to initialize Findora blockchain.

  • abcid: Findora core protocol.

  • tendermint: Tendermint consensus engine.

3. Install Python3 and toml-cli

Findora devnet tools are written in Python3 and use toml-cli to manipulate configuration files. Install Python3 if not already installed. Also, install toml-cli using the command below:

and then copy newly installed toml cli tool to /usr/local/bin to make it visible

4. Run Devnet

Inside your platform directory, execute make devnet in the terminal.

i) What's in devnet?

Name
Description

node0

The validator

node1

The fullnode

Faucet

The key pair that holds FRA

ii) How to control devnet?

The local blockchain can be stopped and restarted anytime during development and tests.

  • Stop Blockchain: ./tools/devnet/stopnodes.sh

  • Restart Blockchain: ./tools/devnet/startnodes.sh

  • Start Over: make devnet again.

5. Devnet URLs and Ports

URL
Purpose

connects to Web3 HTTP

connects to Web3 WebSocket

6. Troubleshoot

  • Problem 1

    • Error Message:

      • make build_release fails with go:linkname must refer to declared function or variable

  • Solution

    • Update your golang.org/x/sys

  • Problem 2

    • .findora file is missing

  • Solution

    • manually add .findora to your home directory (i.e. directory ~)

Last updated

Was this helpful?