BeaconKit is a modular framework for building EVM based consensus clients. 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.
Through utilizing the Ethereum Engine API BeaconKit supports the following execution clients:
- Bera-Geth: Official Go implementation of the Berachain protocol.
- Bera-Reth: Rust-based client focusing on performance and reliability.
Prerequisites:
Start by opening two terminals side-by-side:
Terminal 1:
# Start the sample BeaconKit Consensus Client:
make start
Terminal 2:
Note: This must be run after the beacond
node is started since make start
will populate the
eth-genesis file used by the Execution Client.
# Start an Ethereum Execution Client:
make start-reth # or start-geth
The account with
private-key=0xfffdbb37105441e14b0ee6330d855d8504ff39e705c3afa8f859ac9865f99306
corresponding with address=0x20f33ce90a13a4b5e7697e3544c3083b8f8a51d4
is
preloaded with the native EVM token.
Please refer to the Kurtosis README for more information on how to run a multinode local devnet.
beacond help
lists available commands. Some commands have sub-commands.
beacond init
creates a folder structure for beacond to operate in, along with initial configuration files, the important ones being app.toml
and config.toml
.
beacond start
starts the chain client and begins the syncing process.
The key configuration value is the Beacon chain specification ("chainspec") - analogous to an Eth genesis - is held in a spec.toml file. There are three well-known chainspecs (mainnet|testnet|devnet
). Or, a custom file can be provided to provide your own scenario's settings - see this example using Docker.
The chainspec is set with the --beacon-kit.chain-spec
command line option, and if necessary for a custom chainspec, use --beacon-kit.chain-spec-file
. If used during beacond init
, this value is written into app.toml and does not need to be specified anymore.
You can override the default operating directories for beacond with the --home <path>
option.
The Berachain Node Quickstart provides a quick deployment of mainnet or testnet on your desk.
For developing with beacon-kit, you have options:
- see the Makefile for targets to start stand-alone processes
- see an example deploying a team with Docker on a custom chainspec
- see a deployment with Kurtosis
- see an expect script that does a complete cycle of deposits, withdrawal, eviction, voluntary exit