Skip to content

ethpandaops/hive-tests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 

Repository files navigation

Hive Tests

This repository contains automated testing workflows for Ethereum execution clients using Hive, a system for running integration tests against Ethereum clients.

Overview

Hive Tests runs comprehensive compatibility and conformance tests across multiple Ethereum execution clients to ensure they properly implement the Ethereum protocol. The tests are executed automatically on a daily schedule and can also be triggered manually.

Supported Clients

The following Ethereum execution clients are tested:

  • Besu - Enterprise-grade Java Ethereum client
  • Erigon - High-performance Ethereum client
  • EthereumJS - JavaScript implementation of Ethereum
  • Ethrex - Rust-based Ethereum client
  • go-ethereum (Geth) - The Go implementation of Ethereum
  • Nethermind - .NET Ethereum client
  • Nimbus-EL - Nim-based Ethereum execution layer client
  • Reth - Rust-based Ethereum execution client

Test Simulators

The repository runs various test simulators including:

Automation

Scheduled Runs

Tests run via GitHub Actions. See the generic.yaml workflow for more details. This is the main workflow that is triggered by the scheduled workflows.

Scheduled Testing Workflows

The repository includes additional specialized workflows that target specific consensus testing scenarios which take a long time to run. These workflows run on a different schedules and have different timeouts:

These workflows are lightweight dispatchers that trigger the main generic.yaml workflow with specific parameters for targeted testing scenarios. They use different concurrency groups to avoid conflicts and can be manually triggered through the GitHub Actions interface.

Manual Execution

You can manually trigger test runs through the GitHub Actions interface with customizable parameters:

  • Client Selection: Choose which clients to test
  • Simulator Selection: Choose which test simulators to run
  • Version Control: Specify custom versions/branches for Hive and each client

Test Results

There's a index workflow that runs periodically and generates a index of the test results and uploads it to the S3 bucket. See the generate-index.yaml workflow for more details.

Test results are automatically uploaded to:

  • S3 Storage: Results are stored in the hive-results bucket
  • Public Dashboard: Available at https://hive.ethpandaops.io/
  • GitHub Artifacts: Downloadable from the workflow runs

Configuration

The workflow supports testing different versions of clients by specifying repository and tag combinations (e.g., ethereum/go-ethereum@master). Default versions are configured for the latest stable branches of each client.

Infrastructure

Tests run on a combination of:

  • GitHub-hosted runners for lighter test suites
  • Self-hosted runners for resource-intensive tests (consensus, engine, eels simulators)

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

Contributing

This repository is part of the Ethereum testing infrastructure maintained by EthPandaOps. For issues or contributions related to the Hive testing framework itself, please visit the main Hive repository.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors