|
||
---|---|---|
.. | ||
.gitignore | ||
README.md | ||
diff_genesis_vs_lighthouse.sh | ||
diff_genesis_vs_zcli.sh | ||
make_genesis.sh | ||
run_all.sh | ||
run_artemis.sh | ||
run_lighthouse.sh | ||
run_lodestar.sh | ||
run_nimbus.sh | ||
run_prysm.sh | ||
run_trinity.sh | ||
vars.sh |
README.md
This folder contains scripts for launching the nimbus beacon chain node in a configuration appropriate for interop.
Building
In general, follow the build instructions of nim-beacon-chain
as documented in the main repo - make sure to set up your build environment with all necessary system libraries as documented there:
Prerequisites
⚠️ To build nimbus, you need to have the go
compiler (for go-libp2p-daemon), rocksdb
and pcre
installed - see [../](main repo) for instructions.
# Clone repo
export GIT_LFS_SKIP_SMUDGE=1 # skip LFS
git clone https://github.com/status-im/nim-beacon-chain.git
cd nim-beacon-chain
make # prepare build system (cloning the correct submodules)
make update deps # build dependencies
Running
Look in the scripts for options - the default config is a small setup using the minimal
state spec.
cd multinet
# Create a new genesis 10s in the future
./make_genesis.sh
# You can now start the clients
./run_nimbus.sh
./run_trinity.sh
./run_lighthouse.sh
# Or do all in one step, with multitail
USE_MULTITAIL=1 ./run_all.sh
# The client scripts take optional arguments:
# ./script.sh <start_validator_num> <number_of_validators> <total_validators>
./run_nimbus.sh 0 20 40 # run nimbus with 20 validators, starting from 0, on a 40-validator network
Diagnostics
# Nimbus genesis state
less data/state_snapshot.json
# Lighthouse genesis state
curl localhost:5052/beacon/state?slot=0 | python -m json.tool | sed 's/"0x/"/' > /tmp/lighthouse_state.json
# Format nimbus the same
cat data/state_snapshot.json | python -m json.tool | sed 's/"0x/"/' > /tmp/nimbus_state.json
diff -uw /tmp/nimbus_state.json /tmp/lighthouse_state.json