charon

command module
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2022 License: Apache-2.0 Imports: 2 Imported by: 0

README

Obol Logo

Charon - The Distributed Validator middleware client

This repo contains the source code for the distributed validator client Charon; a HTTP middleware client for Ethereum Staking that enables you to safely run a single validator across a group of independent nodes.

Charon is accompanied by webapp called the Distributed Validator Launchpad, for distributed validator key creation.

Charon is used by Enterprises and DAOs to distribute the responsibility of running Ethereum Validators across a number of different running instances and client implementations.

Example Obol Cluster

A validator deployment that uses the Charon client to hedge client and hardware failure risks

Quickstart

The easiest way to get started is with the charon-docker-compose repo which contains a docker compose setup for running a charon cluster on your local machine.

If however, you want to build from source with this repo directly, you can get started with:

# Install go 1.17 or later (on mac with homebrew installed)
brew install go

# Build the charon binary
go build

# Run the charon command to generate a local simnet.
./charon --help
./charon gen-simnet
/tmp/charon-simnet/run_cluster.sh
Better simnet output

If you install tmux and teamocil, you will get the output of the nodes in different tmux panes when you run run_cluster.sh. Otherwise the output from all the nodes will be merged as the script output.

Documentation

The Obol Docs website it best place to get started. Import sections are the intro, key concepts and charon.

For detailed documentation on this repo, see the docs folder:

For source code documentation, there is always the charon godocs.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
app
Package app provides the top app-level abstraction and entrypoint for a charon DVC instance.
Package app provides the top app-level abstraction and entrypoint for a charon DVC instance.
errors
Package errors provides errors with structured fields and stack traces.
Package errors provides errors with structured fields and stack traces.
lifecycle
Package lifecycle provides a life cycle manager abstracting the starting and stopping of processes by registered start or stop hooks.
Package lifecycle provides a life cycle manager abstracting the starting and stopping of processes by registered start or stop hooks.
log
Package log provides global logging functions to be used throughout the charon app.
Package log provides global logging functions to be used throughout the charon app.
tracer
Package tracer provides a global OpenTelemetry tracer.
Package tracer provides a global OpenTelemetry tracer.
z
Package z provides an API for structured logging fields by wrapping zap.Field.
Package z provides an API for structured logging fields by wrapping zap.Field.
Package cmd implements Charon's command-line interface.
Package cmd implements Charon's command-line interface.
bcast
Package bcast provides the core workflow's broadcaster component that broadcasts/submits aggregated singed duty data to the beacon-node.
Package bcast provides the core workflow's broadcaster component that broadcasts/submits aggregated singed duty data to the beacon-node.
sigagg
Package sigagg provides the sigagg core workflow component that aggregates *threshold* partial signed duty data objects into an aggregated signed duty data object ready to be broadcasted to the beacon chain.
Package sigagg provides the sigagg core workflow component that aggregates *threshold* partial signed duty data objects into an aggregated signed duty data object ready to be broadcasted to the beacon chain.
validatorapi
Package validatorapi defines validator facing API that serves the subset of endpoints related to distributed validation and reverse-proxies the rest to the upstream beacon client.
Package validatorapi defines validator facing API that serves the subset of endpoints related to distributed validation and reverse-proxies the rest to the upstream beacon client.
tblsconv
Package tblsconv provides functions to convert into and from kryptology bls_sig types.
Package tblsconv provides functions to convert into and from kryptology bls_sig types.
Package testutil provides test utilities.
Package testutil provides test utilities.
beaconmock
Package beaconmock provides a mock beacon node server and client primarily for testing.
Package beaconmock provides a mock beacon node server and client primarily for testing.
genchangelog command
Command genchangelog provides a tool to generate a changelog.md file from a git commit range.
Command genchangelog provides a tool to generate a changelog.md file from a git commit range.
keystore
Package keystore provides functions to store and load simnet private keys to/from EIP 2335 compatible keystore files with "simnet" as passwords.
Package keystore provides functions to store and load simnet private keys to/from EIP 2335 compatible keystore files with "simnet" as passwords.
validatormock
Package validatormock provides mock validator client functionality.
Package validatormock provides mock validator client functionality.
verifypr command
Command verifypr provides a tool to verify charon PRs against the template defined in docs/contibuting.md.
Command verifypr provides a tool to verify charon PRs against the template defined in docs/contibuting.md.

Jump to

Keyboard shortcuts

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