Node Reward Program
The Node Reward Program is an initiative to incentivize Ardor and NXT users to set up more nodes to increase the decentralization of the network.
- Increase the number of open API nodes on both the Ardor and NXT networks.
- Encourage the upgrade of nodes to the latest version.
- Increase the overall number of permanent and stable online nodes.
How to Participate
To participate in the node reward program users need to set up a node with at least the peer port open to the Internet and a public and static IP address. If your node also has the API port open or it's an archival node it may be eligible for additional rewards. For up to date details follow the announcements about the program on official Jelurida channels. Please check the Getting Started section to set up your node. Make sure your node is correctly detected by the Ardor Peer Explorer or NXT Peer Explorer.
You can participate with as many nodes as you want as long as each node uses a different IP address. Notice that you can run both an Ardor node and an NXT node on the same server and IP address as they don't share ports. Note that the probability to win the reward is proportional to the time your node is online as detected by the Peer Explorer so make sure you keep your node online and working 24/7.
The program is available for both Ardor and NXT nodes but all rewards are paid in IGNIS on the Ardor blockchain. You can use a single reward account for all your different nodes, both Ardor and NXT, or use different accounts. It's up to you.
Setting up a public VPS node
If you want to set up your public node on a VPS, please follow the guide that explains step by step how to do it.
Send an encrypted message on IGNIS with your node's IP address to the account with alias
@noderewardnxt to apply for a NXT node). The sender of this message is the account that will receive the rewards. You can use the same account for different nodes. Remember that the message should always be sent on the Ardor platform, IGNIS chain, even for NXT nodes.
When selecting the account a Contract Reference input dropdown menu will appear. Please select
NodeReward. The message text box should be populated with a JSON template. Put your node's IP address as the value of the nodeAddress parameter (replacing the [String] part). The message should be encrypted and prunable so make sure the Encrypt Message is checked and the Message is Never Deleted is unchecked.
It should look like this:
If the message is correct you will receive an encrypted message back with a 30 char unique string that you should put in the platform field of your node. If you look at the transaction info and decrypt the contents you should see something like this:
8b0340fffe7371a34ca71c67ac749f part inside the encrypted message is the unique token assigned to your node.
Publish your assigned token
Finally you need to publish the token as the platform string for your node. To do so set the received string as the value of the nxt.myPlatform property in the node's nxt.properties file and then restart the node. Following the previous example the line on nxt.properties will look like this:
Check the FAQ if you need help with setting the node configuration using the nxt.properties.
How it works
A lightweight contract will execute every few blocks. It looks up all participants of the program (those that have received a token) and uses the Peer Explorer to verify that a node with that IP address is online and publishes the correct token. It also checks how much time the ports have been open. If the node is flapping too much (alternating between open and closed for any port) due to connectivity issues or the node being offline it can be discarded from the round. We want to encourage full online and stable nodes.
Once the list of candidates is prepared one node is picked up randomly (proportionally based on how much time the node has been fully online) and the reward is sent to the candidate account (the one that sent the original first message). The reward amount for each round is the proportion of the daily reward corresponding to the interval of time between rounds.