Ștefan Talpalaru 115843487c
general-state testsuite changes and better fork selection
- skipped the tests in allowedFailInCurrentBuild()
- replaced doAssert() with check() in testFixtureIndexes() so we can see
  both hash values on failure
- checking filename extension for JSON tests to avoid editor swap files
- replaced the duplicated block values in the main net's ChainConfig
  with values from forkBlocks
- allowed overriding the current fork in computations, because the old
  strategy of only looking at the block number doesn't work with JSON tests
  where the block number is usually 1
- explicitly pass the fork to gasCosts() and use it for conditional cost
  calculation
- fixed a logic error in the CREATE opcode
- fixed VM selection based on current fork in updateOpcodeExec()
- single point of control for supported forks in tests (just one fork, at the
  moment)
- 44 new test failures (that were probably passing for the wrong reasons)
2018-12-07 18:18:29 +01:00
2018-08-22 21:43:22 -06:00
2018-07-17 19:18:59 +02:00
2018-09-06 11:57:26 -06:00
2018-09-04 21:01:33 -06:00
2018-09-26 12:34:24 +03:00
2018-12-07 00:45:52 +01:00
2018-09-26 12:34:24 +03:00
2018-12-04 15:46:33 +01:00
2018-11-22 14:00:24 +01:00

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. 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.

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.

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:

Description
Nimbus: an Ethereum Execution Client for Resource-Restricted Devices
https://status-im.github.io/nimbus-eth1/
Readme
Languages
Nim 97.8%
Shell 0.7%
Makefile 0.5%
CodeQL 0.4%
Nix 0.2%
Other 0.3%