The collection of C++ libraries and tools for Ethereum, formerly known as cpp-ethereum project. This includes the full Ethereum client aleth.
- 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.
Operating system | Status |
---|---|
Ubuntu and macOS | |
Windows |
Git and GitHub are used to maintain the source code. Clone the repository by:
git clone --recursive https://github.com/ethereum/cpp-ethereum.git
cd cpp-ethereum
The --recursive
option is important. It orders git to clone additional
submodules to build the project.
If you missed --recursive
option, you are able to correct your mistake with command
git submodule update --init
.
CMake is used to control the build configuration of the project. Latest version of CMake is required (at the time of writing 3.4.3 is the minimum). We strongly recommend you to install 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.
Alternative method
The repository contains the scripts/install_cmake.sh script that downloads a fixed version of CMake and unpacks it to the given directory prefix. Example usage:
scripts/install_cmake.sh --prefix /usr/local
.
The following libraries are required to be installed in the system in their development variant:
- leveldb
They usually can be installed using system-specific package manager. The examples for some systems are shown below:
Operating system | Installation command |
---|---|
Debian-based | sudo apt-get install libleveldb-dev |
RedHat-based | dnf install leveldb-devel |
macOS | brew install leveldb |
We also support a "one-button" shell script scripts/install_deps.sh 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.
We provide prebuilt dependencies to build the project. Download them with the scripts/install_deps.bat script.
scripts/install_deps.bat
Configure the project build with the following command to 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 aleth.sln
can be found in the
build
directory.
cmake .. -G "Visual Studio 14 2015 Win64"
The current codebase is the work of many, many hands, with over 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 help wanted. If you have any questions, please do not hestitate to ask us about more information.
Please read CONTRIBUTING and CODING_STYLE thoroughly before making alterations to the code base.
All development goes in develop branch.
This project is not suitable for Ethereum mining because 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.
All contributions are made under the GNU General Public License v3. See LICENSE.