-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
4a56d76
commit 6355817
Showing
1 changed file
with
59 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,61 @@ | ||
# Dappnode Package SSV operator + DKG | ||
# SSV Dappnode Package | ||
|
||
SSV is a secure and scalable staking infrastructure powering the future of distributed ETH re/staking. | ||
The **SSV Network** (Secret Shared Validator) is a decentralized, open-source Ethereum staking network that enhances validator key security and network redundancy using **Distributed Validator Technology (DVT)**. This package allows you to run an **SSV Operator Node** along with its **DKG service** for distributed key generation, operating on either the Ethereum mainnet or the Holesky testnet. | ||
|
||
You can register and manage your operator here in the [SSV app](https://app.ssv.network/join) | ||
### Services | ||
|
||
This package includes the following services: | ||
|
||
- **SSV Operator (`operator`)**: | ||
|
||
- The SSV Operator node is responsible for managing validator operations in a distributed setup. It uses a secret-shared key system to ensure security and redundancy across multiple operators. | ||
|
||
- The operator node interacts with both the execution and consensus layers of the Ethereum network. Configuration files for the operator are stored in `/data/operator/config`. | ||
|
||
- The operator runs behind the scenes using the `entrypoint.sh` script to handle key management, operator configuration, and node startup. Logs are stored in `/data/operator/logs`. | ||
|
||
- The **operator node** uses ports `12515` and `13515` for TCP/UDP communication, respectively. | ||
|
||
- **DKG Service (`dkg`)**: | ||
|
||
- The **Distributed Key Generation (DKG)** service is responsible for generating secure validator keys in a distributed way, ensuring that no single operator has access to the complete key. | ||
|
||
- This service communicates with the SSV network to securely create and manage the validator keys. Configuration files for DKG are stored in `/data/dkg/config` and logs in `/data/dkg/logs`. | ||
|
||
- The DKG service uses port `14515` for the Holesky testnet and `14516` for the mainnet. | ||
|
||
### Configuration | ||
|
||
- **Setup Wizard**: The package includes a setup wizard that allows for easy configuration during the first installation or when importing an existing operator configuration. There are two options: | ||
|
||
- **New Operator / Update**: Set up a new operator or perform a simple update to an existing one. | ||
- **Import Operator**: Import an existing operator by uploading the encrypted private key and password. | ||
|
||
- **DKG Configuration**: The DKG endpoint is automatically configured based on the network (mainnet or Holesky) and can be accessed through the respective public IP address: | ||
|
||
- For **Holesky**: `http://<your-public-ip>:14515` | ||
- For **Mainnet**: `http://<your-public-ip>:14516` | ||
|
||
- **Operator Registration**: After installing the package, retrieve the operator public key from the Info tab and register it on the [SSV Network](https://app.ssv.network/my-account/operator/edit-metadata). Follow the instructions in the SSV documentation to complete the registration process. | ||
|
||
### Script Integration | ||
|
||
- **Staker Tools Integration**: The `dvt_lsd_tools.sh` script is sourced from the `staker-package-scripts` repository. It is downloaded during the Docker build process using the release version specified in the `STAKER_SCRIPTS_VERSION` argument. This script manages staking-related tasks and is placed in `/etc/profile.d/`. | ||
|
||
- **Operator Initialization Scripts**: | ||
|
||
- Operator `entrypoint.sh`: Manages the initialization of the operator service, including key generation, configuration setup, and node startup. | ||
- DKG `entrypoint.sh`: Handles the setup and startup of the DKG service, ensuring that the operator keys are securely generated and stored. | ||
|
||
These scripts ensure proper startup and configuration of the operator and DKG services. | ||
|
||
### Backup and Restore | ||
|
||
The package supports backup and restore functionality for both the operator and DKG services: | ||
|
||
- **Operator Config**: The configuration and keys for the operator are stored in `/data/operator/config`. | ||
- **DKG Output**: The generated key shares from the DKG process are stored in `/data/dkg/output`. | ||
|
||
It's recommended to download a backup immediately after completing the operator registration to secure all critical files. | ||
|
||
For more detailed steps, please refer to the [SSV Network documentation](https://docs.ssv.network/learn/introduction). |