Adrian Sutton
0d6abaf3c2
|
6 years ago | |
---|---|---|
acceptance-tests | 6 years ago | |
buildSrc/src/main/groovy | 6 years ago | |
consensus | 6 years ago | |
crypto | 6 years ago | |
errorprone-checks | 6 years ago | |
ethereum | 6 years ago | |
gradle | 6 years ago | |
pantheon | 6 years ago | |
quickstart | 6 years ago | |
services | 6 years ago | |
system-tests | 6 years ago | |
testutil | 6 years ago | |
util | 6 years ago | |
.dockerignore | 6 years ago | |
.gitattributes | 6 years ago | |
.gitignore | 6 years ago | |
.gitmodules | 6 years ago | |
CONTRIBUTING.md | 6 years ago | |
Dockerfile | 6 years ago | |
Jenkinsfile | 6 years ago | |
LICENSE | 6 years ago | |
README.md | 6 years ago | |
build.gradle | 6 years ago | |
gradle.properties | 6 years ago | |
gradlew | 6 years ago | |
gradlew.bat | 6 years ago | |
settings.gradle | 6 years ago | |
versions.gradle | 6 years ago |
README.md
Pantheon Ethereum Client ·
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:
- Command Line Options
- https://github.com/ConsenSys/pantheon/wiki/JSON-RPC-API
- Docker Quickstart Tutorial
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
The system tests can be triggered with:
./gradlew smokeTest
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.