switch ethereum 2.0 to ethereum serenity (#714)

This commit is contained in:
terence tsao 2018-11-01 12:02:01 +01:00 committed by Preston Van Loon
parent 3868b6bbe7
commit 8408315f9c
18 changed files with 33 additions and 33 deletions

View File

@ -1,8 +1,8 @@
# Prysmatic Labs Ethereum 2.0 Implementation # Prysmatic Labs Ethereum Serenity Implementation
[![Build status](https://badge.buildkite.com/b555891daf3614bae4284dcf365b2340cefc0089839526f096.svg)](https://buildkite.com/prysmatic-labs/prysm) [![Build status](https://badge.buildkite.com/b555891daf3614bae4284dcf365b2340cefc0089839526f096.svg)](https://buildkite.com/prysmatic-labs/prysm)
This is the main repository for the beacon chain and sharding implementation for Ethereum 2.0 [Prysmatic Labs](https://prysmaticlabs.com). This is the main repository for the beacon chain and sharding implementation for Ethereum Serenity [Prysmatic Labs](https://prysmaticlabs.com).
Before you begin, check out our [Contribution Guidelines](#contributing) and join our active chat room on Discord or Gitter below: Before you begin, check out our [Contribution Guidelines](#contributing) and join our active chat room on Discord or Gitter below:

View File

@ -1,6 +1,6 @@
# Prysmatic Labs Beacon Chain Implementation # Prysmatic Labs Beacon Chain Implementation
This is the main project folder for the beacon chain implementation of Ethereum 2.0 in Golang by [Prysmatic Labs](https://prysmaticlabs.com). Before you begin, check out our [Contribution Guidelines](https://github.com/prysmaticlabs/prysm/blob/master/CONTRIBUTING.md) and join our active chat room on Discord or Gitter below: This is the main project folder for the beacon chain implementation of Ethereum Serenity in Golang by [Prysmatic Labs](https://prysmaticlabs.com). Before you begin, check out our [Contribution Guidelines](https://github.com/prysmaticlabs/prysm/blob/master/CONTRIBUTING.md) and join our active chat room on Discord or Gitter below:
[![Discord](https://user-images.githubusercontent.com/7288322/34471967-1df7808a-efbb-11e7-9088-ed0b04151291.png)](https://discord.gg/KSA7rPr) [![Discord](https://user-images.githubusercontent.com/7288322/34471967-1df7808a-efbb-11e7-9088-ed0b04151291.png)](https://discord.gg/KSA7rPr)
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/prysmaticlabs/prysm?badge&utm_medium=badge&utm_campaign=pr-badge) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/prysmaticlabs/prysm?badge&utm_medium=badge&utm_campaign=pr-badge)

View File

@ -18,7 +18,7 @@ type ValidatorSetDeltaFlags int
// Config contains configs for node to participate in beacon chain. // Config contains configs for node to participate in beacon chain.
type Config struct { type Config struct {
ShardCount uint64 // ShardCount is the fixed number of shards in Ethereum 2.0. ShardCount uint64 // ShardCount is the fixed number of shards in Ethereum Serenity.
DepositSize uint64 // DepositSize is how much a validator has deposited in Gwei. DepositSize uint64 // DepositSize is how much a validator has deposited in Gwei.
BootstrappedValidatorsCount uint64 // BootstrappedValidatorsCount is the number of validators we seed the first crystallized state. BootstrappedValidatorsCount uint64 // BootstrappedValidatorsCount is the number of validators we seed the first crystallized state.
ModuloBias uint64 // ModuloBias is the upper bound of validator shuffle function. Can shuffle validator lists up to that size. ModuloBias uint64 // ModuloBias is the upper bound of validator shuffle function. Can shuffle validator lists up to that size.

View File

@ -1,6 +1,6 @@
# Prysmatic Labs Contract Page # Prysmatic Labs Contract Page
This page serves as a main reference for Prysmatic Labs' smart contracts implementation for ethereum 2.0. This page serves as a main reference for Prysmatic Labs' smart contracts implementation for Ethereum Serenity.
## Table of Contents ## Table of Contents

View File

@ -1,14 +1,14 @@
# Ethereum 2.0 Prysm Demo # Ethereum Serenity Prysm Demo
## Overview & Research Background ## Overview & Research Background
At Prysmatic Labs, we started working on Ethereum 2.0 all the way back since Vitalik first had a Sharding FAQ as the only reference for the system at the start of 2018. A lot has happened, with the specification evolving from a series of ETHResearch blog posts into a minimal viable blueprint for how to design a scalable, secure Ethereum blockchain using Casper Proof of Stake and Sharding at its core. At Prysmatic Labs, we started working on Ethereum Serenity all the way back since Vitalik first had a Sharding FAQ as the only reference for the system at the start of 2018. A lot has happened, with the specification evolving from a series of ETHResearch blog posts into a minimal viable blueprint for how to design a scalable, secure Ethereum blockchain using Casper Proof of Stake and Sharding at its core.
Now, the plan is to deploy ETH2.0 as a sidechain of Ethereum known as a beacon chain, where validators can stake their Ether and participate in consensus to vote on occurrences on shards known as cross-links. Now, the plan is to deploy ETH2.0 as a sidechain of Ethereum known as a beacon chain, where validators can stake their Ether and participate in consensus to vote on occurrences on shards known as cross-links.
## Version 0.0.0: Beacon Chain+Validator Demo ## Version 0.0.0: Beacon Chain+Validator Demo
We call our Ethereum 2.0 Shasper project Prysm, which will serve as the scaffold for a production-oriented release fully written in Go. We have been working hard to ensure we have a robust implementation of the Ethereum 2.0 specification as created by the Ethereum Research Team along with industry standard approaches to building large scale applications. We call our Ethereum Serenity project Prysm, which will serve as the scaffold for a production-oriented release fully written in Go. We have been working hard to ensure we have a robust implementation of the Ethereum Serenity specification as created by the Ethereum Research Team along with industry standard approaches to building large scale applications.
We are proud to announce our very first release of Prysm, v0.0.0, which will serve as the building block for all future releases as we get to production. We want to show the community we have a project we have put a lot of work into through careful thought and design decisions that we hope will set a standard for future ETH2.0 developments. We are proud to announce our very first release of Prysm, v0.0.0, which will serve as the building block for all future releases as we get to production. We want to show the community we have a project we have put a lot of work into through careful thought and design decisions that we hope will set a standard for future ETH2.0 developments.
@ -47,10 +47,10 @@ Curious to see the system working and running a validator client locally? We hav
[Running Instructions](https://github.com/prysmaticlabs/prysm/blob/master/README.md#instructions) [Running Instructions](https://github.com/prysmaticlabs/prysm/blob/master/README.md#instructions)
Youll be able to spin up a beacon node, connect a validator client, and start getting assigned to shards where you will then create beacon blocks or vote on beacon blocks through structures called “attestations”. If you are not quite as familiar with the Ethereum 2.0 Roadmap and Spec, check out the following links: Youll be able to spin up a beacon node, connect a validator client, and start getting assigned to shards where you will then create beacon blocks or vote on beacon blocks through structures called “attestations”. If you are not quite as familiar with the Ethereum Serenity Roadmap and Spec, check out the following links:
- [Ethereum 2.0 Devs Handbook](https://notes.ethereum.org/s/BkSZAJNwX#) - [Ethereum Serenity Devs Handbook](https://notes.ethereum.org/s/BkSZAJNwX#)
- [Ethereum 2.0 Casper+Sharding Specification](https://github.com/ethereum/eth2.0-specs/blob/master/specs/casper_sharding_v2.1.md) - [Ethereum Serenity Casper+Sharding Specification](https://github.com/ethereum/eth2.0-specs/blob/master/specs/casper_sharding_v2.1.md)
Even though canonical blocks are created in the demo due to your activity as a validator, youll quickly see not much can be done with these blocks until real, state execution comes into play. However, this beacon chain is a critical piece of consensus and coordination for all actors participating in Ethereum 2.0 and will as the foundation for a full-fledged, sharding system. Even though canonical blocks are created in the demo due to your activity as a validator, youll quickly see not much can be done with these blocks until real, state execution comes into play. However, this beacon chain is a critical piece of consensus and coordination for all actors participating in Ethereum Serenity and will as the foundation for a full-fledged, sharding system.

View File

@ -1,6 +1,6 @@
# Connecting Ethereum 2.0 to a Mainchain, Go-Ethereum Node # Connecting Ethereum Serenity to a Mainchain, Go-Ethereum Node
In order to test out validator registration and synchronize the Ethereum 2.0 beacon chain with a proof-of-work, mainchain node, you'll need to initialize your own private Ethereum blockchain as follows: In order to test out validator registration and synchronize the Ethereum Serenity beacon chain with a proof-of-work, mainchain node, you'll need to initialize your own private Ethereum blockchain as follows:
## Running a Local Geth Node ## Running a Local Geth Node

View File

@ -102,7 +102,7 @@ With respect to knowing enough about sharding, we will cover the requirements fo
After reading the Sharding FAQ, it is important to understand the minimal implementation notes and the research that went into writing it up. After reading the Sharding FAQ, it is important to understand the minimal implementation notes and the research that went into writing it up.
**Shasper Concepts and Notes** **Serenity Concepts and Notes**
- [Sharding Concepts Mental Map](https://www.mindomo.com/zh/mindmap/sharding-d7cf8b6dee714d01a77388cb5d9d2a01) - [Sharding Concepts Mental Map](https://www.mindomo.com/zh/mindmap/sharding-d7cf8b6dee714d01a77388cb5d9d2a01)
- [Taiwan Sharding Workshop Notes](https://hackmd.io/s/HJ_BbgCFz#%E2%9F%A0-General-Introduction) - [Taiwan Sharding Workshop Notes](https://hackmd.io/s/HJ_BbgCFz#%E2%9F%A0-General-Introduction)
@ -111,7 +111,7 @@ After reading the Sharding FAQ, it is important to understand the minimal implem
- [General Theory of Sharding](https://ethresear.ch/t/a-general-theory-of-what-quadratically-sharded-validation-is/1730/10) - [General Theory of Sharding](https://ethresear.ch/t/a-general-theory-of-what-quadratically-sharded-validation-is/1730/10)
- [Sharding Design Compendium](https://ethresear.ch/t/sharding-designs-compendium/1888/25) - [Sharding Design Compendium](https://ethresear.ch/t/sharding-designs-compendium/1888/25)
**Shasper Research Posts in Order** **Serenity Research Posts in Order**
- [Sharding v2.1 Spec](https://notes.ethereum.org/SCIg8AH5SA-O4C1G1LYZHQ) - [Sharding v2.1 Spec](https://notes.ethereum.org/SCIg8AH5SA-O4C1G1LYZHQ)
- [Casper/Sharding/Beacon Chain FAQs](https://notes.ethereum.org/9MMuzWeFTTSg-3Tz_YeiBA?view) - [Casper/Sharding/Beacon Chain FAQs](https://notes.ethereum.org/9MMuzWeFTTSg-3Tz_YeiBA?view)
@ -128,7 +128,7 @@ After reading the Sharding FAQ, it is important to understand the minimal implem
- [Safe Notary Pool Size](https://ethresear.ch/t/safe-notary-pool-size/1728/3) - [Safe Notary Pool Size](https://ethresear.ch/t/safe-notary-pool-size/1728/3)
- [Cross Links Between Main and Shard Chains](https://ethresear.ch/t/cross-links-between-main-chain-and-shards/1860/2) - [Cross Links Between Main and Shard Chains](https://ethresear.ch/t/cross-links-between-main-chain-and-shards/1860/2)
**Shasper Talk from Conferences & Meet Ups in Order** **Serenity Talk from Conferences & Meet Ups in Order**
- [Sharding Presentation by Vitalik from IC3-ETH Bootcamp](https://vod.video.cornell.edu/media/Sharding+-+Vitalik+Buterin/1_1xezsfb4/97851101) - [Sharding Presentation by Vitalik from IC3-ETH Bootcamp](https://vod.video.cornell.edu/media/Sharding+-+Vitalik+Buterin/1_1xezsfb4/97851101)
- [Latest Research and Sharding by Justin Drake from Tech Crunch](https://www.youtube.com/watch?v=J6xO7DH20Js) - [Latest Research and Sharding by Justin Drake from Tech Crunch](https://www.youtube.com/watch?v=J6xO7DH20Js)
- [Beacon Casper Chain by Vitalik and Justin Drake](https://www.youtube.com/watch?v=GAywmwGToUI) - [Beacon Casper Chain by Vitalik and Justin Drake](https://www.youtube.com/watch?v=GAywmwGToUI)

View File

@ -36,7 +36,7 @@ as long as pub key matches the one you used to launch beacon chain node. (ex: aa
### Step 4: Wait for Deposit Tx Block to be Mined ### Step 4: Wait for Deposit Tx Block to be Mined
After the deposit transaction gets mined, beacon chain node will report account holder has been registered. Congrats! Now, you are contributing to the security of Ethereum 2.0 : ) After the deposit transaction gets mined, beacon chain node will report account holder has been registered. Congrats! Now, you are contributing to the security of Ethereum Serenity
``` ```
INFO[0000] Starting beacon node INFO[0000] Starting beacon node
INFO[0000] Starting web3 PoW chain service at ws://127.0.0.1:8546 INFO[0000] Starting web3 PoW chain service at ws://127.0.0.1:8546

View File

@ -1,4 +1,4 @@
# Kubernetes Configuration for Ethereum 2.0 # Kubernetes Configuration for Ethereum Serenity
## Requirements ## Requirements

View File

@ -1,6 +1,6 @@
# Ethereum 2.0 Protocol Buffers # Ethereum Serenity Protocol Buffers
This package defines common protobuf messages and services used by Ethereum 2.0 clients. Following the structure of: This package defines common protobuf messages and services used by Ethereum Serenity clients. Following the structure of:
``` ```
proto/ proto/

View File

@ -1,6 +1,6 @@
// Package bls implements a go-wrapper around a C BLS library leveraging // Package bls implements a go-wrapper around a C BLS library leveraging
// the BLS12-381 curve. This package exposes a public API for verifying and // the BLS12-381 curve. This package exposes a public API for verifying and
// aggregating BLS signatures used by Ethereum 2.0. // aggregating BLS signatures used by Ethereum Serenity.
package bls package bls
import "fmt" import "fmt"

View File

@ -1,4 +1,4 @@
// Package legacyutil exists to convert Ethererum 2.0 types to go-ethereum or // Package legacyutil exists to convert Ethereum Serenity types to go-ethereum or
// Ethereum 1.0 types. // Ethereum 1.0 types.
package legacyutil package legacyutil

View File

@ -1,4 +1,4 @@
// Package p2p handles peer-to-peer networking for Ethereum 2.0 clients. // Package p2p handles peer-to-peer networking for Ethereum Serenity clients.
// //
// There are three types of p2p communications. // There are three types of p2p communications.
// //

View File

@ -1,6 +1,6 @@
# Prysmatic Labs Validator Client Implementation # Prysmatic Labs Validator Client Implementation
This is the main project folder for a validator client implementation of Ethereum 2.0 in Golang by [Prysmatic Labs](https://prysmaticlabs.com). A validator client attaches to a running beacon node in order to perform proposer/attester responsibilities and manage the lifecycle of a particular shard upon being assigned to one. This is the main project folder for a validator client implementation of Ethereum Serenity in Golang by [Prysmatic Labs](https://prysmaticlabs.com). A validator client attaches to a running beacon node in order to perform proposer/attester responsibilities and manage the lifecycle of a particular shard upon being assigned to one.
Before you begin, check out our main [README](https://github.com/prysmaticlabs/prysm/blob/master/README.md) and join our active chat room on Discord or Gitter below: Before you begin, check out our main [README](https://github.com/prysmaticlabs/prysm/blob/master/README.md) and join our active chat room on Discord or Gitter below:

View File

@ -1,5 +1,5 @@
// Package attester defines all relevant functionality for a Attester actor // Package attester defines all relevant functionality for a Attester actor
// within Ethereum 2.0. // within Ethereum Serenity.
package attester package attester
import ( import (
@ -26,7 +26,7 @@ type beaconClientService interface {
} }
// Attester holds functionality required to run a block attester // Attester holds functionality required to run a block attester
// in Ethereum 2.0. // in Ethereum Serenity.
type Attester struct { type Attester struct {
ctx context.Context ctx context.Context
cancel context.CancelFunc cancel context.CancelFunc

View File

@ -58,7 +58,7 @@ VERSION:
app := cli.NewApp() app := cli.NewApp()
app.Name = "validator" app.Name = "validator"
app.Usage = `launches an Ethereum 2.0 validator client that interacts with a beacon chain, starts proposer services, shardp2p connections, and more app.Usage = `launches an Ethereum Serenity validator client that interacts with a beacon chain, starts proposer services, shardp2p connections, and more
` `
app.Action = startNode app.Action = startNode
app.Flags = []cli.Flag{ app.Flags = []cli.Flag{

View File

@ -1,5 +1,5 @@
// Package node defines a validator client which connects to a // Package node defines a validator client which connects to a
// full beacon node as part of the Ethereum 2.0 specification. // full beacon node as part of the Ethereum Serenity specification.
package node package node
import ( import (
@ -32,7 +32,7 @@ const shardChainDBName = "shardchaindata"
// ValidatorClient defines an instance of a sharding validator that manages // ValidatorClient defines an instance of a sharding validator that manages
// the entire lifecycle of services attached to it participating in // the entire lifecycle of services attached to it participating in
// Ethereum 2.0. // Ethereum Serenity.
type ValidatorClient struct { type ValidatorClient struct {
ctx *cli.Context ctx *cli.Context
services *shared.ServiceRegistry // Lifecycle and service store. services *shared.ServiceRegistry // Lifecycle and service store.
@ -49,7 +49,7 @@ func GeneratePubKey() ([]byte, error) {
return pubkey, err return pubkey, err
} }
// NewValidatorClient creates a new, Ethereum 2.0 validator client. // NewValidatorClient creates a new, Ethereum Serenity validator client.
func NewValidatorClient(ctx *cli.Context) (*ValidatorClient, error) { func NewValidatorClient(ctx *cli.Context) (*ValidatorClient, error) {
registry := shared.NewServiceRegistry() registry := shared.NewServiceRegistry()
ValidatorClient := &ValidatorClient{ ValidatorClient := &ValidatorClient{

View File

@ -1,5 +1,5 @@
// Package proposer defines all relevant functionality for a Proposer actor // Package proposer defines all relevant functionality for a Proposer actor
// within Ethereum 2.0. // within Ethereum Serenity.
package proposer package proposer
import ( import (
@ -31,7 +31,7 @@ type rpcAttestationService interface {
} }
// Proposer holds functionality required to run a block proposer // Proposer holds functionality required to run a block proposer
// in Ethereum 2.0. Must satisfy the Service interface defined in // in Ethereum Serenity. Must satisfy the Service interface defined in
// sharding/service.go. // sharding/service.go.
type Proposer struct { type Proposer struct {
ctx context.Context ctx context.Context