Skip to content

Simulator Images

The ethereum/eels/* simulators in ethereum/hive can run from ready-to-run images under ghcr.io/ethereum/execution-specs/hive/. Each image contains the simulator and its test content. Hive pulls the image and builds a small wrapper; it does not clone execution-specs, install Python dependencies or extract a fixture tarball during the simulator build.

A simulator tag selects the tests. Consume images contain a release's generated fixtures; execute images contain the Python test sources from the release commit. Release tags are immutable; channel tags (latest, <name>-devnet-<n>) pair a branch's highest release with the branch head and so pick up framework fixes. Nightly images use the fill commit for both tests and framework.

Choose a tag

Pass a tag with --sim.buildarg tag=<tag>. These examples illustrate the publishing scheme; a tag is usable once its branch and release have been published.

To run Use What changes
The latest mainnet release latest (default) Tests advance with releases; framework follows the default branch.
One devnet glamsterdam-devnet-8 Tests advance within devnet 8; framework follows devnets/glamsterdam/8.
A specific release glamsterdam-devnet-v8.1.4 or v20.0.2 Nothing: release tags are immutable.
The most recent nightly fill nightly Tests and framework advance together with each published fill.
An exact image from an earlier run <tag>@sha256:<digest> Neither tests nor framework changes. Requires the retained image digest.

On a machine that has run Hive before, add --docker.pull to refresh a moving tag. Without it, Docker can reuse the locally cached image. See the full tag reference for release-name mappings, commit tags and the distinction between simulator and repository images.

Run or build an image

The simulator images combine a repository image (code and dependencies) with a fixture image or a release test-source image. These components are also published for local builds. Publishing Simulator Images covers the workflow and rollout.

Migrate an existing Hive command

The image Dockerfiles accept tag in place of fixtures and branch, which are deprecated: without a tag they still select a source build of the framework and fixtures during the deprecation window, slower than a published image and with a notice in every run. To keep building from a Git ref and selecting fixtures independently, choose Dockerfile.git through --config; see Build from source.