Directories ¶
Path | Synopsis |
---|---|
Package beacon-chain defines all the utilities needed for a beacon chain node.
|
Package beacon-chain defines all the utilities needed for a beacon chain node. |
blockchain
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. |
core/epoch
Package epoch contains epoch processing libraries.
|
Package epoch contains epoch processing libraries. |
core/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 |
core/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. |
core/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. |
db/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. |
forkchoice
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. |
forkchoice/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 |
node
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. |
operations/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. |
p2p/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 |
p2p/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. |
p2p/peers
Package peers provides information about peers at the Ethereum protocol level.
|
Package peers provides information about peers at the Ethereum protocol level. |
powchain
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. |
rpc/testing
Package testing is a generated GoMock package.
|
Package testing is a generated GoMock package. |
sync
Package sync TODO(3147): Add details on how sync works.
|
Package sync TODO(3147): Add details on how sync works. |
contracts
|
|
endtoend
|
|
proto
|
|
bls
Package bls implements a go-wrapper around a library implementing the the BLS12-381 curve and signature scheme.
|
Package bls implements a go-wrapper around a library implementing the the BLS12-381 curve and signature scheme. |
bytesutil
Package bytesutil defines helper methods for converting integers to byte slices.
|
Package bytesutil defines helper methods for converting integers to byte slices. |
cmd
Package cmd defines the command line flags for the shared utlities.
|
Package cmd defines the command line flags for the shared utlities. |
debug
Package debug defines useful profiling utils that came originally with go-ethereum.
|
Package debug defines useful profiling utils that came originally with go-ethereum. |
featureconfig
Package featureconfig defines which features are enabled for runtime in order to selectively enable certain features to maintain a stable runtime.
|
Package featureconfig defines which features are enabled for runtime in order to selectively enable certain features to maintain a stable runtime. |
logutil
Package logutil creates a Multi writer instance that write all logs that are written to stdout.
|
Package logutil creates a Multi writer instance that write all logs that are written to stdout. |
mclockutil
Package mclockutil is a wrapper for a monotonic clock source
|
Package mclockutil is a wrapper for a monotonic clock source |
mock
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |
params
Package params defines important constants that are essential to the Ethereum 2.0 services.
|
Package params defines important constants that are essential to the Ethereum 2.0 services. |
roughtime
Package roughtime is a wrapper for a roughtime clock source
|
Package roughtime is a wrapper for a roughtime clock source |
sliceutil
Package sliceutil implements set operations for specified data type Currently types which are tested and supported are: []uint32 []int32 []string []float32 []uint64 []int64 []string []float64 Intersection, Union, Not , IsIn are the operations which are supported on slices
|
Package sliceutil implements set operations for specified data type Currently types which are tested and supported are: []uint32 []int32 []string []float32 []uint64 []int64 []string []float64 Intersection, Union, Not , IsIn are the operations which are supported on slices |
testutil
Package testutil defines the testing utils such as asserting logs.
|
Package testutil defines the testing utils such as asserting logs. |
This code was adapted from https://github.com/ethereum/go-ethereum/blob/master/cmd/geth/usage.go
|
This code was adapted from https://github.com/ethereum/go-ethereum/blob/master/cmd/geth/usage.go |
beaconclient
Package beaconclient defines a service that interacts with a beacon node via a gRPC client to listen for streamed blocks, attestations, and to submit proposer/attester slashings to the node in case they are detected.
|
Package beaconclient defines a service that interacts with a beacon node via a gRPC client to listen for streamed blocks, attestations, and to submit proposer/attester slashings to the node in case they are detected. |
detection
Package detection defines a service that reacts to incoming blocks/attestations by running slashing detection for double proposals, double votes, and surround votes according to the eth2 specification.
|
Package detection defines a service that reacts to incoming blocks/attestations by running slashing detection for double proposals, double votes, and surround votes according to the eth2 specification. |
tools
|
|
analyzers/errcheck
Package errcheck implements an static analysis analyzer to ensure that errors are handled in go code.
|
Package errcheck implements an static analysis analyzer to ensure that errors are handled in go code. |
blocktree
* * Block tree graph viz * * Given a DB, start slot and end slot.
|
* * Block tree graph viz * * Given a DB, start slot and end slot. |
bootnode
* * Bootnode * * A node which implements the DiscoveryV5 protocol for peer * discovery.
|
* * Bootnode * * A node which implements the DiscoveryV5 protocol for peer * discovery. |
bootnode-query
Bootstrap / DHT query tool Usage: bazel run //tools/boostrap-query -- $BOOTNODE_ADDRESS This tool queries the bootstrap / DHT node for peers then attempts to dial and ping each of them.
|
Bootstrap / DHT query tool Usage: bazel run //tools/boostrap-query -- $BOOTNODE_ADDRESS This tool queries the bootstrap / DHT node for peers then attempts to dial and ping each of them. |
contract-addr
* * This tool exists to serve currently configured contract address in k8s.
|
* * This tool exists to serve currently configured contract address in k8s. |
enr-calculator
This binary is a simple rest API endpoint to calculate the ENR value of a node given its private key,ip address and port.
|
This binary is a simple rest API endpoint to calculate the ENR value of a node given its private key,ip address and port. |
eth1exporter
Prometheus exporter for Ethereum address balances.
|
Prometheus exporter for Ethereum address balances. |
forkchecker
* * Fork choice checker * * A gRPC client that polls beacon node at every slot to log or compare nodes current head.
|
* * Fork choice checker * * A gRPC client that polls beacon node at every slot to log or compare nodes current head. |
interop/convert-keys
Used for converting keys.yaml files from eth2.0-pm for interop testing.
|
Used for converting keys.yaml files from eth2.0-pm for interop testing. |
relaynode
* * Relay node * * A simple libp2p relay node peers to connect inbound traffic behind a NAT or * other network restriction.
|
* * Relay node * * A simple libp2p relay node peers to connect inbound traffic behind a NAT or * other network restriction. |
This code was adapted from https://github.com/ethereum/go-ethereum/blob/master/cmd/geth/usage.go
|
This code was adapted from https://github.com/ethereum/go-ethereum/blob/master/cmd/geth/usage.go |
client
Package client represents the functionality to act as a validator.
|
Package client represents the functionality to act as a validator. |
db/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. |
internal
Package internal is a generated GoMock package.
|
Package internal is a generated GoMock package. |
node
Package node defines a validator client which connects to a full beacon node as part of the Ethereum Serenity specification.
|
Package node defines a validator client which connects to a full beacon node as part of the Ethereum Serenity specification. |
Click to show internal directories.
Click to hide internal directories.