Validators are responsible for securing the xDai stable chain. Validator responsibilities include maintaining a functional node with constant uptime, providing STAKE as collateral, and providing decentralization to the protocol. In exchange for this service, validators receive block rewards and transaction fees (As chain usage grows, these fees may be redirected to support additional aspects of the protocol).
To become a validator on the xDai stable chain, you must first become a candidate. Each staking epoch, 19 candidate pools are chosen to act as validators for that epoch. If there are 19 or fewer active candidates, then all active pools are selected. If there are more than 19, selection is based on total stake in the pool + a random number. See this article for more info on weighting and randomness.
1) Create (or use addresses you have access to) 2 Ethereum addresses. One will be used for mining, and a second for staking. Addresses are the same on xDai & Ethereum, so can be generated in a normal manner.
2) You will need the minimum candidate stake amount of STAKE (2,000 STAKE) on xDai and a small amount of xDAI deposited to your address on the xDai chain. Deposit these to your staking address (an 0x external address). You will use to access the protocol.
3) In addition to your regular staking address, you will need a separate mining address. This will be configured to an OpenEthereum or Nethermind node. Generate and save the JSON keystore file (and be sure to save the password in a safe place!) See below to generate keystore, or use MEW or MyCrypto.
openethereum account new --keys-path <path_to_save_json_keystore>
4) Once your staking address is funded and your mining address is created, go to BlockScout and select Staking on xDai from the Apps Dropdown menu.
5) Connect your web3wallet (Metamask/Nifty) to the xDai chain with your Staking Address
Login to the Staking App in BlockScout. Once connected, you should see your address and STAKE balance in the site banner. If you are a delegator, you will also see information related to any STAKE already in use (staked or ordered for withdrawal).
Click the Become a Candidate button.
6) A modal will appear where you enter the amount of your initial STAKE (2,000 minimum - you can add more now as well or more at a later time ) and the mining address of your node. You will also enter the Pool Name and Short Description (optional) which will be displayed in the staking interface.
7) Once you've filled the information in the modal, click Become a Candidate. Submit and complete the transaction through the web3 wallet interface using your staking address.
8) If successful, your pool will appear in the Active Pools tab of the staking Dapp. You will be eligible to join the next staking epoch.
9) Let the team know you are an active candidate in the discord channel for validator candidates. They will provide you with additional information to setup your mining node correctly.
10) Setup your node following instructions from the New Validator Process Flow Section for the client you will use.