beacon-chain

command
v0.3.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 12, 2020 License: GPL-3.0 Imports: 20 Imported by: 0

README

Prysmatic Labs Beacon Chain Implementation

This is the main project folder for the beacon chain implementation of Ethereum Serenity in Golang by Prysmatic Labs. Before you begin, check out our Contribution Guidelines and join our active chat room on Discord or Gitter below:

Discord Gitter

Also, read the latest beacon chain design spec, this design spec serves as a source of truth for the beacon chain implementation we follow at prysmatic labs. Check out the FAQs. Refer this page on why we are combining sharding and casper together.

Documentation

Overview

Package beacon-chain defines all the utilities needed for a beacon chain node.

This code was adapted from https://github.com/ethereum/go-ethereum/blob/master/cmd/geth/usage.go

Directories

Path Synopsis
Package blockchain defines the life-cycle and status of the beacon chain as well as the Ethereum Serenity beacon chain fork-choice rule based on Casper Proof of Stake finality.
Package blockchain defines the life-cycle and status of the beacon chain as well as the Ethereum Serenity beacon chain fork-choice rule based on Casper Proof of Stake finality.
core
blocks
Package blocks contains block processing libraries.
Package blocks contains block processing libraries.
epoch
Package epoch contains epoch processing libraries.
Package epoch contains epoch processing libraries.
helpers
Package helpers contains helper functions outlined in ETH2.0 spec beacon chain spec
Package helpers contains helper functions outlined in ETH2.0 spec beacon chain spec
state
Package state implements the whole state transition function which consists of per slot, per-epoch transitions.
Package state implements the whole state transition function which consists of per slot, per-epoch transitions.
validators
Package validators contains libraries to shuffle validators and retrieve active validator indices from a given slot or an attestation.
Package validators contains libraries to shuffle validators and retrieve active validator indices from a given slot or an attestation.
db
filters
Package filters specifies utilities for building a set of data attribute filters to be used when filtering data through database queries in practice.
Package filters specifies utilities for building a set of data attribute filters to be used when filtering data through database queries in practice.
iface
Package iface exists to prevent circular dependencies when implementing the database interface.
Package iface exists to prevent circular dependencies when implementing the database interface.
kv
Package forkchoice implements the service to support fork choice for the eth2 beacon chain.
Package forkchoice implements the service to support fork choice for the eth2 beacon chain.
protoarray
Package protoarray implements proto array fork choice as outlined: https://github.com/protolambda/lmd-ghost#array-based-stateful-dag-proto_array This was motivated by the following light house implementation: https://github.com/sigp/lighthouse/pull/804
Package protoarray implements proto array fork choice as outlined: https://github.com/protolambda/lmd-ghost#array-based-stateful-dag-proto_array This was motivated by the following light house implementation: https://github.com/sigp/lighthouse/pull/804
Package node defines the services that a beacon chain node would perform.
Package node defines the services that a beacon chain node would perform.
operations
slashings
Package slashings defines the operations management of slashings.
Package slashings defines the operations management of slashings.
voluntaryexits
Package voluntaryexits defines the operations management of voluntary exits.
Package voluntaryexits defines the operations management of voluntary exits.
p2p
Package p2p implements the Ethereum 2.0 networking specification.
Package p2p implements the Ethereum 2.0 networking specification.
connmgr
Package connmgr : This file is forked from github.com/libp2p/go-libp2p-core/connmgr/connmgr.go
Package connmgr : This file is forked from github.com/libp2p/go-libp2p-core/connmgr/connmgr.go
encoder
Package encoder allows for registering custom data encoders for information sent as raw bytes over the wire via p2p to other nodes.
Package encoder allows for registering custom data encoders for information sent as raw bytes over the wire via p2p to other nodes.
peers
Package peers provides information about peers at the Ethereum protocol level.
Package peers provides information about peers at the Ethereum protocol level.
Package powchain defines the services that interact with the ETH1.0 of Ethereum.
Package powchain defines the services that interact with the ETH1.0 of Ethereum.
rpc
Package rpc defines the services that the beacon-chain uses to communicate via gRPC.
Package rpc defines the services that the beacon-chain uses to communicate via gRPC.
testing
Package testing is a generated GoMock package.
Package testing is a generated GoMock package.
Package sync TODO(3147): Add details on how sync works.
Package sync TODO(3147): Add details on how sync works.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL