Join the Status community chats:
Nimbus: an Ethereum 2.0 Sharding Client
- 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
Users of the Nix package manager can install all prerequisites simply by running:
nix-shell nimbus.nix
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 VM tests:
mkdir -p build
nim c -o:build/test_vm_json -r --experimental:forLoopMacros tests/test_vm_json.nim
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
Licensed under both of the following:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license: LICENSE-MIT or http://opensource.org/licenses/MIT