cpp-ethereum - Ethereum C++ client
It is the third most popular of the Ethereum clients, behind geth (the go
client) and Parity (the rust client). The code is exceptionally
portable and has been used successfully on a very broad range
of operating systems and hardware.
- Chat in cpp-ethereum channel on Gitter.
- Report bugs, issues or feature requests using GitHub issues.
The Ethereum Documentation site hosts the cpp-ethereum homepage, which
has a Quick Start section.
|Ubuntu and macOS|
Building from source
Get the source code
Git and GitHub is used to maintain the source code. Clone the repository by:
git clone --recursive https://github.com/ethereum/cpp-ethereum.git cd cpp-ethereum
--recursive option is important. It orders git to clone additional
submodules which are required to build the project.
If you missed it you can correct your mistake with command
git submodule update --init.
CMake is used to control the build configuration of the project. Quite recent
version of CMake is required
(at the time of writing 3.4.3 is the minimum).
We recommend installing CMake by downloading and unpacking the binary
distribution of the latest version available on the
CMake download page.
The CMake package available in your operating system can also be installed
and used if it meets the minimum version requirement.
The repository contains the
scripts/install_cmake.sh script that downloads
a fixed version of CMake and unpacks it to the given directory prefix.
scripts/install_cmake.sh --prefix /usr/local.
Install dependencies (Linux, macOS)
The following libraries are required to be installed in the system in their
They usually can be installed using system-specific package manager.
Examples for some systems:
|Operating system||Installation command|
We also support a "one-button" shell script
which attempts to aggregate dependencies installation instructions for Unix-like
operating systems. It identifies your distro and installs the external packages.
Supporting the script is non-trivial task so please inform us
if it does not work for your use-case.
Install dependencies (Windows)
We provide prebuilt dependencies required to build the project. Download them
with the scripts/install_deps.bat script.
Configure the project build with the following command. It will create the
build directory with the configuration.
mkdir build; cd build # Create a build directory. cmake .. # Configure the project. cmake --build . # Build all default targets.
On Windows Visual Studio 2015 is required. You should generate Visual Studio
solution file (.sln) for 64-bit architecture by adding
-G "Visual Studio 14 2015 Win64" argument to the CMake configure command.
After configuration is completed the
cpp-ethereum.sln can be found in the
cmake .. -G "Visual Studio 14 2015 Win64"
The current codebase is the work of many, many hands, with nearly 100
individual contributors over the course of its development.
Our day-to-day development chat happens on the
cpp-ethereum Gitter channel.
All contributions are welcome! We try to keep a list of tasks that are suitable
for newcomers under the tag
If you have any questions, please just ask.
Please read CodingStandards.txt thoroughly before making
alterations to the code base.
All development goes in develop branch.
This project is not suitable for Ethereum mining. The support for GPU mining
has been dropped some time ago including the ethminer tool. Use the ethminer tool from https://github.com/ethereum-mining/ethminer.
To run the tests, make sure you clone https://github.com/ethereum/tests and point the environment variable
ETHEREUM_TEST_PATH to that path.