Installation Troubleshooting¶
This page provides guidance on how to troubleshoot common issues that may arise when installing ethereum/execution-spec-tests.
Problem: Failed building wheel for coincurve
¶
Problem: Failed building wheel for coincurve
Installing EEST and its dependencies via uv sync --all-extras
fails with:
Stored in directory: /tmp/...
Building wheel for coincurve (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for coincurve (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [27 lines of output]
...
571 | #include <secp256k1_extrakeys.h>
| ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for coincurve
Solution: Install the libsecp256k1
library
On Ubuntu, you can install this library with:
sudo apt update
sudo apt-get install libsecp256k1-dev
Problem: solc
Installation issues¶
Problem: Failed to install solc ... CERTIFICATE_VERIFY_FAILED
When running either uv run solc-select use 0.8.24 --always-install
or fill
you encounter the following error:
Exit: Failed to install solc version 0.8.24: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:992)>
Solution: Update your system’s CA certificates
On Ubuntu, run the following commands:
sudo apt-get update
sudo apt-get install ca-certificates
Solution: Update your system’s CA certificates
On macOS, Python provides a built-in script to install the required certificates:
/Applications/Python\ 3.11/Install\ Certificates.command
Problem: ValueError: unsupported hash type ripemd160
¶
Problem: Running fill fails with tests that use the RIPEMD160 precompile (0x03)
When running fill
, you encounter the following error:
ValueError: unsupported hash type ripemd160
# or
ValueError: [digital envelope routines] unsupported
This is due to the removal of certain cryptographic primitives in OpenSSL 3. These were re-introduced in OpenSSL v3.0.7.
Solution: Modify OpenSSL configuration
On platforms where OpenSSL v3.0.7 is unavailable (e.g., Ubuntu 22.04), modify your OpenSSL configuration to enable RIPEMD160. Make the following changes in the OpenSSL config file:
[openssl_init]
providers = provider_sect
# List of providers to load
[provider_sect]
default = default_sect
legacy = legacy_sect
[default_sect]
activate = 1
[legacy_sect]
activate = 1
This will enable the legacy cryptographic algorithms, including RIPEMD160. See ethereum/execution-specs#506 for more information.
Other Issues Not Listed?¶
If you're facing an issue that's not listed here, you can easily report it on GitHub for resolution.
Click here to report a documentation issue related to installation
Please include the following details in your report:
- The command that triggered the issue.
- Any relevant error messages or screenshots.