Java Implementation of the Ethereum 2.0 Beacon Chain
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Courtney db94bcc617
Fix issue where remote config is missing data (#7510)
2 weeks ago
.circleci updating openssh key for openapi deploy (#7501) 3 weeks ago
.github Change ConsenSys to Consensys everywhere (#7395) 2 months ago
.openapidoc Change ConsenSys to Consensys everywhere (#7395) 2 months ago
acceptance-tests Enable RemoteValidatorCompatibility acceptance tests (#7516) 3 weeks ago
beacon Use `safeJoin` in all UT (#7514) 3 weeks ago
buildSrc Change ConsenSys to Consensys everywhere (#7395) 2 months ago
dashboard added grafana dashboard (#1694) 3 years ago
data Use `safeJoin` in all UT (#7514) 3 weeks ago
docker/jdk17 Change ConsenSys to Consensys everywhere (#7395) 2 months ago
eth-benchmark-tests Increased speed of block generation with some caching (#7491) 4 weeks ago
eth-reference-tests Use `safeJoin` in all UT (#7514) 3 weeks ago
eth-tests update ref test to v1.4.0-beta.1 (#7405) 2 months ago
ethereum Fix issue where remote config is missing data (#7510) 2 weeks ago
fork-choice-tests Change ConsenSys to Consensys everywhere (#7395) 2 months ago
fuzz Change ConsenSys to Consensys everywhere (#7395) 2 months ago
gradle Update to leveldb 1.23 (#7504) 3 weeks ago
infrastructure Use bouncycastle jdk18on instead of jdk15on (#7509) 3 weeks ago
interop-keys Added an interop script to remove keys from keymanager (#7519) 2 weeks ago
networking Use `safeJoin` in all UT (#7514) 3 weeks ago
scripts Improve wording and variable names for update-snapshots script (#7056) 6 months ago
services Use `safeJoin` in all UT (#7514) 3 weeks ago
storage Use `safeJoin` in all UT (#7514) 3 weeks ago
teku Fix issue where remote config is missing data (#7510) 2 weeks ago
test-network Enable Altair in docker testnet (#5441) 1 year ago
validator Use bouncycastle jdk18on instead of jdk15on (#7509) 3 weeks ago
.gitattributes Add database compatibility test (#5752) 1 year ago
.gitignore Few small nits (#7379) 2 months ago
BugTriaging.md Fix ordering of risk matrix table (#2479) 3 years ago
CHANGELOG.md Update to leveldb 1.23 (#7504) 3 weeks ago
CLA.md Update emails and PegaSys references (#2732) 3 years ago
CODE-OF-CONDUCT.md Update emails and PegaSys references (#2732) 3 years ago
CONTRIBUTING.md add link checker (#4004) 2 years ago
GOVERNANCE.md Change ConsenSys to Consensys everywhere (#7395) 2 months ago
LICENSE initial commit for artemis. resolves #88 5 years ago
README.md Change GitPOAP url (#7399) 2 months ago
SECURITY.md Update emails and PegaSys references (#2732) 3 years ago
build.gradle Fix self-referential dependencies when publishing test fixtures (#7485) 4 weeks ago
community-membership.md Change ConsenSys to Consensys everywhere (#7395) 2 months ago
gradle.properties increase timeout to reduce chances of publish failure. (#4459) 2 years ago
gradlew update dependencies (#7345) 3 months ago
gradlew.bat Update dependencies (#6889) 7 months ago
mlc_config.json fix links in readme (#4432) 2 years ago
settings.gradle Added bls-keystore module from `Consensys/signers` (#7276) 3 months ago

README.md

teku

Build Status License GitHub release (latest by date) Discord GitPOAP Badge

Teku is a Java implementation of the Ethereum 2.0 Beacon Chain. See the Changelog for details of the latest releases and upcoming breaking changes.

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:

Build Instructions

Install Prerequisites

  • Java 17+

Note: Official builds of Teku are performed with Java 17. 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 YourKit Java Profiler, YourKit .NET Profiler, and YourKit YouMonitor.

YourKit Logo