Pre-Mainnet
Summary
We provide any easy to use web hosted infrastructure as a service for validator operation. The interface controls fund management, validator setup, SSV Operator registration, ethereum validator operation including monitoring, support and rewards tracking.
1.) Ethereum Validator
Setup of ETH-1 node with automation
Setup of ETH-2 node with automation
Generate a validator key and store it safely with one click.
Staking as a validator.
Withdrawal (Full Exit) of the validator.
2.) Running Validator through SSV operator
Setup of 4 operator nodes with automation
Register operator to SSV with private operator functionality
Distribute validator Keys
Register Validator on SSV
Remove Validator Functionality
3.) Managing Validator and SSV operator data in a single Dashboard
operator performance, Deposit, Withdrawal, No of Validator, No of the operator, their status, , Balance, etc.
Rewards-1D, 7D, 30D, and Total rewards.
We provide all these facilities on our Coindelta’s Staking Platform also we are using AWS services to store user data and Validator Keys securely.
What's new in Pre-Mainnet SSV Coindelta's webapp?🆕
Web-UI improvements
Fund section
Total reward by the fund
Click to view validator keys for the fund
Added Rewards section
Reward Details for Active and Exited Validator
Added Validator Withdrawal section
Validator Voluntary exit functionality
Timeline tracker for exited validator
Added Notifications
Added User Management section
What's new in Pre-Mainnet SSV Infrastructure and Automation?
Productionization
We have modified our code in such a way that after the launch of the SSV mainnet, we will provide mainnet infrastructure to the client in order to run a validator on the SSV network. Additionally, we will also provide an option to set up testnet for functionality testing.
We have configured a universal pipeline in which we have segregated the code of mainnet(i.e. prod) and testnet(i.e non-prod) so that we can run any of them with ease pertaining to the client’s will.
Monitoring
Here, we have executed the dashboard facility in a way that there will be only a single dashboard for each Geth, Prysm, and SSV of all the regions. Rather, previously we had separate dashboards for separate regions. We have to build a separate infrastructure for monitoring the server’s CPU, memory, disk, etc, and also a single dashboard where tall the server’s system information will be displayed.
Alerting
Here, we would be able to gather the data specified on the dashboard i.e. peers count, and uptime so that whenever a disaster or any catastrophic event occurs it will automatically alert through notification on the discord channel. Afterward, when the issue will be resolved from our side. With this, the notification will be sent in the discord channel which contains the link to the dashboard in both cases, either when the disaster occurs or when the issue is resolved.
We have implemented alerting rules on some important data and sent the notification in the discord channel after triggering the alarm. The alerting rules are as follows.
CPU - We have set up 2 alarms for CPU consumption. So the first alarm is just an intimation alert on a 50% threshold and the second alarm will trigger after CPU consumption will go above 70%.
Memory - For memory consumption also we have setup 2 alarms so the first alarm will trigger 60% of the threshold value and the second alarm will trigger 70% of the threshold value.
Disk - For disk consumption, we have set only one alarm and it will trigger on the disk consumption will go above 80%.
Node Status - We are showing the status of the service in our dashboard and if it goes down it will trigger the alarm and send the notification in the discord channel.
Peers - Peer-to-peer connections in the network are very important. A minimum of 5 connections is a good indication so we have set an alert that if the threshold goes below 5 peers it will trigger the alarm.
RPC
We have created our own RPC endpoints for ETH1 and ETH2 respectively and we are using the ETH1 RPC endpoint for calling the smart contract function from the backend.
Userflow of Coindelta staking service.
For a better understanding of the Coindelta Staking service, we have split it into five sections.
SSV CoinDelta staking service🏦
Steps to use:-
Use this URL https://www.ssv.testnet.beta.m2.coindelta.io/ to login into the SSV Coindelta webpage.
After login user needs to connect the metamask wallet to use the SSV CoinDelta’s service. so click on the ‘Connect Wallet’ button.
The user is advised to use only one wallet address because this wallet address will be used throughout the application for registering the operators, and validators and performing all transactions, it cannot be changed.
After Connecting to the metamask wallet user needs to register their operator to ssv, and for that click on "Operator" on the sidebar
On the operator page user registers 4 operators one by one.
For that click on the register button and then submit and confirm the transaction through the wallet.
Repeat all these steps to register for the remaining 3 operators.
After registering the operator next step is to privatize the operator for that user needs to whitelist all 4 operators.
for whitelisting operators, click the whitelist button and confirm the transaction on the metamask wallet.
After completing all operator's registration, the operator page will look like below.
After Completing all operator registration and whitelisting the process, the operator page will look like the above. It shows all details related to an operator like the operator's Name, ID, Status, Validator, and Actions.
The next part is "Create Fund"
After registering and whitelisting the operator, the next step is creating a fund.
Now, the user needs to click the Create Fund button to create a fund, enter the amount, and add it.
The fund will be active after generating a validator key using that fund.
Now the next part is for Validator
In this part, the user can create validator keys, Deposit 32 ETH into the validator, and Register it with SSV.
For that click on Validator on the sidebar.
Then click on Generate Validators key and fill in details like selecting the fund which we had generated in step 4, the no. of validator, and the Password.
For the password, the SSV Coindelta application provides strong password suggestions.
Generated keys will look like this in the Validator section…
Now Click on the Proceed button...
After Proceeding User needs to Click on Confirm deposit button and Complete the transaction for 32ETH through the wallet.
After a successful transaction, the status is updated to "Deposited". now the next step is to register this validator to SSV, for that click on the Register button.
The next step is the user needs to select the validator funding period and we are providing the user to select 1 month,3 months, and Custom period.
After choosing the validator funding period Click on the Next button...
Fee changes according to the number of days selected in the Custom Period field.
User needs to approve network fees and set limits to require the amount they want to spend on the SSV network.
For the security of the user's SSV tokens, SSV is providing approve functionality, which uses to set a spending limit for the user's SSV token balance. For example, if the user approves a limit of 5 SSV Tokens so it cannot be consumed more than 5 SSV tokens from the user's balance.
Now click on "Run Validator" and confirm the transaction through the wallet and after a successful transaction, your validator successfully registered to SSV.
Now, the user can see all the operator's and validator's data in Dashboard.
In the Dashboard, you can see Cluster balance, Operator performance, No of Validators, Validator Balance, and No of Operators.
Steps for Updating operator name.
Go to the operator section and click on the "Settings" button.
Now, click on the edit button, enter a name in the field, and click on "Change Name".
After confirming the signature on the wallet operator's name will be updated.
Withdrawals 💵
There are two types of withdrawals
Partial Withdrawal
When a validator's balance exceeds 32 ETH, additional funds earned as rewards can be withdrawn to a specified Ethereum address. There is a single withdrawal queue that will process the partial withdrawal. In each slot (every 12 seconds), 16 partial withdrawals, starting from index 0 will take place. if a validator has a balance in excess of 32 ETH, a partial withdrawal is performed by the automatic sweep. The validator will continue to be a part of the beacon chain and validate as expected.
Full Withdrawal
In the full withdrawal validator is decide to exit from the beacon chain and not to attest blocks and get back the fully staked amount. Full withdrawal process that involves exiting and no longer being a part of the Beacon chain. After the exit and withdrawal procedure is complete, the validator's entire balance, including rewards, will be unlocked and available for spending.
Workflow of "Full Exit" for validator by Coindelta Staking Service.
Stages of Full Exit
active_exiting - When the validator is still active, but filed a voluntary request to perform an exit.
exited - When the validator has reached the regular exit epoch, is not being slashed, and doesn't have to attest anymore, but cannot withdraw yet.
withdrawal_done - when the fund is transferred to the user's wallet address.
When the user performed a “Full Exit” operation the validator is going to the ‘Active_Exiting’ state, After the validator completely exited from the beacon chain it will be changed into ‘Exited’, at last when the total staked amount is transferred to user’s wallet and status will be changed into ‘Withdrawal_Done’
These processes are automated and it is done on the Beacon chain. (Based on Withdrawal queue and Epochs)
Steps for Full Withdrawal/Exit
Click on Withdrawal/Exit on Sidebar.
Next, Choose a validator key that you want to exit and click on the EXIT button.
Then, you can see a card with that validator public key and all exit warnings.
First, read all warnings and tick on the “I am aware of the "Full Exit" operation of validator, I read all of the warnings above and I want to continue."
Exit as a validator from the beacon chain is a non-reversible operation and you will not get further rewards from the beacon chain.
Once in the exiting state, you cannot re-activate your validator, otherwise, you would need to generate new validator keys and start staking again.
Click on the ' Exit Validator’ button and the Full withdrawal process is completed.
Usually, Performing the ‘Full Exit’ of the validator will take a few minutes (based on epochs) to reflect on the beacon chain.
After exiting from the Beacon Chain, it is advisable to wait for at least 3 epochs before performing a Remove Validator operation from the SSV Network to avoid the risk of slashing.
The next step is Remove Validator from SSV, click on the Remove Validator button, and Confirm the transaction from your wallet.
Reward Section 🎁
The Coindelta web application extracts the reward for the validator where the user can see all their active and exited validators rewards.
Users can check validators Current balance, 1D, 7D, 30D, and Total Rewards.
Also, the User can check "Total Rewards" By Fund in the Funds Section.
Monitoring🖥️
We have implemented Grafana monitoring to enhance service quality and efficiency. Grafana's powerful visualization capabilities provide real-time insights. We have leveraged Grafana's advanced capabilities to create visually appealing and informative dashboards. These dashboards provide a comprehensive overview of our system's performance, allowing us to monitor key metrics and trends effortlessly.
List of dashboards for monitoring.
ETH-1(Geth)
ETH-2(Prysm)
SSV Operator Node
Server Metrics(CPU,Memory,Storage,etc)
Alerting🛎️
We offer comprehensive alerting solutions powered by Grafana. we ensure proactive monitoring and timely response to any service-related issues. Our customized alerting system allows users to set up specific thresholds and notifications, enabling users to swiftly address critical events and maintain uninterrupted service delivery.
User Management 👥
SSV Coindelta web app provides a feature for the admin to change a role and Enable/Disable a role. In user management, There are 3 types of users.
Admin User
Regular User
View only User
Steps for Admin User to Enable/Disable user and Change role activity.
Click on Settings and you can see the user name, status, and Role
Next, click on the "Edit" button
For Enable/Disable user click on Disable button and it will be Disable user if its previous state is Enable.
For Change Role Activity Click on Change Role and select a User Role.
Click on "Change" and the user role will be changed successfully.
To know more about SSV Network Click here...
Parma links:
Team Members
Darshil Darji (Team lead & Node-Ops)
Anirudhdha Kulkarni (Dev-Ops)
Rahil Mansuri (Node-Ops)
Sachidanand Shah (Frontend Developer)
Hemanshi Dhrangdhriya (Backend Developer)
Last updated