lighthouse/scripts/local_testnet
Paul Hauner 8bc82c573d
Update local testnet scripts, fix eth1 sim (#1184)
* Update local testnet scripts

* Add logs when decrypting validators

* Update comment

* Update account manager

* Make random key generation explicit

* Remove unnecessary clap constraint

* Only decrypt voting keypair for eth1 deposit

* Use insecure kdf for insecure keypairs

* Simplify local testnet keygen

* Update local testnet

* Fix eth1 sim

* Add eth1 sim to CI again

* Remove old local testnet docs

* Tidy

* Remove checks for existing validators

* Tidy

* Fix typos
2020-05-26 18:30:44 +10:00
..
beacon_node.sh Update local testnet scripts, fix eth1 sim (#1184) 2020-05-26 18:30:44 +10:00
clean.sh Update local testnet scripts, fix eth1 sim (#1184) 2020-05-26 18:30:44 +10:00
README.md Update local testnet scripts, fix eth1 sim (#1184) 2020-05-26 18:30:44 +10:00
reset_genesis_time.sh Update local testnet scripts, fix eth1 sim (#1184) 2020-05-26 18:30:44 +10:00
second_beacon_node.sh Update local testnet scripts, fix eth1 sim (#1184) 2020-05-26 18:30:44 +10:00
setup.sh Update local testnet scripts, fix eth1 sim (#1184) 2020-05-26 18:30:44 +10:00
validator_client.sh Update local testnet scripts, fix eth1 sim (#1184) 2020-05-26 18:30:44 +10:00
vars.env Update local testnet scripts, fix eth1 sim (#1184) 2020-05-26 18:30:44 +10:00

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

Start the first beacon node:

./beacon_node

In a new terminal, start the validator client which will attach to the first beacon node:

./validator_client

In a new terminal, start the second beacon node which will peer with the first:

./second_beacon_node

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 debug
./beacon_node trace
./second_beacon_node warn

Starting fresh

Delete the current testnet and all related files using:

./clean

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

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 && ./setup.