Help us shape the future of Go! Take the 2026 Go Developer Survey

beacon-kit

module
v0.1.0-experimental.2 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2024 License: MIT

README

beacon-kit

CI status CodeCov

A modular and customizable consensus layer for Ethereum based blockchains

What is BeaconKit

BeaconKit introduces an innovative framework that utilizes the Cosmos-SDK to create a flexible, customizable consensus layer tailored for Ethereum-based blockchains. The framework offers the most user-friendly way to build and operate an EVM blockchain, while ensuring a functionally identical execution environment to that of the Ethereum Mainnet.

First there was EVM Compatibility; next, EVM Equivalence; and now with BeaconKit, EVM Identicality.

Why BeaconKit?

TODO: Talk about Polaris / Ethermint compatibility issue.

Supported Execution Clients

Through utilizing the Ethereum Engine API BeaconKit is able to support all 5 major Ethereum execution clients:

  • Geth: Official Go implementation of the Ethereum protocol.
  • Erigon: Formerly known as Turbo-Geth, it is a more performant and feature-rich Ethereum client forked from go-ethereum.
  • Nethermind: .NET based Ethereum client with full support for Ethereum and other blockchain protocols.
  • Besu: An enterprise-grade Ethereum client developed under the Apache 2.0 license and written in Java.
  • Reth: A Rust-based Ethereum client, focusing on performance and reliability.

Documentation

BeaconKit leverages pkgsite for it's core documentation, you can run pkgsite locally and run a web-ui of the latest documentation:

make pkgsite

Running a Local Development Network

Prerequisites:

Start by opening two terminals side-by-side:

Terminal 1:

# Start the sample BeaconKit Consensus Client:
make start

Terminal 2:

# Start an Ethereum Execution Client:
make start-reth # or start-geth start-besu start-erigon start-nethermind

The account with private-key=0xfffdbb37105441e14b0ee6330d855d8504ff39e705c3afa8f859ac9865f99306 corresponding with address=0x20f33ce90a13a4b5e7697e3544c3083b8f8a51d4 is preloaded with the native EVM token.

Directories

Path Synopsis
async contains various utilities for asynchronous programming.
async contains various utilities for asynchronous programming.
dispatch
Package dispatch provides GrandCentralDispatch a system designed for managing concurrent code execution in BeaconKit.
Package dispatch provides GrandCentralDispatch a system designed for managing concurrent code execution in BeaconKit.
dispatch/queue
queue contains queue implementations for dispatching tasks via GrandCentralDispatch.
queue contains queue implementations for dispatching tasks via GrandCentralDispatch.
notify
notify contains a notification service used for in-app communication.
notify contains a notification service used for in-app communication.
Package beacon contains a series of packages that define the beacon chain logic and its state.
Package beacon contains a series of packages that define the beacon chain logic and its state.
core/signing
Code generated by fastssz.
Code generated by fastssz.
core/state
state defines the BeaconState interfaces and provides the functions for creating, modifying, and querying the state.
state defines the BeaconState interfaces and provides the functions for creating, modifying, and querying the state.
core/types
Code generated by fastssz.
Code generated by fastssz.
execution
execution defines a service that listens to the latest event logs from the validator deposit contract and the ETH 1.0 blockchain.
execution defines a service that listens to the latest event logs from the validator deposit contract and the ETH 1.0 blockchain.
beacond module
build
tools module
cli
cmd
contracts
abi
kzg
trie
Package trie defines utilities for sparse merkle tries for Ethereum consensus.
Package trie defines utilities for sparse merkle tries for Ethereum consensus.
db
e2e
engine
types
Code generated by fastssz.
Code generated by fastssz.
examples
beacond/cmd command
berad module
io
jwt
lib
abi
mod module
async module
beacon module
chain-spec module
cli module
config module
consensus module
core module
da module
errors module
execution module
interfaces module
log module
node-api module
node-builder module
node-core module
observability module
p2p module
payload module
primitives module
runtime module
server module
storage module
maxprocs
Package maxprocs automatically set GOMAXPROCS to match the Linux container CPU quota (if any), returning any error encountered and an undo function.
Package maxprocs automatically set GOMAXPROCS to match the Linux container CPU quota (if any), returning any error encountered and an undo function.
modules/beacon/api/module/v1alpha1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
modules/beacon/api/v1alpha1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
service
SPDX-License-Identifier: MIT
SPDX-License-Identifier: MIT
store
testing module

Jump to

Keyboard shortcuts

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