Skip to content

Deterministic Masternode Operator Guide

justanwar edited this page Dec 1, 2020 · 1 revision

This guide outlines the general step an operator needs to host a Znode for an owner on the new deterministic Znode system. It assumes that the BLS key is generated by the operator and passed to the user.

If you are using any other method in your setup, please modify accordingly.

Step 1: BLS key generation

To generate a BLS key pair for a Znode owner, use the bls generate command.

Example:

bls generate

{
  "secret": "3235bae58e1b46653ee6fd457018c3756797b3b2b5306734873b4a39d9cb8a5f",
  "public": "8446344bbad6354b924e32b8432ceab32066c40524d95c52e28c1fe30990661ff72b707626339507a3ec43dc28b4e022"
}

As the operator, add the secret part of the key into the zcoin.conf on the Znode. This is also the required operatorKey in the protx commands.

znodeblsprivkey=3235bae58e1b46653ee6fd457018c3756797b3b2b5306734873b4a39d9cb8a5f

Send the public part of the key to the Znode owner. They will need to use it in any protx commands that requires operatorPubKey.

Step 2: Owner performs protx register on their local wallet

In this example, the ipAndPort is left empty so that the operator can specify it later. This command will output a protx id. Operators can also provide the IP address to the owner, eliminating the need for step 3.

protx register 4950f88867b69760d3cd7c1f53531340f6723eb8f7d7f00730abfa12c5fe10e0 0 "" TRVDAxJwaZYFfmti4aTeKCByz1jbMq8Jy4 8446344bbad6354b924e32b8432ceab32066c40524d95c52e28c1fe30990661ff72b707626339507a3ec43dc28b4e022 "" 0 TEZ8M8Fgp8h4HvUjXtjz3krYraRtySiXdw

Step 3: Operator performs protx update_service on their side

The operator can then add the IP address and start the Znode with this command:

protx update_service 406e248238bb391bf0df489ab087201fc029da919a5390f97979e1ef6ef242b3 139.180.189.1:8168 3235bae58e1b46653ee6fd457018c3756797b3b2b5306734873b4a39d9cb8a5f

where 406e248238bb391bf0df489ab087201fc029da919a5390f97979e1ef6ef242b3 is the protx id generated by the protx register command.

Useful commands for Znode operators

Arguments in brackets are optional.

protx update_service proTxHash ipAndPort operatorKey (operatorPayoutAddress feeSourceAddress)

Updates the IP address of a Znode, starts a POSE_BANNED Znode, or sets the operatorPayoutAddress if the operatorReward is set to non-zero during protx register. If operatorReward is defined but operatorPayoutAddress is not, all the Znode's reward will go to the owner.

protx revoke proTxHash operatorKey reason feeSourceAddress

Revokes the operatorKey of the Znode, sets its IP address to empty, and its status to POSE_BANNED.

Can be used to stop providing service to the Znode owner or revoke the operatorKey. For list of argument that can be used for reason, see the table below.

Revoke reason table

You can use the following table for the reason field in the protx revoke command.

Reason Value Reason
0 Not Specified
1 Termination of Service
2 Compromised Keys
3 Change of Keys (Not compromised)
Clone this wiki locally