Java Implementation of the Ethereum 2.0 Beacon Chain
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Paul Harris de4b7bbc51
cleaned up changelog after 23.5.0. (#7143)
4 weeks ago
.circleci Use latest release of trivy (#6923) 3 months ago
.github Add CI workflow for test path check (#7032) 2 months ago
.openapidoc Updating git-url-parse from 12.0.0 to 13.1.0 (#6227) 9 months ago
acceptance-tests Enable exchange capabilities by default (#6988) 2 months ago
beacon Add storing of BlobSidecars through Store and StoreTransaction (#7092) 1 month ago
buildSrc Make distributions reproducible (#5852) 11 months ago
dashboard added grafana dashboard (#1694) 3 years ago
data 7019 refactor deneb containers (#7131) 4 weeks ago
docker Allow other users to read the /opt/teku dir when using docker (#6743) 4 months ago
eth-benchmark-tests Adding details for rewards components (#7108) 1 month ago
eth-reference-tests Added helper for aggregated() and detailed() dewards delta (#7116) 1 month ago
eth-tests Updated tests to cover RC4 tests (#6958) 3 months ago
ethereum Process attestations when the state from their target block state is available in cache. (#7142) 4 weeks ago
fork-choice-tests Rename BlobsSidecarManager -> BlobSidecarManager (#7069) 2 months ago
fuzz Blob sidecars availability checker (#7081) 1 month ago
gradle Dependency updates (#7091) 1 month ago
infrastructure Set optional missing fields to empty when deserializing (#7127) 4 weeks ago
interop-keys Update copyright notice on all files (#5769) 1 year ago
networking BlobSidecar's persistence (#7028) 2 months ago
scripts Improve wording and variable names for update-snapshots script (#7056) 2 months ago
services Remove some `BlobsSidecar` references (#7122) 1 month ago
storage Process attestations when the state from their target block state is available in cache. (#7142) 4 weeks ago
teku Remove some `BlobsSidecar` references (#7122) 1 month ago
test-network Enable Altair in docker testnet (#5441) 1 year ago
validator Default optional SyncingStatus fields to `Optional.empty()` (#7121) 1 month ago
.gitattributes Add database compatibility test (#5752) 1 year ago
.gitignore Replace eth2.0 references to github with consensus (#6836) 4 months ago
.gitmodules Ref test fix (#923) 4 years ago
BugTriaging.md Fix ordering of risk matrix table (#2479) 3 years ago
CHANGELOG.md cleaned up changelog after 23.5.0. (#7143) 4 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 add link checker (#4004) 2 years ago
LICENSE initial commit for artemis. resolves #88 5 years ago
README.md Replace eth2.0 references to github with consensus (#6836) 4 months ago
SECURITY.md Update emails and PegaSys references (#2732) 3 years ago
build.gradle Dependency updates (#7091) 1 month ago
community-membership.md Fix typos (#6676) 5 months ago
gradle.properties increase timeout to reduce chances of publish failure. (#4459) 2 years ago
gradlew Update project dependencies (#7043) 2 months ago
gradlew.bat Update dependencies (#6889) 3 months ago
mlc_config.json fix links in readme (#4432) 2 years ago
settings.gradle Eip4844 types (#6421) 7 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 11+

Note: Official builds of Teku are performed with Java 11. 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