Validator Testing 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

Select "Validator" in page, and 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.

1)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.

2)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.

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 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.

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 pyrmont branch, please make sure to switch topyrmont branch. git checkout pyrmont

And The testnet 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/pyrmont/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/pyrmont/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=pyrmont

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 pyrmont
./deposit.sh install

Step 2. Create keys and deposit_data-*.json

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

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 testnet

  • To participate in the ETH2 testnet 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

./prysm.sh beacon-chain --http-web3provider=https://goerli.prylabs.net --pyrmont

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/eth2deposit-cli-ed5a6d3-linux-amd64/validator_keys --pyrmont

Step 4:Run your validator

./prysm.sh validator --pyrmont

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.

To check on the status of your validator, you can checking out the popular block explorers:

pyrmont.beaconcha.in .