Atlas is a chain that utilizes the Proof of Stake (POS) consensus algorithm. Here's how it works:
Stake MAPO to become a validator
Validators vote to select the validators for each epoch's validation block
At the end of each epoch, rewards are distributed based on the voting results
Prerequisites
Hardware Requirements:
Machine Configuration MAP is a Proof of Stake network with different hardware requirements compared to Proof of Work networks. Proof of Stake consensus is less CPU-intensive but more sensitive to network connectivity and latency. Here is a standard requirement list for running a validator on the MAP network:
Memory: 16GB RAM
CPU: Quad-core 2.5 GHz (64-bit)
Disk: 256GB SSD storage with an additional auxiliary HDD
Network: At least 100Mb input/output Ethernet with fiber internet connection, ideal redundancy connections, and HA switches
Amount of MAPO Your account needs to have at least 1,000,000 MAPO.
Software Requirements
Building Atlas requires git, Go (version 1.14 or higher), and a C compiler. You can install them using your preferred package manager.
How to become a new validator
To ensure the security of your assets, we require you to set up some necessary identity verification parameters to become a validator. We also have corresponding thresholds to filter out those who are truly committed to contributing to the chain. Of course, we will reward those individuals accordingly. The following steps are considered your initial setup as a validator, as you only need to perform these steps once to become a validator. You do not need to perform these steps a second time unless you unregister as a validator or cancel the corresponding operation to avoid wasting your gas fees.
Step 1: Create Account
In this step, you need to store your identity information in the corresponding management contract, which will manage your account, keys, and metadata. The purpose of this step is to ensure the security of the locked MAPO by authorizing alternative keys for signing proofs, voting, and validation. By doing so, you can continue to participate in the protocol while maintaining access to the keys that store your locked MAPO. You need to use the createAccount command to perform the above operations. For more detailed information about the createAccount command, please refer to here.
Step 2: Authorization
Authorize an address to sign consensus messages on behalf of your account. This authorized address is called the signer. As the name suggests, the signer is only responsible for signing, and your rewards will not be issued to the signer but to the account created in the previous step.
Step 3: Lock MAP
The threshold for becoming a validator is to lock 1,000,000 MAPO into the corresponding management smart contract. This locked MAP will be used for future penalties and is one of the conditions for election. You need to use the LockedMAP command to perform the above operation. For more detailed information about the LockedMAP command, please refer to here.
Step 4: Validator Registration
This step is a key step in registering as a new validator. You need to use the register command to perform the above operation. For more detailed information about the register command, please refer to here. At this point, you will have successfully registered as a validator. Next, you can try to vote for yourself. For more information on how to vote, please refer to here.
Step 5: Voting
A validator must have at least 0.001 proportion of the total votes to be considered for election. Therefore, a validator cannot have zero votes. We can either vote for ourselves using our validator account or have other validators or voters vote for us. Since we have locked 1,000,000 MAP in Step 3, it is wise to vote for ourselves.
Example
Start Your Node
Before starting the node, you need to build Atlas. Please refer to here for instructions on how to build Atlas.
You will need two keystore files, one for the account used for staking, called account, and one for the signer used for signing consensus blocks.
If you want your Atlas node to run in the background without hanging, you can use a combination of nohup and &, or tools like screen. Below, we will demonstrate using screen.
account.json: keystore file for the account signer.json: keystore file for the signer
--miner.validator: specify the address of the signer --port 30321: make sure the port is open on the firewall
From the results, it appears that I have successfully voted for myself, but it's not enough. We need to call the RPC in the next epoch to ultimately determine if we have been selected as a validator eligible for block production. Here's how it looks: