Nimbus: an Ethereum Execution Client for Resource-Restricted Devices https://status-im.github.io/nimbus-eth1/
Go to file
Jacek Sieka 74add30c5f
Merge pull request #208 from status-im/cleanup
ForLoopMacros cleanup
2019-01-07 11:40:43 -06:00
.vscode vscode: add default build task 2018-08-22 21:43:22 -06:00
doc Update Nimbus - An Ethereum 2.0 Sharding Client_xt.md 2018-05-28 10:44:12 -07:00
examples update example 2018-07-17 19:18:59 +02:00
nimbus ForLoopMacros cleanup 2019-01-07 18:13:08 +01:00
tests rebase and various fixes 2019-01-06 20:19:48 +01:00
.appveyor.yml appveyor: fix version check 2018-09-06 11:57:26 -06:00
.gitignore Remove some obsolete lines from .gitignore 2018-11-26 18:52:00 +02:00
.travis.yml ci: update 2018-09-04 21:01:33 -06:00
GeneralStateTests.md update test logs 2019-01-06 14:27:06 +01:00
LICENSE-APACHEv2 Update README badges and add dual-license header 2018-04-06 16:52:10 +02:00
LICENSE-MIT Update README badges and add dual-license header 2018-04-06 16:52:10 +02:00
PersistBlockTests.md update test logs 2019-01-06 14:27:06 +01:00
PrecompileTests.md update test logs 2019-01-06 14:27:06 +01:00
README.md update Nimbus header and refine db backend picking 2019-01-07 01:21:29 +02:00
TracerTests.md update test logs 2019-01-06 14:27:06 +01:00
default.nix Updated Nix build environment for working with Nimbus 2018-06-24 17:46:43 +03:00
nim.cfg ForLoopMacros cleanup 2019-01-07 18:13:08 +01:00
nim.nix Restore the Nix build 2018-09-26 12:34:24 +03:00
nimbus.nimble initial make_receipt 2018-12-16 15:38:51 +02:00
nimbus.nix Restore the Nix build 2018-09-26 12:34:24 +03:00

README.md

Nimbus: an Ethereum 2.0 Sharding Client for Resource-Restricted Devices

Windows build status (Appveyor) Build Status (Travis) License: Apache License: MIT Stability: experimental

Join the Status community chats: Gitter: #status-im/nimbus Riot: #nimbus Riot: #dev-status

Rationale

Nimbus: an Ethereum 2.0 Sharding Client. The code in this repository is currently focusing on Ethereum 1.0 feature parity, while all 2.0 research and development is happening in parallel in nim-beacon-chain. The two repositories are expected to merge in Q1 2019.

Development Updates

To keep up to date with changes and development progress, follow the Nimbus blog.

Building & Testing

Prerequisites

  • A recent version of Nim
    • We use the version in the Status fork
    • Follow the Nim installation instructions or use choosenim to manage your Nim versions
  • A recent version of Facebook's RocksDB

Obtaining the prerequisites through the Nix package manager

Users of the Nix package manager can install all prerequisites simply by running:

nix-shell nimbus.nix

Build & Install

We use Nimble to manage dependencies and run tests.

To build and install Nimbus in your home folder, just execute:

nimble install

After a succesful installation, running nimbus --help will provide you with a list of the available command-line options. To start syncing with mainnet, just execute nimbus without any parameters.

To execute all tests:

nimble test

Our Wiki provides additional helpful information for debugging individual test cases and for pairing Nimbus with a locally running copy of Geth.

Build and Run Nimbus

nimble nimbus
./build/nimbus

Report any errors you encounter, please, if not already documented!

Development tips

  • you can switch the DB backend with a Nim compiler define: -d:nimbus_db_backend=... where the (case-insensitive) value is one of "rocksdb" (the default), "sqlite", "lmdb".

Troubleshooting

Sometimes, the build will fail even though the latest CI is green - here are a few tips to handle this:

  • Wrong Nim version
    • We depend on many bleeding-edge features - Nim regressions often happen
    • Use the Status fork of Nim
  • Wrong versions of dependencies
    • nimble dependency tracking often breaks due to its global registry
    • wipe the nimble folder and try again
  • C compile or link fails
    • Nim compile cache is pretty buggy and sometimes will fail to recompile
    • wipe your nimcache folder

License

Licensed and distributed under either of

or

at your option. This file may not be copied, modified, or distributed except according to those terms.