Published on: May 25th 2020
Enroll your staking pool, receive your delegation, and maintain your validator status! This challenge is designed to learn how to keep track of your validator, and make your delegators happy.
- Enroll your staking pool
- Receive your delegation
- Check your validator status
- Collect your fees!
As soon as you completed the Stake Wars Challenge 001, your node is ready to be on the roster of Stake Wars, and receive your first delegation.
The process will need some basic expertise with git
. Follow the instructions in the file VALIDATORS.md, and submit a pull request to the branch update-validators-list
.
NEAR team, and other Stake Wars participants, will keep an eye on the validators who deployed the staking pool, and will delegate some tokens to the ones of their choice. At the moment of writing, the cost of a validator seat on BetaNet is higher than 70,000 $NEAR, and there are only 100 seats available. With more than 120 validators already on the list (and growing), it will be difficult for you to attract delegation.
This step of the challenge requires that you have at least 100 tokens alread delegated to your staking pool. If you participated in the previous Stake Wars, and you already received BetaNet tokens in the past weeks, you can delegate all of them to your own pool.
Understand how to use the comamnd near delete-key
from near-shell, and lock on your staking pool. Otherwise your pool will be listed, but you will not receive any delegation.
To verify if your pool is locked, use the command near keys stakingPool_ID | grep length
. If the result is different than [length]: 0
, your pool is not locked.
You have five different ways to verify that your staking pool is successfully working, and you are a validator:
- Check on BetaNet block explorer
- Use the
near validators next | grep stakingPool_ID
on near-shell - Control the locked balance in your account, using
near state stakingPool_ID | grep locked
command - Check that
nearup
logs are displayng an uppercase "V" - A query to the JSON RPC using the
validator
endpoint
Visit the betanet explorer and check that your staking transaction succeeded:
Use the command near validators current
and near validators next
to know who is currently running the network, a who will join next. The command near validators next | grep stakingPool_ID
will show if your node will keep its seat in the next epoch.
Use near validators next | grep 'seat price'
to know how big is the stake to become a validator.
Use the command near state stakingPool_ID
to see the locked balance in your staking pool, and control if it is sufficient to earn a seat as a validator.
Nearup logs can show if you are a validator or not. The V/71
below shows that your node is one of the 71 validators running the network:
A combination of curl
and jq
can give you a trove of information about present and future validators:
curl -d '{"jsonrpc": "2.0", "method": "validators", "id": "dontcare", "params": [null]}' -H 'Content-Type: application/json' https://rpc.betanet.near.org -v | jq
Instead of using only jq
, add the filter jq .result.current_proposals
to see the staking transactions that are pending.
If you configured your pool correctly, and you control the pool owner wallet, you should be able to unstake and withdraw the fees collected by your pool. These fees will be listed as normal stake in the account used as the owner of the staking pool.
Use the command near view stakingPool_ID get_account_total_balance '{"account_id": "account_ID"}' --accountId=account_ID
to see the balance of the pool owner, and call the delegator functions to unstake and withdraw your funds.
Always check that your stakingPool_ID
and your validator node use the same ID and public_key. Otherwise, you will receive your delegation, your validator will receive a seat, but your node will not be able to create blocks!
With the command near validators current | grep ' 0%'
you see those validators who got a seat, but generated 0% of the blocks. This means they will be kicked out in the next epoch (as you can see in near validators next | grep 'Kicked'
), and their delegators will lose rewards.
Use the command cat ~/.near/betanet/validator_key.json | grep 'public_key\|account_id'
and verify they are exactly the same of the values in current proposals (see 3.5
above). NEAR team (and other delegators) will unstake their tokens if you misconfigure your pool and you produce 0 blocks.
Do you want to earn extra tokens? We have contribution opportunities available below!
Reply to the challenges application thread on Github specifying:
- which contribution you want to do, and the link to the challenge
- the type of document you will release
- the date when you will publish the content (you can postpone a few days, no worries)
Once your work is done, you will be added to the list below. Please note that rewards in tokens will need to pass basic KYC checks from NEAR Foundation, and comply with regulations.
Abstract | Description | Contributor | Date | Link | NEAR Tokens | Maintenance | Languange |
---|---|---|---|---|---|---|---|
Enroll your node | Create a tutorial, in the form of a video, a blogpost or Github document, that shows how to do a pull request to the VALIDATORS.md file, lock your contract, delegate some tokens, become a validator, and check that your pool and your node are correctly configured. Contributions in other languages are encouraged, but considered on a case by case basis. Updates to this guide, reflecting any updates of the tools involved, will be paid a % of the initial bounty per each revision, up to once per month, until Stake Wars is over. | @georgec138 | Jun 11 2020 | Github | 1,000 | 10% | CN |
Enroll your node | Same as above | @bonsfi | Jun 15 2020 | Github | 1,000 | 10% | ES |
Enroll your node | Same as above | @wjdfx | Jun 15 2020 | Jianshu | 1,000 | 10% | CN |
Enroll your node | Same as above | @dreamstaker | Jun 23 2020 | Medium | 1,000 | 10% | EN |
Manage the pool | Create a tutorial, in the form of a video, a blogpost or Github document, that shows how to update the parameters of the staking pool, such as the fees and the validator key. Show also how to collect the fees and unstake them. Contributions in other languages are encouraged, but considered on a case by case basis. Updates to this guide, reflecting any updates of the tools involved, will be paid a % of the initial bounty per each revision, up to once per month, until Stake Wars is over. | @wjdfx | Jun 15 2020 | Jianshu | 1,000 | 10% | CN |
Manage the pool | Same as above | @narniec | Jun 16 2020 | Github | 1,000 | 10% | RU |
Monitor uptime | Create a tutorial, in the form of a video, a blogpost or Github document, that shows how to automatically check the performance of your validator node, such as creating reports (per epoch, per day) and sending alerts via chat-bots or SMS if your node is stuck/kicked out and needs attention. Contributions in other languages are encouraged, but considered on a case by case basis. Updates to this guide, reflecting any updates of the tools involved, will be paid a % of the initial bounty per each revision, up to once per month, until Stake Wars is over. | @marco-sundsk | Jun 13 2020 | Github EN, CN | 1,000 | 10% | EN, CN |
Monitor uptime | Same as above | @wjdfx | Jun 15 2020 | Jianshu | 1,000 | 10% | CN |
Use Ledger Nano S | Create a tutorial, in the form of a video, a blogpost or Github document, that shows how to run near shell with your Ledger Nano S, from the seed key creation, to its backup and restore, to the delegation of funds to a staking pool. Contributions in other languages are encouraged, but considered on a case by case basis. Updates to this guide, reflecting any updates of the tools involved, will be paid a % of the initial bounty per each revision, up to once per month, until Stake Wars is over. |
@wjdfx | Jun 15 2020 | Jianshu | 1,500 | 10% | CN |
Monitor your node health, and setup automated email alerts: challenge003
Create your BetaNet wallet, deploy your node, and correctly configure your staking pool: challenge001