Getting Started with Nimbus

Edit on Github

This document will explain how to install, test, and run Nimbus on your local machine. To learn about what Nimbus is, see the intro post.

Installing prerequisites

If you are on Windows, instead of using the commands below you can also use our pre-configured Vagrant box if you prefer to run things in a Linux environment.

We use Makefiles to quickly and easily build our binaries. Before you begin, please make sure you have RocksDB installed. On Windows, you can skip this step and instead rely on the “WINDOWS ONLY” part of the process below:

git clone https://github.com/status-im/nimbus
cd nimbus
make update # Downloads and builds submodules, dependencies, and even Nim itself

# >>> WINDOWS ONLY <<<
make fetch-dlls # WINDOWS ONLY
# >>> WINDOWS ONLY <<<

./env.sh bash # Optional, but useful. Sets the current shell's environment to use the version of Nim language the `make update deps` command just built

Building and Running Nimbus

To run Nimbus in Ethereum 1.0 mode:

make nimbus
./build/nimbus

Nimbus will now run and attempt to synchronize with the Ethereum 1.0 blockchain. It can currently reach block 1.5 million.

Building and Running the Ethereum 2.0 local beacon chain simulation

The beacon chain simulation runs several beacon nodes on the local machine, attaches several local validators to each, and builds a beacon chain between them. This is a precursor to our testnet.

Enter the Ethereum 2.0 realm of Nimbus:

cd vendor/nim-beacon-chain

There, use this submodule’s Make commands. To run the simulation:

make eth2_network_simulation

If you’d like to clean the previous run’s data:

make clean_eth2_network_simulation_files eth2_network_simulation

If you’d like to see the nodes running on separated sub-terminals inside one big window, install Multitail, then:

USE_MULTITAIL="yes" make eth2_network_simulation

You’ll get something like this (click for full size):

To change the number of validators and nodes:

VALIDATORS=512 NODES=50 make eth2_network_simulation

Find out more about the simulation here.

Building and Running the Ethereum 2.0 local state transition simulation

The state transition simulation measures how fast it can process the tasks in the beacon chain’s state transition.

cd research
nim c -d:release -r state_sim --help

Use the output of the help command to pass desired values to the sim - change number of validators, nodes, etc. to get different results.

Nimbus Ethereum 2.0 Testnet

We have a publicly available testnet running between Nimbus nodes. Read all about it and learn how you can join it here.


Congrats! You’re now running Nimbus for both the Ethereum 1.0 platform, and the coming Ethereum 2.0.