Awesome
teku
Teku is an open-source Ethereum consensus client written in Java and containing a full beacon node and validator client implementation.
See the Changelog for details of the latest releases and upcoming breaking changes.
Useful links
- Ethereum Beacon Chain specification
- Teku user documentation
- Teku REST API reference documentation
- Teku issues
- Contribution guidelines
- Teku Changelog
Teku users
See our user documentation.
Raise a documentation issue or get in touch in the #teku channel on Discord if you've got questions or feedback.
Teku developers
Binary Releases
Binary releases are available from the releases page.
Binary builds that track the latest changes on the master branch are available on
Dockerhub using the develop
version or as binary
downloads (tar.gz format
or zip format).
We recommend only using release versions for Mainnet, but develop
builds are useful for testing
the latest changes on testnets.
Release notifications are available via:
- Sign up to our release announcements email list (release and important announcements only, no marketing)
- Follow us on Twitter
teku
in Consensys Discord,- Subscribe to release notifications on github for teku
Build Instructions
Install Prerequisites
- Java 21+
Note: Official builds of Teku are performed with Java 21. Building on a more recent version of Java is supported, but the resulting build will not work on earlier versions of Java.
Build and Dist
To create a ready to run distribution:
git clone https://github.com/Consensys/teku.git
cd teku && ./gradlew distTar installDist
This produces:
- Fully packaged distribution in
build/distributions
- Expanded distribution, ready to run in
build/install/teku
Build and Test
To build, clone this repo and run with gradle
:
git clone https://github.com/Consensys/teku.git
cd teku && ./gradlew
After a successful build, distribution packages are available in build/distributions
.
Other Useful Gradle Targets
Target | Builds |
---|---|
distTar | Full distribution in build/distributions (as .tar.gz ) |
distZip | Full distribution in build/distributions (as .zip ) |
installDist | Expanded distribution in build/install/teku |
distDocker | The consensys/teku docker image |
Code Style
We use Google's Java coding conventions for the project. To reformat code, run:
./gradlew spotlessApply
Code style is checked automatically during a build.
Testing
All the unit tests are run as part of the build, but can be explicitly triggered with:
./gradlew test
Special thanks
YourKit for providing us with a free profiler open source license.
YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications. YourKit is the creator of <a href="https://www.yourkit.com/java/profiler/">YourKit Java Profiler</a>, <a href="https://www.yourkit.com/.net/profiler/">YourKit .NET Profiler</a>, and <a href="https://www.yourkit.com/youmonitor/">YourKit YouMonitor</a>.