- Get to know Prysm a bit
- Server with 4 (v)cpus & 8 gb memory & 250 gb storage
- geth
- beacon
- validator
- slasher
- prometheus
- grafana
All services are enabled by default.
In case you want to run only beacon & validator (geth, slasher, prometheus, grafana get disabled) move the ./compose-examples/prysm-only/override-examples/docker-compose.beacon-validator.override.yaml
file in the same folder as your docker-compose.yaml
and rename it to docker-compose.override.yaml
. Read up on docker-compose files & override to customize your setup further.
Configuration files are located in the folder ./config
. To gain a better connectivity for your beacon node you should specifiy your public ip and/or your dns name in ./config/prysm/slasher/beacon.yaml
. Follow the guide Improve Peer-to-Peer Connectivity.
Please complete the steps on launchpad and store the generated files of ~/eth2.0-deposit-cli/validator_keys
in ./launchpad
. The necessary directories need to be created. Please create the directories ./data/prysm/validator/wallets
and put your wallet password in ./data/prysm/validator/passwords/wallet-password
.
- Generate your validator(s) using launchpad and complete the process
- Copy your generated validator(s) from
~/eth2.0-deposit-cli/validator_keys
to./launchpad
- Run
docker-compose -f create-account.yaml run validator-import-launchpad
and use the same password as in the generation of the validator(s)
Repeat these steps as often as you like, restart your validator to make it notice your new accounts!
- Copy
exit-account.yaml
to the project's root directory (this directory) - Run
./prysm_validator_exit.sh public-key-of-your-validator
For instance: ./prysm_validator_exit.sh 0xabcde12345...
The "Expect" needs to be installed to execute prysm_validator_exit.sh
. Run apt-get install expect
to install expect
- Copy
delete-account.yaml
to the project's root directory (this directory) - Run
./prysm_validator_delete.sh public-key-of-your-validator
- Run
docker-compose stop validator
thendocker-compose up -d validator
to restart validator service
For instance: ./prysm_validator_delete.sh 0xabcde12345...
The "Expect" needs to be installed to execute prysm_validator_delete.sh
. Run apt-get install expect
to install expect
- Copy
list-account.yaml
to the project's root directory (this directory) - Run
docker-compose -f list-account.yaml run validator-list-accounts
Run with (as deamon with "-d")
docker-compose up -d
or run only certain services (in this case only beacon and validator)
docker-compose up -d beacon validator
Stop services (or everything) like this
docker-compose stop validator slasher
Shut down your services (or everything) like this:
docker-compose down
Please note: This will also erase your logs, they are stored with your containers and will be deleted as well.
Docker takes care of log files and log file rotation as well as limit (set to 10x100mb log files for each service). View logs of a certain service (in this case beacon, only the last 100 lines)
docker-compose logs --tail=100 beacon
Runs on http://localhost:9090, scrapes data of beacon, validator and slasher.
Grafana listens on http://localhost:3000 and uses the data provided by prometheus service.
Login with username admin
and password admin
(Grafana defaults), data source to Prometheus is already established and dashboards installed.
Runs on http://localhost:7500, a wallet is already created then signup with your web interface password.
If not, use Imported Wallet
option to import the your keystores & set your web interface password.
E. g. error messages like this:
WARN roughtime: Roughtime reports your clock is off by more than 2 seconds offset=4h0m0.345549475s
Make sure the OS' clock is synced. For Windows 10 and its subsystem linux might run on different times, to check this run wsl
and then date
(may differ by the OS you have installed).
Ask google on how to get your OS' time synced again.
Edit the line with http-web3provider
in ./config/prysm/slasher/beacon.yaml and set your Ethereum 1 node URL, e. g. use it with Infura.io and make it look like this: http-web3provider: "https://goerli.infura.io:443/v3/put-your-infura-id-here"
(make sure to use ""
for the url).