nimbus-eth1/hive_integration
jangko d2c0d2f534
add '--nat:0.0.0.0' flag to hive_integration/nimbus/nimbus.sh
trying Jacek suggestion in #591, I added nat setting to
nimbus-eth1 hive shell script. visible difference after adding
this flag is the nat library not complaining about
"the gateway does not support nat-pmp" anymore.

but the slow startup time described in #591 is yet to be measured
again, although I already see improvement when executing
ethereum/consensus category in hive.
2021-05-07 19:48:10 +07:00
..
nimbus add '--nat:0.0.0.0' flag to hive_integration/nimbus/nimbus.sh 2021-05-07 19:48:10 +07:00
README.md update hive_integration/README.md section 'Current state of the tests' 2021-05-07 19:45:59 +07:00
extract_consensus_data.nim add debugging tool related to hive: extract_consensus_data 2021-04-08 08:52:30 +07:00

README.md

Integration between nimbus-eth1 and Ethereum Hive test environment

This is a short manual to help you quickly setup and run Hive. For more detailed information please read the hive documentation.

Prerequisities

  • A Linux machine. Trust me, it does not work on Windows or MacOS.
  • Or Linux inside a VM (e.g. VirtualBox) on Windows or MacOS.
  • Docker installed and working in your Linux.
  • Go compiler installed in your Linux.
  • Go must be version 1.16 or later.

Practicalities

Practically, if using an Ubuntu Linux and you want to use the version of Go shipped with Ubuntu, you will need Ubuntu 21.04 or later. It's enough to run apt-get install golang.

If using Ubuntu 20.04 LTS (likely because it's the long-term stable version), the shipped Go isn't recent enough, and there will be build errors. You can either install a non-Ubuntu packaged version of Go (maybe from golang.org, or use a more recent Ubuntu.

If you want to run Hive in a Linux container, you will need Docker to work in the container because Hive calls Docker (a lot!). This is sometimes called "Docker in Docker". Inside LXD containers, Docker doesn't work by default, but usually this is remedied by setting the container flag lxc config set $CONTAINER_NAME security.nesting true, which takes effect immediately.

Building hive

First you will need a working Go installation, Go 1.16 or later. Then:

git clone https://github.com/ethereum/hive
cd ./hive
go build .

How to run hive

First copy the nimbus-eth1/hive_intgration/nimbus folder (from this repo) into the hive/clients folder (in the hive repo).

Then run this command:

./hive --sim <simulation> --client <client(s) you want to test against>

Examples:

./hive --sim ethereum/consensus --client nimbus

or

./hive --sim devp2p/discv4 --client go-ethereum,openethereum,nimbus

Available test suites / simulators

  • devp2p/eth
  • devp2p/discv4
  • ethereum/sync
  • ethereum/consensus
  • ethereum/rpc
  • ethereum/graphql

Current state of the tests

These Hive suites/simulators can be run:

  • ethereum/consensus
  • ethereum/graphql

These Hive suites/simulators don't work with nimbus-eth1 currently:

  • devp2p/discv4
  • devp2p/eth
  • ethereum/rpc
  • ethereum/sync

The number of passes and fails output at the time of writing (2021-04-26) is:

ethereum/consensus:  16556 pass, 11643 fail, 28199 total
ethereum/graphql:       34 pass,    12 fail,    46 total
devp2p/discv4:           0 pass,    14 fail,    14 total
devp2p/eth:              0 pass,     1 fail,     1 total
ethereum/rpc:            0 pass,     1 fail,     1 total
ethereum/sync:           0 pass,     1 fail,     1 total