Implementation of the Ethereum 2.0 Beacon Chain.
Based on the (evolving) specification.
NOTE: This repo is still in early development.
To build, clone this repo and run with gradle like so:
$ git clone --recursive https://github.com/PegaSysEng/artemis.git
$ cd artemis
$ ./gradlew
After a successful build, distribution packages will be available in build/distributions.
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.
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
To view the run menu:
$ ./gradlew run --args='-h'
Usage: Artemis [-hV] [-c=<FILENAME>] [-l=<LOG VERBOSITY LEVEL>] [-o=<FILENAME>] [-p=<PROVIDER TYPE>]
-c, --config=<FILENAME> Path/filename of the config file
-h, --help Show this help message and exit.
-l, --logging=<LOG VERBOSITY LEVEL> Logging verbosity levels: OFF, FATAL, WARN, INFO, DEBUG, TRACE, ALL (default: INFO).
-o, --output=<FILENAME> Path/filename of the output file
-p, --provider=<PROVIDER TYPE> Output provider types: CSV, JSON (default: JSON).
-V, --version Print version information and exit.
You can run the executable from the CLI with this command:
$ ./gradlew run
To run and send formatted output to a json file
$ ./gradlew run --args='-p=JSON -o=artemis.json'
NOTE: If no -p isn't provided then it defaults to JSON
To run and send formatted output to a csv file
$ ./gradlew run --args='-p=CSV -o=artemis.csv'
To run with loggin level set to ALL
$ ./gradlew run --args='-l=ALL'
To run and generate flow diagrams for Artemis
$ ./gradlew run -PgenerateFlow
Note: You must be running flow
