A verifier node is a node which validates receipts. Receipts are an integral component of the migration mechanism used to migrate funds from the legacy into the new Chrysalis Phase 2 network. See here for a more detailed explanation on how the migration mechanism works.
This guide explains how to configure a Hornet node as a verifier node:
- Make sure the
Receiptsplugin is enabled under
true(this is what enables the verification logic in your node).
true, the verifier node will not panic if it can not query a legacy node for data. Set it to
falseif you want to make sure that your verifier node panics if it can not query for data from a legacy node. An invalid receipt will always result in a panic;
ignoreSoftErrorsonly controls API call failures to the legacy node.
receipts.validator.api.timeoutto something sensible like
10s(meaning 10 seconds).
receipts.validator.api.addressto the URI of your legacy node. Note that this legacy node must support/have the
getNodeInfoAPI commands whitelisted.
receipts.validator.coordinator.addressto the Coordinator address in the legacy network.
receipts.validator.coordinator.merkleTreeDepthto the correct used Merkle tree depth in the legacy network.
- Run your Hornet verifier node and let it validate receipts.
Note, it is suggested that you use a loadbalanced endpoint to multiple legacy nodes for
receipts.validator.api.addressin order to obtain high availability.
If now your verifier node panics because of an invalid receipt, it is clear that a receipt was produced which is not valid, in which case as a verifier node operator, you are invited to inform the community and the IOTA Foundation of your findings. This is by the way the same result as when a milestone is issued by the Coordinator, which diverges from a consistent ledger state.