Page tree
Skip to end of metadata
Go to start of metadata


  • Java 11+ 
  • For Mac installations: MacOS High Sierra 10.13 or later

NoteBesu is currently supported only on 64-bit versions of Windows, and requires a 64-bit version of JDK/JRE. We recommend that you also remove any 32-bit JDK/JRE installations.


git clone --recursive
cd besu
./gradlew build
./gradlew integrationTest

Checkout source code

git clone --recursive


git clone --recursive

See what tasks are available 

To see all of the gradle tasks that are available:

cd besu
./gradlew tasks  

Build from source

Build the distribution binaries: 

cd besu

./gradlew build

Note: On Windows, to run gradlew, you must have the JAVA_HOME system variable set to the Java installation directory. For example: JAVA_HOME = C:\Program Files\Java\jdk1.8.0_181

Run tests 

All the unit tests are run as part of the build, but can be explicitly triggered with:

./gradlew test

The integration tests can be triggered with:

./gradlew integrationTest

The reference tests (described below) can be triggered with:

./gradlew referenceTest

The system tests can be triggered with:

./gradlew smokeTest

The acceptance tests can be triggered with:

./gradlew acceptanceTest

Run Besu

cd build\distributions
tar -xzf besu-<version>.tar.gz
cd besu-<version> bin\besu --help

Ethereum reference tests 

On top of the project proper unit tests, specific unit tests are provided to run the Ethereum reference tests available at and described at Those are run as part of the unit test suite as described above, but for debugging it is often convenient to run only a subset of those tests. For example, run only Frontier general state tests with: 

./gradlew :ethereum:org.hyperledger.besu.ethereum.vm:referenceTest -Dtest.single=GeneralStateTest -Dtest.ethereum.state.eip=Frontier

Or only the tests that match a particular pattern with something like:

gradle :ethereum:org.hyperledger.besu.ethereum.vm:test -Dtest.single=GeneralStateTest -Dtest.ethereum.include='^CALLCODE.*-Frontier'

For more details, see the comment on the test target in the top level build.gradle file.


  • No labels