Activating delegated harvesting using the Desktop Wallet

Share your account’s importance securely with a node and get rewarded.

Introduction

Delegated harvesting enables accounts to receive rewards from creating new blocks without running a node. At the same time, it allows nodes to benefit from an account’s (possibly higher) importance score.

Note

Node owners have access to the node’s configuration so it’s more convenient for them to use Remote harvesting instead.

As explained in the manual version of this guide there are a number of steps required to enable delegated harvesting, involving different accounts and several transactions. It is thus much more convenient to use Symbol’s Desktop Wallet as shown in this guide.

The process requires little more than selecting the desired node and sending a harvesting request.

Prerequisites

Before you can activate delegated harvesting using the Desktop Wallet, you need the following items:

  • An up-to-date Desktop Wallet. Download the latest version from the releases page.
  • An account that will receive the harvesting fees. It must have:
    • At least 10,000 symbol.xym to be eligible and then some more to pay for transaction fees.
    • An importance score greater than zero. Keep in mind that this score is calculated every 12h.

Guide

  1. Select the Harvesting option in the menu on the left. You should see the Harvesting screen:

    ../../_images/delegated-harvesting-wallet-0.png

    Note that the Harvesting status is 🔴 INACTIVE.

  2. Click on the “Node Url” box to see a list of nodes currently connected to the network:

    ../../_images/delegated-harvesting-wallet-1.png

    Note

    Only nodes which act both as Peer and API nodes are shown on this list, but you can still request harvesting from pure Peer nodes by manually writing their URL in the box. In this case, though, you will also need to provide the node’s transport public key.

    This key must be provided by the node owner. If you have instantiated the node using Symbol Bootstrap, you can find this key in the addresses.yml file.

    A node URL looks like:

    http://ngl-dual-101.testnet.symboldev.network:3000
    
  3. Select a node from the list and click on the “Link all keys” button (You will probably need to scroll down past the “Keys Info” section).

    You will be asked to sign an Aggregate Transaction:

    ../../_images/delegated-harvesting-wallet-2.png

    This aggregate transaction registers 3 different keys to your account which are needed for harvesting.

  4. Enter your password and click “Confirm”.

    The Desktop Wallet will then sign the transaction and announce it to the network. After a little while (shouldn’t take longer than 30 seconds), the screen should update:

    ../../_images/delegated-harvesting-wallet-3.png

    You can see that the Harvesting status has changed to 🟡 KEYS LINKED and the different keys appear in the form.

    All that is left now is to send a PersistentDelegationRequest transaction which is the actual request to the node.

  5. Click on the “Activate” button.

    Your password is needed again to encrypt the persistent delegation message sent to the node:

    ../../_images/delegated-harvesting-wallet-4.png
  6. Enter your password and click “Confirm”.

    Your password is needed one last time to sign and announce the persistent delegation request (which is a special type of transfer transaction):

    ../../_images/delegated-harvesting-wallet-5.png
  7. Enter your password and click “Confirm” (again).

    Once you receive the confirmation message (shouldn’t take longer than 30 seconds), the Harvesting status should change to 🟡 ACTIVATION IN PROGRESS:

    ../../_images/delegated-harvesting-wallet-6.png

    At this point it is up to the node to accept the request and add your account as a harvester. When this happens, the Harvesting status will change to 🟢 ACTIVE:

    ../../_images/delegated-harvesting-wallet-7.png

    Delegated harvesting is now enabled and you should start collecting fees, at a rate proportional to your node’s importance score (See the Final words section below for some remarks).

Note

When requesting delegation through a PersistentDelegationRequest transaction instead of directly configuring the node, whether the node enables delegated harvesting depends entirely on the node and not on the network. It is entirely up to the node to comply with the request or even to lie about its state and provide a misleading Harvesting status indicator.

Therefore, there is no reliable way to know if your account has become a harvester or not besides waiting to see if your account starts receiving harvesting fees.

You can find more details about this process in the manual version of this guide.

Troubleshooting

The Harvesting status indicator can help you find out the state of your account’s delegated harvesting:

Status Meaning
🔴 INACTIVE Some keys are missing. Go to step 2.
🟡 KEYS LINKED Keys are present but the harvesting delegation request has not been sent. Go to step 5.
🟡 IN PROGRESS The harvesting delegation request has been sent but the node has not acknowledged it yet. It might take a few minutes, or it might never happen. There is not much you can do at this point, except trying a different node.
🟢 ACTIVE Harvesting is enabled. Harvested blocks and their fees should start arriving, depending on your account’s importance.

Final words

  • Accounts with higher importance are selected more often to perform harvesting. Even if you successfully register as a delegated harvester with a node, you will not harvest any block (nor receive any fees) unless your importance score is high enough.
  • Importance score calculation does not happen continuously. By default, account importance scores are recalculated every 1440 blocks (about every 12 hours). See the importanceGrouping property in the Configuring network properties guide.
  • Finally, as explained in the note above, announcing a Harvesting Delegation request does not guarantee being added as a delegated harvester. Nodes are free to comply with the request or even to lie about its status.

Last updated by Xavi Artigas on 2021-09-14.

Did you find what you were looking for? Give us your feedback.