An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client https://wiki.hyperledger.org/display/besu
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.
 
 
tmohay 3d9ed51d9d Fix COINBASE operation to return mining beneficiary (which may not match coinbase header in Clique) (#33) 6 years ago
acceptance-tests Extract common components from MiningCoordinator (#21) 6 years ago
buildSrc/src/main/groovy [MINOR] removing executable from files (#14) 6 years ago
consensus Wired Mining into CliquePantheonController (#22) 6 years ago
crypto [NC-1374] Use default java secureRandom (#34) 6 years ago
errorprone-checks [MINOR] removing executable from files (#14) 6 years ago
ethereum Fix COINBASE operation to return mining beneficiary (which may not match coinbase header in Clique) (#33) 6 years ago
gradle [MINOR] removing executable from files (#14) 6 years ago
pantheon Wired Mining into CliquePantheonController (#22) 6 years ago
quickstart [MINOR] updated readme link (#25) 6 years ago
services [MINOR] Normalize references to Logger (#28) 6 years ago
testutil [MINOR] removing executable from files (#14) 6 years ago
util [MINOR] removing executable from files (#14) 6 years ago
.dockerignore [MINOR] removing executable from files (#14) 6 years ago
.gitattributes [MINOR] removing executable from files (#14) 6 years ago
.gitignore [MINOR] removing executable from files (#14) 6 years ago
.gitmodules [MINOR] removing executable from files (#14) 6 years ago
CONTRIBUTING.md [MINOR] removing executable from files (#14) 6 years ago
Dockerfile [MINOR] removing executable from files (#14) 6 years ago
Jenkinsfile [NC-1646] Removed system/smoke tests + resources. (#32) 6 years ago
LICENSE [MINOR] removing executable from files (#14) 6 years ago
README.md [NC-1646] Removed system/smoke tests + resources. (#32) 6 years ago
build.gradle [NC-1374] Use default java secureRandom (#34) 6 years ago
gradle.properties [MINOR] removing executable from files (#14) 6 years ago
gradlew Initial commit 6 years ago
gradlew.bat Initial commit 6 years ago
settings.gradle [NC-1646] Removed system/smoke tests + resources. (#32) 6 years ago
versions.gradle [MINOR] removing executable from files (#14) 6 years ago

README.md

Pantheon Ethereum Client · License

Pantheon Users

The process for building and running Pantheon as a user is different to when developing. All user documentation is on our Wiki and some processes are different to those described in this Readme.

Build, Install, and Run Pantheon

Building, installing, and running Pantheon is described in the Wiki:

Documentation

User and reference documentation available on the Wiki includes:

Pantheon Developers

Build Instructions

To build, clone this repo and run with ./gradlew like so:

git clone --recursive https://github.com/PegaSysEng/pantheon.git
cd pantheon
./gradlew

After a successful build, distribution packages will be available in build/distribution.

Code Style

We use Google's Java coding conventions for the project. To reformat code, run:

./gradlew spotlessApply

Code style will be 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

The integration tests can be triggered with:

./gradlew integrationTest

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

./gradlew referenceTest

Running Pantheon

You can build and run Pantheon with default options via:

./gradlew run

By default this stores all persistent data in build/pantheon.

If you want to set custom CLI arguments for the Pantheon execution, you can use the property pantheon.run.args like e.g.:

./gradlew run -Ppantheon.run.args="--discovery=false --home=/tmp/pantheontmp"

which will pass --discovery=false and --home=/tmp/pantheontmp to the invocation.

Ethereum reference tests

On top of the project proper unit tests, specific unit tests are provided to run the Ethereum reference tests available at https://github.com/ethereum/tests and described at http://ethereum-tests.readthedocs.io/en/latest/. 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 which a few convenience as provided. For instance, one can run only "Frontier" general state tests with

./gradlew :ethereum:net.consensys.pantheon.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:net.consensys.pantheon.ethereum.vm:test -Dtest.single=GeneralStateTest -Dtest.ethereum.include='^CALLCODE.*-Frontier'

Please see the comment on the test target in the top level build.gradle file for more details.

Logging

This project employs the logging utility Apache Log4j, accordingly levels of detail can be specified as follows:

ALL:	All levels including custom levels.
DEBUG:	Designates fine-grained informational events that are most useful to debug an application.
ERROR:	Designates error events that might still allow the application to continue running.
FATAL:	Designates very severe error events that will presumably lead the application to abort.
INFO:	Designates informational messages that highlight the progress of the application at coarse-grained level.
OFF:	The highest possible rank and is intended to turn off logging.
TRACE:	Designates finer-grained informational events than the DEBUG.
WARN:	Designates potentially harmful situations.

One mechanism of globally effecting the log output of a running client is though modification the file /pantheon/src/main/resources/log4j2.xml, where it can be specified under the <Property name="root.log.level">. As such, corresponding instances of information logs throughout the codebase, e.g. log.fatal("Fatal Message!");, will be rendered to the console while the client is in use.

Contribution

Welcome to the Pantheon Ethereum project repo. If you would like to help contribute code to the project, please fork, commit and send us a pull request.

Please read the Contribution guidelines for this project.