Hive is a system for running integration tests against Ethereum clients.
Ethereum Foundation maintains a public Hive instance to check for consensus, p2p and blockchain compatibility. You can find the latest test results here.
To read more about hive, please check the documentation.
This section will go through Vulcanize specific details.
- I highly recommend using the
.devcontainer
. It this moment in time this is the only supported option. - Update line 9 in
.devcontainer/devcontainer.json
, and update your local path to thevulcanize-geth
repo. cd clients/vulcanize-geth
./build_foundry.sh
docker compose up --build
Once the DB container is running locally, you can run tests by:
./hive --sim devp2p --client vulcanize-geth
You can also use the provided console by running:
./hiveview --serve --logdir ./workspace/logs
To reset the DB do the following in the shell which you utilized to run docker compose up --build
.
Ctrl + c
docker-compose down
docker volume rm vulcanize-geth_vdb_db_eth_server
If you find a bug in your client implementation due to this project, please be so kind as
to add it here to the trophy list. It could help prove that hive
is indeed a useful tool
for validating Ethereum client implementations.
- go-ethereum:
- Nethermind:
This project takes a different approach to code contributions than your usual FOSS project with well ingrained maintainers and relatively few external contributors. It is an experiment. Whether it will work out or not is for the future to decide.
We follow the Collective Code Construction Contract (C4), code contribution model, as expanded and explained in The ZeroMQ Process. The core idea being that any patch that successfully solves an issue (bug/feature) and doesn't break any existing code/contracts must be optimistically merged by maintainers. Followup patches may be used to for additional polishes โ and patches may even be outright reverted if they turn out to have a negative impact โ but no change must be rejected based on personal values.
The hive project is licensed under the GNU General Public License v3.0. You can find it in the COPYING file.