Original Validator Guide

To become a validator of the StaFi ETH2.0 Staking contract, you need to deposit 8 ETH to generate one pool which will be allocated with stakers' funds automatically. When the amount of ETH in the staking pool reaches 32, the validator can start to stake in the Eth1.0 deposit contract. Finally, the validator needs to run an ETH2.0 node and wait for becoming an Ethereum official validator.

1.Deposit&Stake

1) Select "Validator" in the page,Learn the basic information of rETH validator on the Validator Deployment Process page, and click "Start".

2) Click "Deposit" button to deposit 8 ETH.

Please note that "8" ETH is default and cannot be changed. Estimated APR shows the annualized income estimated by the current system.

3) The page jumps to the Metamask wallet, this page shows the amount of deposited ETH and the Gas fee. Click “Confirm“.

Until the Deposit transaction is successful, the page will automatically jump to the stake page.

4) The Stake page displays the amount of ETH in validator's pool.

If the amount of ETH deposited by stakers is insufficient, the validator's staked 8 ETH shown here, the validator needs to wait;

If the amount of ETH deposited by stakers is sufficient, Then the ETH staked by stakers will be matched here to make up 32 ETH; when there are 32 ETH in the pool, validators can stake this ETH to Ethereum contract.

When the amount of ETH in the pool reaches 32, the validator needs to upload the deposit_data-*.json file, then click the "Stake" button. As for the deposit_data-*.json file generation you can refer the folllowing instruction.

5) Click "Pool status" to view the network data status, as shown in the second picture in detail:

Minted rETH: the amount of rETH minted.

Staked ETH: the amount of staked ETH.

Pool Contracts: The number of staking pool.

Unmatched ETH: The number of unmatched ETH.

Unmatched Validators: The number of unmatched validators.

Validator APR: current network OV(s) annualized rewards.

Staker APR: staker annualized rewards.

6) Validator could deposit another 8ETH into the pool to run another node. In addition, if an ETH account needs to deposit ETH multiple times, multiple pools will be generated, which can be switched here:

When stake is successful, you can check the status on the Status page:

2. Use deposit-cli to generate a key file

deposit-cli is a tool for creating EIP-2335 format BLS12-381 keystores and a corresponding deposit_data-*.json file for Ethereum 2.0 Launchpad.

  • Warning: Please generate your keystores on your own safe, completely offline device.

  • Warning: Please backup your mnemonic, keystores, and password securely.

Github

https://github.com/stafiprotocol/eth2.0-deposit-cli

Important! You should use master branch, please make sure to switch tomaster branch. git checkout master

And The mainnet does not support windows yet. Please use Linux or Macos or build with native Python

Linux or MacOS

Option 1. Download binary executable file

Step 1. Installation

macos:

wget https://raw.githubusercontent.com/stafiprotocol/stafi-bootstrap/master/eth2.0-deposit-cli/binary/mainnet/macos/deposit-darwin-amd64.tar.gz
tar zxvf deposit-darwin-amd64.tar.gz

linux:

wget https://raw.githubusercontent.com/stafiprotocol/stafi-bootstrap/master/eth2.0-deposit-cli/binary/mainnet/linux/deposit-ubuntu-18.04-x86_64.tar.gz
tar zxvf deposit-ubuntu-18.04-x86_64.tar.gz

Step 2. Create keys and deposit_data-*.json

./deposit new-mnemonic --num_validators=1 --mnemonic_language=english --chain=mainnet

You will see the following messages after successfully generated the keystore(s) and the deposit(s):

Creating your keys: [####################################] <N>/<N>
Creating your keystores: [####################################] <N>/<N>
Creating your depositdata: [####################################] <N>/<N>
Verifying your keystores: [####################################] <N>/<N>
Verifying your deposits: [####################################] <N>/<N>
Success!
Your keys can be found at: <YOUR_FOLDER_PATH>

Option 2. Build with native Python

Step 0. Build requirements

Step 1. Installation

git clone https://github.com/stafiprotocol/eth2.0-deposit-cli.git
cd eth2.0-deposit-cli/ && git checkout master
./deposit.sh install

Step 2. Create keys and deposit_data-*.json

./deposit.sh new-mnemonic --num_validators=1 --mnemonic_language=english --chain=mainnet

Note:

In validator_keys directory, you can see the two newly generated files, of which,

The deposit_data-*.json file must be uploaded when the validator stake ETH

The keystore-m*.json file is the information encrypted by the validator's private key. When validator runs the ETH2.0 client, it needs to be imported for voting or block signing.

3.Join ETH2 mainnet

  • To participate in the ETH2 mainnet network, read Prysm ETH2 Docs here.

1) System requirements

Minimum specifications

These specifications must be met in order to successfully run the Prysm client.

  • Operating System: 64-bit Linux, Mac OS X 10.14+

  • Processor: Intel Core i5–760 or AMD FX-8100 or better

  • Memory: 8GB RAM

  • Storage: 20GB available space SSD

  • Internet: Broadband connection

These hardware specifications are recommended, but not required to run the Prysm client.

  • Operating System: 64-bit Linux

  • Processor: Intel Core i7–4770 or AMD FX-8310 or better

  • Memory: 16GB RAM

  • Storage: 100GB available space SSD

  • Internet: Broadband connection

2) Install

Recommend Ubuntu18.04

Step 1: Get Prysm

mkdir prysm && cd prysm
curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh --output prysm.sh && chmod +x prysm.sh

Step 2: Run your beacon node

Note: is in the format of an http endpoint such as http://host:port (ex: http://localhost:8545 for geth) or an IPC path such as /path/to/geth.ipc.

./prysm.sh beacon-chain --http-web3provider=<YOUR_ETH1_NODE_ENDPOINT>

Step 3:Import your validator accounts into Prysm

Note: --keys-dir value needs to be replaced with the path where user validator_keys is located

./prysm.sh validator accounts import --keys-dir=$HOME/eth2.0-deposit-cli/validator_keys

Step 4:Run your validator

./prysm.sh validator

Step 5:Wait for your validator assignment

Please note that it may take from 5-12 hours for nodes in the ETH2 network to process a deposit. In the meantime, leave both terminal windows open and running; once the validator is activated by the ETH2 network, it will immediately begin receiving tasks and performing its responsibilities. If the eth2 chain has not yet started, the validator will be ready to start proposing blocks and signing votes as soon as the genesis time is reached.

To check on the status of your validator, we recommend checking out the popular block explorers: beaconcha.in by Bitfly and beacon.etherscan.io by the Etherscan team.