Validators
This page outlines the changes affecting existing and new validators:
- RPC API node software changes from Hyperledger Besu to Polygon Edge
- New staking process for validators
- Validator block reward changes
- How to to become a validator
Validators' stakes are set up on Ethereum (which requires MATIC). Validators receive staking rewards on Palm network in PALM tokens.
Palm is transitioning to become a L2, and the Polygon Edge software includes a built-in bridge relayer to Ethereum. The relayer node owned by Palm will submit these transactions and cover the Ethereum mainnet gas costs for these.
The system requirements for your node may vary from what was required for Hyperledger Besu. Please refer to the following which outlines the minimum and recommended specs for running the Polygon Edge node client:
Component | Minimum Requirement | Recommended |
Processor | 4-core CPU | 8-core CPU |
Memory | 8 GB RAM | 16 GB RAM |
Storage | 200 GB SSD [1] | 1 TB SSD |
Network | High-speed internet connection | Dedicated server with gigabit connection |
[1] As of August 2023, Palm Mainnet currently requires 150 GB of storage, so the minimum storage requirement may need to be adjusted accordingly
- Check out the branch palm-migration
- At the root of the repo run make build
- You now have a binary called polygon-edge at the root of the repo
- Copy this file where you plan to run the node
- Create a new empty directory that will serve as the data-dir for the node
- Copy the genesis file for the shadowfork to your data-dir and name it genesis.json. The file can be found in the repo at the root called genesis-testnet-shadowfork.json
Alternatively there are binary downloads available at https://github.com/gateway-fm/polygon-edge/releases
Docker images are also built alongside the binary releases and are available at gatewayfm/polygon-edge. Each version will have 3 tags assigned for the different environments, these are:
- testnet-[version]
- mainnet-[version]
- testnet-shadowfork-[version]
Please ensure you use the correct tag for your environment as the genesis file is contained inside the image for each environment.
To prepare your environment for running the node you will need to ensure the following ports are configured:
- 8545 - JSON RPC - can be left closed if you don't intend on exposing the RPC
- 9632 - GRPC (for intercommunication between the validators) - this will need to be open for validators although an IP whitelist configured at the firewall level is recommended
- 30302 - devp2p port - needs to be open to join the old Besu network
- 30301 - libp2p port - needs to be open to allow discovery on the libp2p network
- 30401 - egress needed to communicate with the Besu node (better yet, have all egress available as this port could change)
To keep the network healthy and producing blocks at the correct rate you should keep your node active and connected to the network at all times, failing to do so will cause the network to increase the round count and choose another validator slowing down block production. The validator nodes are also slower to catch up to the tip of the chain so at a minimum you should not let your node be inactive for more than 5 minutes.
Monitoring the latest block and checking the timestamp to determine how far behind your node is can be useful to see if block production has halted for any reason and prompt an investigation into the node. There is also a healthcheck endpoint to ensure that the node is alive available at http://your-address:8545/health a GET request to this endpoint will return a status 200 response with a body of OK if the node is healthy.
Upgrading the version of Polygon Edge is a simple procedure. Build the new binary and replace the existing version with this new binary and restart the node with the same flags as before.
As Palm network transitions to Proof-of-Stake, validators are required to stake 1 MATIC with the stake manager contract on Ethereum - see below for the instructions. Validators receive a portion of the epoch reward for each signed block in the epoch, the reward pool is 246.4 PALM per epoch (2160 blocks) on the Palm network. This keeps rewards in line with the existing setup using IBFT consensus. A 6 month supply of PALM is premined at the fork point to cover validator rewards.
Validators can use the private keys associated with their nodes to retrieve the PALM from the accounts (e.g. by importing them to MetaMask).
Since the start of the Palm network 13,478,746 blocks have been created at the time of writing (Sept 11, 2023) with a block reward of 0.114085402 PALM. This has increased the initial 1bn supply by 1,537,728
Bad actors, or validators who's nodes aren't meeting the uptime requirements of the network, can have their stake slashed to 0 effectively removing their voting power and removing them as a validator from the network
The two important contract addresses for the rootchain can be found in the genesis file in the engine > polybft > bridge section. These are:
- customSupernetManagerAddr
- stakeManagerAddr
- stakeTokenAddr
The Palm Foundation will help co-ordinate the process of becoming a new validator. Please contact them here:
Syncing to the tip of the chain will help when you join the network as a validator as you won't be asked to produce a block that is higher up the chain than your current position, and will keep the network producing blocks at the correct rate.
Request to be added to the validator whitelist. At which point the network owner will run a command on the rootchain enabling your account to stake and register as a validator. Once you have received notification that this has been done you can progress to step 3.
The validator is now staked and can launch their node to become an active participant in the network.
Congratulations! you are now running a validator node on the Palm supernet.
Rewards per epoch are held the reward pool smart contract. To remove your rewards and transfer these to your account you can run the following command.
