Nimbus: an Ethereum Execution Client for Resource-Restricted Devices https://status-im.github.io/nimbus-eth1/
Go to file
Dustin Brody 468a69d26b add Debian/Ubuntu RocksDB links to README.md 2018-09-20 13:57:15 -07: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 Some tweaks and comments (#155) 2018-09-20 20:06:22 +00:00
tests set to allow-fail another dozen or so tests which have 32-bit issues and integrate with CI (#154) 2018-09-19 17:57:45 +00:00
.appveyor.yml appveyor: fix version check 2018-09-06 11:57:26 -06:00
.gitignore vscode: add default build task 2018-08-22 21:43:22 -06:00
.travis.yml ci: update 2018-09-04 21:01:33 -06:00
GeneralStateTests.md integrate GeneralStateTest runner into CI with 775 running tests (#153) 2018-09-19 16:46:14 +00: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
README.md add Debian/Ubuntu RocksDB links to README.md 2018-09-20 13:57:15 -07:00
default.nix Updated Nix build environment for working with Nimbus 2018-06-24 17:46:43 +03:00
nim.cfg Add the new experimental forloopmacros flag for Stint fix #109 (#110) 2018-08-20 16:13:32 +02:00
nim.nix Updated Nix build environment for working with Nimbus 2018-06-24 17:46:43 +03:00
nimbus.nimble nimble: cleanup nimcache and experimental 2018-09-20 12:58:33 -06:00
nimbus.nix Implement storage backends using RocksDB and SQLite 2018-06-26 13:46:54 +03:00

README.md

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

Build Status (Travis) Windows build status (Appveyor) 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

Building & Testing

Prerequisites

  • A recent version of Nim
    • We use the version in the Status fork
    • Normally, this is the latest released version of Nim but it may also include custom patches
    • Follow the Nim installation instructions or use choosenim to manage your Nim versions
  • A recent version of Facebook's RocksDB
    • Compile from source or use the package manager of your OS; for example, Debian and Ubuntu have working RocksDB packages

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

We use Nimble to manage dependencies and run tests.

To build and run test suite:

nimble test

Based on our config, Nimble will write binaries to build/ - you can do this manually also, as in the following examples:

Run example:

mkdir -p build
nim c -o:build/decompile_smart_contract -r examples/decompile_smart_contract.nim

Run Ethereum JSON-based general state tests:

mkdir -p build
nim c -o:build/test_generalstate_json -r --experimental:forLoopMacros tests/test_generalstate_json.nim

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 under both of the following: