lighthouse/scripts/local_testnet
divma fdc6e2aa8e Shutdown like a Sir (#1545)
## Issue Addressed
#1494 

## Proposed Changes
- Give the TaskExecutor the sender side of a channel that a task can clone to request shutting down
- The receiver side of this channel is in environment and now we block until ctrl+c or an internal shutdown signal is received
- The swarm now informs when it has reached 0 listeners
- The network receives this message and requests the shutdown
2020-08-19 05:51:14 +00:00
..
beacon_node.sh Local testnet fixes (#1499) 2020-08-11 02:16:33 +00:00
clean.sh Update local testnet scripts, fix eth1 sim (#1184) 2020-05-26 18:30:44 +10:00
README.md Local testnet fixes (#1499) 2020-08-11 02:16:33 +00: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 Shutdown like a Sir (#1545) 2020-08-19 05:51:14 +00:00
setup.sh Local testnet fixes (#1499) 2020-08-11 02:16:33 +00:00
validator_client.sh Local testnet fixes (#1499) 2020-08-11 02:16:33 +00: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.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.