4298efeb23
## Proposed Changes A couple of minor fixes to the testnet scripts. First, `clean.sh` only attempts to remove the directory if it exists. This ensures a good exit code even if the directory is not present. Second, `setup.sh` uses an updated deposit contract address to match that in the generated spec to allow the chain to start. |
||
---|---|---|
.. | ||
beacon_node.sh | ||
clean.sh | ||
README.md | ||
reset_genesis_time.sh | ||
second_beacon_node.sh | ||
setup.sh | ||
validator_client.sh | ||
vars.env |
Simple Local Testnet
These scripts allow for running a small local testnet with two beacon nodes and one validator client. This setup can be useful for testing and development.
Requirements
The scripts require lci
and lighthouse
to be installed on PATH
. From the
root of this repository, run:
cargo install --path lighthouse --force --locked
cargo install --path lcli --force --locked
Starting the testnet
Assuming you are happy with the configuration in var.env
, create the testnet
directory, genesis state and validator keys with:
./setup.sh
Start the first beacon node:
./beacon_node.sh
In a new terminal, start the validator client which will attach to the first beacon node:
./validator_client.sh
In a new terminal, start the second beacon node which will peer with the first:
./second_beacon_node.sh
Additional Info
Debug level
The beacon nodes and validator client have their --debug-level
set to info
.
Specify a different debug level like this:
./validator_client.sh debug
./beacon_node.sh trace
./second_beacon_node.sh warn
Starting fresh
Delete the current testnet and all related files using:
./clean.sh
Updating the genesis time of the beacon state
If it's been a while since you ran ./setup
then the genesis time of the
genesis state will be far in the future, causing lots of skip slots.
Update the genesis time to now using:
./reset_genesis_time.sh
Note: you probably want to drop the beacon node database and the validator client slashing database if you do this. When using small validator counts it's probably easy to just use
./clean.sh && ./setup.sh
.