Nimbus: an Ethereum Execution Client for Resource-Restricted Devices
https://status-im.github.io/nimbus-eth1/
487730bcba | ||
---|---|---|
.vscode | ||
doc | ||
examples | ||
nimbus | ||
tests | ||
.appveyor.yml | ||
.gitignore | ||
.travis.yml | ||
GeneralStateTests.md | ||
LICENSE-APACHEv2 | ||
LICENSE-MIT | ||
README.md | ||
default.nix | ||
nim.cfg | ||
nim.nix | ||
nimbus.nimble | ||
nimbus.nix |
README.md
Nimbus: an Ethereum 2.0 Sharding Client for Resource-Restricted Devices
Join the Status community chats:
Rationale
Nimbus: an Ethereum 2.0 Sharding Client
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
- 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:
- 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