Run an SSV node.
Eth Docker supports running an SSV node, together with a consensus client and execution client of choice.
Setup Prerequisites
Get Eth Docker
- Clone this tool
git clone https://github.com/eth-educators/eth-docker.git ssv-node && cd ssv-node
On Linux
- Install docker, unless you already have it
- Run
./ethd install
- Run
On MacOS
- Install Docker Desktop and allocate 16 GiB of RAM and around 3TB of storage to it
- Install pre-requisites via homebrew
brew install coreutils newt bash
Setup an SSV Node
Run ./ethd config
and choose SSV Node in the first dialog:
The next question asks if the operator should be participating in DKG ceremonies. For more information, visit SSV official documentation on the subject.
Follow the instructions and finally, choose your preferred consensus and execution clients, and rapid sync for the consensus client. Choose Grafana for visibility.
The config script will create a config file, password and encrypted node key in ./ssv-config
.
Start everything with ./ethd up
.
You can watch logs with ./ethd logs -f ssv-node
, which will also give you the public key of your node.
Back up the contents of ./ssv-config
! If these are lost, you cannot recreate your node installation as registered
with ssv.network.
Right after startup, the ssv-node will fail because it cannot get to
http://consensus:5052
. This is normal! It will resolve once the consensus client has started and is listening on the REST API port. You can use./ethd logs -f consensus
to see it do that.
Mapping ports
By default, the SSV node uses ports TCP 13,001 and UDP 12,001 for its P2P network with other nodes. These ports need to be reachable from the Internet.
If you need to change the ports, you can do so by changing the SSV_P2P_PORT
and SSV_P2P_PORT_UDP
variables in
.env
, and changing the corresponding values in ssv-config/config.yaml
.
If you are running the node in a home network, you'll want to forward these ports, then test the TCP port. As long as the UDP port forward is set up the same way, you expect it to work, as well.
Grafana
Grafana dashboards are included.
Please see the secure proxy docs if you'd like to run Grafana on a secured https port, rather than insecure 3000.
Debug logs
SSV writes debug logs into its docker volume. By default, these can be found in the
/var/lib/docker/volumes/eth-docker_ssv-data/_data
directory. sudo bash
gets you a root shell that has access.
Updating
When there is a new version of your execution client, consensus client or of the SSV node, just run ./ethd update
inside the ssv-node
directory, which will pull fresh images. Then when you are ready, run ./ethd up
to start using
the new version(s).