Search…
Install SSV Node

1. Setup Hosting Server

Any cloud service that suit your needs is supported (see a reference example on AWS here).
When you setup your firewall, make sure to expose the ports that you set under "5. Set Configuration File" (Default are 12000 UDP and 13000 TCP).

2. Login with SSH

Windows

1
cd /{path to the folder to which the key pair file was downloaded}
2
3
ssh -i {key pair file name} [email protected]{instance public IP you took from AWS}
Copied!

MacOS

1
cd ./{path to the folder to which the key pair file was downloaded}
2
3
chmod 400 {key pair file name}
4
5
ssh -i {key pair file name} [email protected]{instance public IP you took from AWS}
Copied!

3. Installation Script

1
sudo su
2
3
$ wget https://raw.githubusercontent.com/bloxapp/ssv/main/install.sh
4
5
chmod +x install.sh
6
7
./install.sh
Copied!

4. Generate Operator Keys

Public key ("pk") and Secret key ("sk")
  • Your PK is required when you register your operator to the network.
1
docker run -d --name=ssv_node_op_key -it 'bloxstaking/ssv-node:latest' \
2
/go/bin/ssvnode generate-operator-keys && docker logs ssv_node_op_key --follow \
3
&& docker stop ssv_node_op_key && docker rm ssv_node_op_key
Copied!
PK Example
SK Example
LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBMDswYVdEK3RibndzYVdLYjF3UnEKM0xheW8rL1dSeGh3aVJ0aXFsL0dmZGozaHY0Unh5K1FwVzh6666RK1dJNmJ1VFc4bzN2ZmsydDMwNUlQRTdCVApZR3ZoS666MFNoYmlHVXVQcXpxQnVSTjB6OTUxV3VlcEJwV3RkeTdUaDVsT0w1cTQ3REFqbFFDdi95NlJLZzM5Ck9nTXZnZ1BaNTRNWHJZcFdINlJqa3hoVUxvWXQxTEVBN05pU3JHU3JqdGxCTlZiRHR5d666WFp0SnNkM2tjbTMKNkw0anZHd2I0RjhqTmlzSUU5eWFLd2J1SmV6dHpGdjY1YXRiV25hVFdzbmg1bDNrZ05uMlJLWktqZ1pycmRGdApuT2t3Vmh6M2JDRTFUZWpua1kwLzN4QTBIWjVONC9IUUF1Rit2TllYb040aDBicnVTdlVmZTBLTndvMDNFQ3l3Ckl3SURBUUFCCi0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0U
LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBMCswYVdEK3RibndzYVdLYjF3UnEzTGF5bysvV1J4aHdpUnRpcWwvR2ZkajNodjRSCnh5K1FwVzhFRUNRK1dJNmJ1VFc4bzN8YmsydDMwNUlQRTdCVFlHdmhKem4wU2hiaUdVdVBxenFCdVJOMHo5NTEKV3VlcEJwV3RkeTdUaDVsT0w1cTQ3REFqbFFDdi95NlJLZzM5T2dNdmdnUFo2VE1YcllwV0g2UmpreGhVTG9ZcwpxTEVBN05pU3JHU3JqdGxCTlZiRHR5d3lGWFp0SnNkM6gykTM2TDRqdkd3YjRGOGpOaXNJRTl5YUt3YnVKZXq0RnpGdjY1YXRiV25hVFdzbmg1bDNrZ05uMlJLWktqZ1pycmRGdG5Pa3dWaHozYkNFMVRlam5rWTAvM3hBMEhaNU4KNC9IU666Rit2TllYb040aDBicnVTdlVmZTBLTndvMDNFQ3l3SXdJREFRQUJBb0lCQUQvbW9XZjBvMlhLR1ZZWgpmcVlCMWZzQk43SkkwaEtUNHZMa2lBYVpaRzl6NlljUnV1aVZoZ2JzQjR5RENSWWd3Z0hCbTBTc1NFamFRY0pRCnF5MGpvTEJWTndtdDV1UWtMRDYyVXZhdGFJb1d2TVVrN2J2Z1dFMzgrZFlURDRNMmphVzdBSUZ2TG50eVBwOHkKT21FMDRLTUtiTnZHTDRHcWZ6dzdseVpwV2dEeTY0bWdkMk8rd21aZFNhdkR0TGNza666bHVSTEQxYklKVDQxSApwY3hKVk5qVmhFU3NGM1NGdXM4ZmpERXJiYmFQbnNTNWI3Z0hGUUJpZG5iYWhjOG5MOGFkT2M5Nks4a2FIWEFYCjJlSEloQitwSmdwUjU0bXY1bjZWTFljTUhXVTVyWE14emNicXQxVGFuMjI3MTA2NTRRQmIzY1ByT1V5UkI3REkKU1NEUzc0a0NnWUVBN1U4M0t4cWJpQy9mR2c4VUxMVjAzWktrOCtHWlNKZFlhN2ZnS2dXVCsvQjJLa2xPY2Y0TAoxcHYxMmlFbTdnVE5FYnNhaElpTm8wYlo5eEx2aG9NdTZoNSp
Please make sure to store and backup your operator secret key in a safe place and to not share it with anyone.

5. Create Configuration File

Fill all the placeholders (e.g. <ETH 2.0 node> or <db folder>) with actual values, and run the command below to create a config.yaml file.
1
$ yq n db.Path "<db folder>" | tee config.yaml \
2
&& yq w -i config.yaml eth2.Network "prater" \
3
&& yq w -i config.yaml eth2.BeaconNodeAddr "<ETH 2.0 node>" \
4
&& yq w -i config.yaml eth1.ETH1Addr "<ETH1 node WebSocket address>" \
5
&& yq w -i config.yaml eth1.RegistryContractAddr "0x687fb596F3892904F879118e2113e1EEe8746C2E" \
6
&& yq w -i config.yaml OperatorPrivateKey "<private key of the operator>"
Copied!
  • ETH1 node endpoint required to be websocket and not https to support subscription/notifications.
5.1 Debug Configuration
In order to see debug level logs, add the corresponding section to the config.yaml by running:
1
$ yq w -i config.yaml global.LogLevel "debug"
Copied!
5.2 Metrics Configuration
In order to enable metrics, the corresponding config should be in place:
1
$ yq w -i config.yaml MetricsAPIPort "15000"
Copied!

6. Start Node in Docker

6.1 Run the docker image in the same folder you created the config.yaml:

1
docker run -d --restart unless-stopped --name=ssv_node -e \
2
CONFIG_PATH=./config.yaml -p 13000:13000 -p 12000:12000 -v \
3
$(pwd)/config.yaml:/config.yaml -v $(pwd):/data -it \
4
'bloxstaking/ssv-node:latest' make BUILD_PATH=/go/bin/ssvnode start-node \
5
&& docker logs ssv_node --follow
Copied!

6.2 Update SSV Node Image

Kill running container and pull the latest image or a specific version
(bloxstaking/ssv-node:<version>)
1
$ docker rm -f ssv_node && docker pull bloxstaking/ssv-node:latest
Copied!
Last modified 4mo ago