Follow the instructions below to set up your ZIP masternode.
If you used an address in zip Core wallet for your collateral transaction, you now need to find the txid of the transaction. Click Window > Console and enter the following command:
masternode outputs
This should return a string of characters similar to the following:
{ "16347a28f4e5edf39f4dceac60e2327931a25fdee1fb4b94b63eeacf0d5879e3-1", }
The first long string is your collateralHash, while the last number is the collateralIndex.
A public/private BLS key pair is required to operate a masternode. The private key is specified on the masternode itself and allows it to be included in the deterministic masternode list once a provider registration transaction with the corresponding public key has been created.
If you are using a hosting service, they may provide you with their public key, and you can skip this step. If you are hosting your own masternode or have agreed to provide your host with the BLS private key, generate a BLS public/private keypair in Zip Core by clicking Tools > Console and entering the following command:
bls generate
This will output something like:
{ "secret": "395555d67d884364f9e37e7e1b29536519b74af2e5ff7b62122e62c2fffab35e", "public": "99f20ed1538e28259ff80044982372519a2e6e4cdedb01c96f8f22e755b2b3124fbeebdf6de3587189cf44b3c6e7670e", "scheme": "legacy" }
These keys are NOT stored by the wallet and must be kept secure, similar to the value provided in the past by the masternode genkey command.
The public key will be used in following steps. The private key must be entered in the zip.conf
file on the masternode. This allows the masternode to watch the blockchain for relevant Pro*Tx transactions, and will cause it to start serving as a masternode when the signed ProRegTx is broadcast by the owner.
Log in to your masternode using ssh or PuTTY and edit the configuration file as follows:
nano ~/.zipcore/zip.conf
The editor appears with the existing masternode configuration. Add or uncomment this line in the file, replacing the key with your BLS private key generated above:
masternodeblsprivkey=395555d67d884364f9e37e7e1b29536519b74af2e5ff7b62122e62c2fffab35e
Press enter to make sure there is a blank line at the end of the file, then press Ctrl + X to close the editor and Y and Enter to save the file. Note that providing a masternodeblsprivkey
enables masternode mode, which will automatically force the txindex=1
, peerbloomfilters=1
, and prune=0
settings necessary to provide masternode service. We now need to restart the masternode for this change to take effect. Enter the following commands, waiting a few seconds in between to give 6Zip Core time to shut down:
~/.zipcore/zip-cli stop sleep 15 ~/.zipcore/zipd
A pair of BLS keys for the operator were already generated above, and the private key was entered on the masternode. The public key is used in this transaction as the operatorPubKey.
First, we need to get a new, unused address from the wallet to serve as the owner key address (ownerKeyAddr
). This is not the same as the collateral address holding 10000 ZIP. Generate a new address as follows:
getnewaddress
This address can also be used as the voting key address (votingKeyAddr
). Alternatively, you can specify an address provided to you by your chosen voting delegate, or simply generate a new voting key address as follows:
getnewaddress
Then either generate or choose an existing address to receive the owner’s masternode payouts (payoutAddress
). It is also possible to use an address external to the wallet:
getnewaddress
You can also optionally generate and fund another address as the transaction fee source (feeSourceAddress
). If you selected an external payout address, you must specify a fee source address. Either the payout address or fee source address must have enough balance to pay the transaction fee, or the register_prepare transaction will fail.
The private keys to the owner and fee source addresses must exist in the wallet submitting the transaction to the network. If your wallet is protected by a password, it must now be unlocked to perform the following commands. Unlock your wallet for 5 minutes:
walletpassphrase yourSecretPassword 300
We will now prepare an unsigned ProRegTx special transaction using the protx register_prepare
command. This command has the following syntax:
protx register_prepare collateralHash collateralIndex ipAndPort ownerKeyAddr operatorPubKey votingKeyAddr operatorReward payoutAddress (feeSourceAddress)
Open a text editor to prepare this command. Replace each argument to the command as follows:
x.x.x.x:yyyy
payoutAddress
will be used if not specified.Example:
protx register_prepare 16347a28f4e5edf39f4dceac60e2327931a25fdee1fb4b94b63eeacf0d5879e3 1 45.76.230.239:28080 yeh5dHShYdozm6JtbkSHxK2e6Ls8P9UqkWj9EDKiQz3R7b8XrWJ 99f20ed1538e28259ff80044982372519a2e6e4cdedb01c96f8f22e755b2b3124fbeebdf6de3587189cf44b3c6e7670e p7XwYy8q48tUtxKzL7Q2fNxz6r29XqDkZpBFWqV6wHk79aDk11b 1 p4gh8wYy7ZaLhFS96Rbn5JDLvG9gTbwMmm p4gh8wYy7ZaLhFS96Rbn5JDLvG9gTbwMmm
Once the ProRegTx transaction has been prepared, it must be signed and sent to the network. Use the following command to sign and send the transaction:
signmessage collateralAddress signMessage
The submit it
signmessage yjSPYvgUiAQ9AFj5tKFA8thFLoLBUxQERb yjZVt49WsQd6XSrPVAUGXtJccxviH9ZQpN|0|yfgxFhqrdDG15ZWKJAN6dQvn6dZdgBPAip|yfRaZN8c3Erpqj9iKnmQ9QDBeUuRhWV3Mg|ad5f82257bd00a5a1cb5da1a44a6eb8899cf096d3748d68b8ea6d6b10046a28e
protx register_submit txid Sig
Example:
protx register_submit 54e8f5f9f8c38c7f3e83f7e1d4f2c2e10a56a3b9b5c4a6d7b0b83f9e781e83f7e2 395555d67d884364f9e37e7e1b29536519b74af2e5ff7b62122e62c2fffab35e
The transaction must be confirmed by the network, after which it will be included in the deterministic list. Monitor the status using the protx info
command to confirm successful registration:
protx info
After the registration transaction has been confirmed, use the following command to check the status of your masternode:
masternode status
The output should indicate that the masternode is successfully registered and active.
That’s it! Your ZIP masternode is now set up and should be ready to participate in the network.