From 7c70ebf103dd7133d270e87745ace4aa51839cce Mon Sep 17 00:00:00 2001 From: Dmitrii Shmatko Date: Wed, 27 Feb 2019 00:02:46 +0300 Subject: [PATCH 1/6] Preview edition of README --- README.md | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c3c8b85a0..a2a417db0 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,42 @@ -# Ethereum Beacon Chain -Implementation of Ethereum 2.0 Beacon Chain [specification](https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md) in Java language. +# Beacon Chain Java +Ethereum 2.0 Serenity ~~client~~ emulator. Someday, definitely, it will be a ~~Shasper~~ Serenity client. We are working to get there. Currently there is no p2p and we don't support other clients. + +## Ethereum 2.0? +Yes, Ethereum Foundation, community and other interested parties are developing successor of the current [Ethereum network](https://ethereum.org/) without cons :). +It starts with [Phase 0](https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md), the simplest one. Phase 1 will be the next and so on. + +## How to run it +Install Java 8 or later. There are many guidelines in Internet, even the [official one](https://java.com/en/download/help/download_options.xml), from Oracle. Next, git clone our repo, build `client` module distribution and run emulator: +```bash +git clone https://github.com/harmony-dev/beacon-chain-java.git +cd beacon-chain-java +./gradlew :start:cli:distZip +``` +Cool, we made distribution tied to our system, it's in the `start/cli/build/distributions/` folder and looks like `cli-0.1.0.zip`. Unzip it, enter the `bin` folder and run emulator: +```bash +cd start/cli/build/distributions/ +unzip cli-0.1.0.zip +cd cli-0.1.0/bin +./emulator +``` +and you will see help for `emulator` launcher. Preceding commands will work for OS X/Linux, in Windows you will need to use `.bat` commands where its needed. + +Let's run emulator with default settings and 4 peers: +```bash +./emulator run 4 +``` +#### Latest release +Release [0.1](#tag01) replicates Phase 0 specification of Ethereum 2.0 release [v0.4.0](https://github.com/ethereum/eth2.0-specs/releases/tag/0.4.0) + +## Contribution guideline +Thank you for joining our efforts to drive Ethereum forward! +We are not very strict on requirements but your code should help us to reach our goal, it should be easy to get it, understand the idea, and it should be feasible to review it. Also we are trying to match [Google code style](https://google.github.io/styleguide/javaguide.html) but we don't like it. Feel free to choose any [issue](https://github.com/harmony-dev/beacon-chain-java/issues) and ask how to do it better. + +## Links +[Ethereum 2.0 specs](https://github.com/ethereum/eth2.0-specs) + +[Vitalik Buterin on DevCon4 about Ethereum 2.0](https://slideslive.com/38911602/latest-of-ethereum) + + +## Licensing +This project is licensed under Apache 2.0 license. You could use it for any commercial, private or open-source project. \ No newline at end of file From ca318956795a8bfabfc24670943fb68e19768814 Mon Sep 17 00:00:00 2001 From: Dmitrii Shmatko Date: Wed, 27 Feb 2019 23:39:10 +0300 Subject: [PATCH 2/6] update README to point to point out library usage of the beacon chain --- README.md | 5 ++++- settings.gradle | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a2a417db0..e9367d8b3 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,10 @@ Ethereum 2.0 Serenity ~~client~~ emulator. Someday, definitely, it will be a ~~S Yes, Ethereum Foundation, community and other interested parties are developing successor of the current [Ethereum network](https://ethereum.org/) without cons :). It starts with [Phase 0](https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md), the simplest one. Phase 1 will be the next and so on. -## How to run it +## Develop +If you want to take part in Ethereum 2.0 development and use our code, we split everything into several modules, so anyone could easily take only the needed part. To dig into module goals, check [settings.gradle](settings.gradle). + +## Run Install Java 8 or later. There are many guidelines in Internet, even the [official one](https://java.com/en/download/help/download_options.xml), from Oracle. Next, git clone our repo, build `client` module distribution and run emulator: ```bash git clone https://github.com/harmony-dev/beacon-chain-java.git diff --git a/settings.gradle b/settings.gradle index e4ca7ca0b..e09c40430 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,19 +1,37 @@ rootProject.name = 'beacon' +// Chain construction services and helpers include 'chain' +// Spec functions implementation, transitions etc include 'consensus' +// Ethereum 2.0 domain model: data models include 'core' +// Crypto utilities: BLS381-12 and hash include 'crypto' +// DB persistence core interfaces include 'db:core' +// DB made around EthereumJ client include 'db:ethereumj' +// Configuration parser include 'emulator:config' +// PoW (Proof of Work) interfaces etc include 'pow:core' +// PoW made with EthereumJ include 'pow:ethereumj' +// PoW validator part include 'pow:validator' +// PoW made with web3j (not ready yet) include 'pow:web3j' +// SSZ (Simple serialization) include 'ssz' +// Command line executable clients include 'start:cli' +// Clients helpers include 'start:common' +// Strict types definition include 'types' +// Standalone utils without any relation to Ethereum 2.0 include 'util' +// Validator services include 'validator' +// Wire API mock include 'wire' From 2b9aa2fea9c8bc3f6289b661034f27958934b3e7 Mon Sep 17 00:00:00 2001 From: Dmitrii Shmatko Date: Thu, 28 Feb 2019 09:28:29 +0300 Subject: [PATCH 3/6] READMEL added info how to build module jar --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e9367d8b3..a8cb4af4a 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,12 @@ It starts with [Phase 0](https://github.com/ethereum/eth2.0-specs/blob/master/sp ## Develop If you want to take part in Ethereum 2.0 development and use our code, we split everything into several modules, so anyone could easily take only the needed part. To dig into module goals, check [settings.gradle](settings.gradle). +You can build one module jar with gradle `assemble` task executed on desired module: +```bash +./gradlew :crypto:assemble +cp crypto/build/libs/beacon-crypto-0.1.0.jar +``` + ## Run Install Java 8 or later. There are many guidelines in Internet, even the [official one](https://java.com/en/download/help/download_options.xml), from Oracle. Next, git clone our repo, build `client` module distribution and run emulator: ```bash @@ -36,8 +42,7 @@ Thank you for joining our efforts to drive Ethereum forward! We are not very strict on requirements but your code should help us to reach our goal, it should be easy to get it, understand the idea, and it should be feasible to review it. Also we are trying to match [Google code style](https://google.github.io/styleguide/javaguide.html) but we don't like it. Feel free to choose any [issue](https://github.com/harmony-dev/beacon-chain-java/issues) and ask how to do it better. ## Links -[Ethereum 2.0 specs](https://github.com/ethereum/eth2.0-specs) - +[Ethereum 2.0 specs](https://github.com/ethereum/eth2.0-specs) [Vitalik Buterin on DevCon4 about Ethereum 2.0](https://slideslive.com/38911602/latest-of-ethereum) From 1e39341b5cbb57979784aae414e041277291b08c Mon Sep 17 00:00:00 2001 From: Mikhail Kalinin Date: Thu, 28 Feb 2019 14:26:58 +0600 Subject: [PATCH 4/6] README polishing --- README.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index a8cb4af4a..96c95fd0a 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Beacon Chain Java -Ethereum 2.0 Serenity ~~client~~ emulator. Someday, definitely, it will be a ~~Shasper~~ Serenity client. We are working to get there. Currently there is no p2p and we don't support other clients. +Java implementation of Ethereum 2.0 Beacon chain. Someday, definitely, it will be a fully featured Serenity client. We are working to get there. Currently there is no p2p and, hence, there is no cross client communication. ## Ethereum 2.0? -Yes, Ethereum Foundation, community and other interested parties are developing successor of the current [Ethereum network](https://ethereum.org/) without cons :). -It starts with [Phase 0](https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md), the simplest one. Phase 1 will be the next and so on. +Yes, Ethereum Foundation, community and other interested parties are developing successor of [Ethereum](https://ethereum.org/) without cons :). +New blockchain starts from [Phase 0](https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md) also known as Beacon chain, a core of Ethereum 2.0 blockchain. Phase 1 will be the next one and so on. ## Develop If you want to take part in Ethereum 2.0 development and use our code, we split everything into several modules, so anyone could easily take only the needed part. To dig into module goals, check [settings.gradle](settings.gradle). @@ -14,8 +14,10 @@ You can build one module jar with gradle `assemble` task executed on desired mod cp crypto/build/libs/beacon-crypto-0.1.0.jar ``` -## Run -Install Java 8 or later. There are many guidelines in Internet, even the [official one](https://java.com/en/download/help/download_options.xml), from Oracle. Next, git clone our repo, build `client` module distribution and run emulator: +## Emulator +Despite lacking a network stack there is already something that everybody can play with, a standalone Beacon chain emulator. + +To run an emulator you need to install Java 8 or later. There are many guidelines in Internet, even the [official one](https://java.com/en/download/help/download_options.xml), from Oracle. Next, git clone our repo, build `client` module distribution and run emulator: ```bash git clone https://github.com/harmony-dev/beacon-chain-java.git cd beacon-chain-java @@ -34,8 +36,6 @@ Let's run emulator with default settings and 4 peers: ```bash ./emulator run 4 ``` -#### Latest release -Release [0.1](#tag01) replicates Phase 0 specification of Ethereum 2.0 release [v0.4.0](https://github.com/ethereum/eth2.0-specs/releases/tag/0.4.0) ## Contribution guideline Thank you for joining our efforts to drive Ethereum forward! @@ -47,4 +47,9 @@ We are not very strict on requirements but your code should help us to reach our ## Licensing -This project is licensed under Apache 2.0 license. You could use it for any commercial, private or open-source project. \ No newline at end of file +This project is licensed under Apache 2.0 license. You could use it for any commercial, private or open-source project. + +## Donations +If you like the project, we could use your donations to fund the development: + +`0xF5eFA576ee17A381d798299d10eD397c4dce9BdD` From ffc81cc43fb87e8d41841220871030ea3969900d Mon Sep 17 00:00:00 2001 From: Mikhail Kalinin Date: Thu, 28 Feb 2019 14:39:05 +0600 Subject: [PATCH 5/6] A bit more of README polishing --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 96c95fd0a..15d1c5d04 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Beacon Chain Java -Java implementation of Ethereum 2.0 Beacon chain. Someday, definitely, it will be a fully featured Serenity client. We are working to get there. Currently there is no p2p and, hence, there is no cross client communication. +Ethereum 2.0 Beacon chain client. Someday, definitely, it will be a fully featured Serenity client. We are working to get there. Currently there is no p2p and, hence, there is no cross client communication. ## Ethereum 2.0? Yes, Ethereum Foundation, community and other interested parties are developing successor of [Ethereum](https://ethereum.org/) without cons :). From 0d7ffd2c73640ea24701124d0e60153db8559446 Mon Sep 17 00:00:00 2001 From: Mikhail Kalinin Date: Thu, 28 Feb 2019 15:19:32 +0600 Subject: [PATCH 6/6] Rename: emulator -> simulator --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 15d1c5d04..4bfb5719c 100644 --- a/README.md +++ b/README.md @@ -14,27 +14,27 @@ You can build one module jar with gradle `assemble` task executed on desired mod cp crypto/build/libs/beacon-crypto-0.1.0.jar ``` -## Emulator -Despite lacking a network stack there is already something that everybody can play with, a standalone Beacon chain emulator. +## Simulator +Despite lacking a network stack there is already something that everybody can play with, a standalone Beacon chain simulator. -To run an emulator you need to install Java 8 or later. There are many guidelines in Internet, even the [official one](https://java.com/en/download/help/download_options.xml), from Oracle. Next, git clone our repo, build `client` module distribution and run emulator: +To run an simulator you need to install Java 8 or later. There are many guidelines in Internet, even the [official one](https://java.com/en/download/help/download_options.xml), from Oracle. Next, git clone our repo, build `client` module distribution and run simulator: ```bash git clone https://github.com/harmony-dev/beacon-chain-java.git cd beacon-chain-java ./gradlew :start:cli:distZip ``` -Cool, we made distribution tied to our system, it's in the `start/cli/build/distributions/` folder and looks like `cli-0.1.0.zip`. Unzip it, enter the `bin` folder and run emulator: +Cool, we made distribution tied to our system, it's in the `start/cli/build/distributions/` folder and looks like `cli-0.1.0.zip`. Unzip it, enter the `bin` folder and run simulator: ```bash cd start/cli/build/distributions/ unzip cli-0.1.0.zip cd cli-0.1.0/bin -./emulator +./simulator ``` -and you will see help for `emulator` launcher. Preceding commands will work for OS X/Linux, in Windows you will need to use `.bat` commands where its needed. +and you will see help for `simulator` launcher. Preceding commands will work for OS X/Linux, in Windows you will need to use `.bat` commands where its needed. -Let's run emulator with default settings and 4 peers: +Let's run simulator with default settings and 4 peers: ```bash -./emulator run 4 +./simulator run 4 ``` ## Contribution guideline