Harvesting

The process of creating new blocks is called harvesting. The harvesting account - called the harvester - gets the fees for the transactions in the block. This gives the harvester an incentive to add as many transactions to the block as possible.

The account importance determines the chances to create a new block. The importance is calculated as the relation between the number of harvesting mosaics the account owns and the total supply. To have importance greater than zero, the account needs to hold a minimum amount of this harvesting mosaic.

Catapult software allows defining any mosaic for harvesting, using its configurable properties to fit the business needs. For example, consortium networks can distribute harvesting mosaics between the companies that are running the infrastructure, while other participants need to pay fees in the currency mosaic to consume services.

Note

Configuration parameters are editable. Public network configuration may differ.

Harvester accounts can use their importance to create new blocks in a local or remote node.

Local harvesting

During the installation of catapult-server in local or in a VPS, you are asked to set up an account that will be used to harvest. The block header includes the public key and signature generated by the harvester account.

Local harvesting is secure as long as no one accesses your node instance, which is storing the private key.

Delegated harvesting

Delegated harvesting enables an account to use a proxy private key that can be shared with a catapult-server node securely. In other words, you can use the importance of your account to create new blocks without running a node.

After an account activates delegated harvesting, its importance is transferred to a remote account. The remote account inherits the importance of the original account.

Security-wise, sharing a proxy private key does not compromise the original account since:

  • The remote account has zero balance.
  • The remote account by itself can’t transfer the importance to another account.
  • The original account receives the resulting fees.
Comparison between local and delegated harvesting
  Local harvesting Delegated harvesting
Configuration Setup catapult-server node. Activate remote harvesting.
Cost The node maintenance (electricity, cost VPN). The transaction fee.
Security The private key is stored in the node. A proxy private key is shared with node.
Reward Equal. Equal.

Schemas

AccountLinkTransaction

Announce an AccountLinkTransaction to delegate the account importance to a proxy account. By doing so, you can enable delegated harvesting.

Version: 0x02

Entity type: 0x414C

Inlines:

Property Type Description
remoteAccountKey 32 bytes (binary) The public key of the remote account.
linkAction LinkAction The account link action.

LinkAction

Enumeration: uint8

Id Description
0 Link.
1 Unlink.