If you used an address from your 6Zip Core wallet for the collateral transaction, you need to find the txid of the transaction. Access the console by navigating to Window > Console and enter:
masternode outputs
This should return a string similar to the following:
{ "16347a28f4e5edf39f4dceac60e2327931a25fdee1fb4b94b63eeacf0d5879e3-1" }
The first string is your collateralHash, and the last number is the collateralIndex.
A BLS public/private key pair is necessary to run a masternode. The private key is used in the masternode itself and allows it to be added to the deterministic masternode list once a provider registration transaction with the corresponding public key is created.
If using a hosting service, you might receive the public key from them, allowing you to skip this step. If you're hosting the masternode yourself or need to provide your host with the BLS private key, generate the key pair in 6Zip Core by going to Tools > Console and entering:
bls generate
Example output:
{ "secret": "6d93ececa9993d9f1de4f3ae837115442a48a8e4c757ebb6261090af2f57547b", "public": "b4dfbe01becd50c9d754c3b87f9d6728f3bff30b8b820f894e1fd249fd11aa27b0b4145ad550cbc35e9796e60329ad0a", "scheme": "basic" }
Warning: These keys are not stored by the wallet and must be backed up securely.
The BLS private key must be added to your zip.conf file on the masternode. This configuration allows the masternode to track blockchain transactions and become operational once the ProRegTx is broadcast. Access your masternode via SSH or PuTTY and edit the configuration file:
nano ~/.zipcore/zip.conf
Add or uncomment the following line, replacing the key with your generated BLS private key:
masternodeblsprivkey=395555d67d884364f9e37e7e1b29536519b74af2e5ff7b62122e62c2fffab35e
Ensure there is a blank line at the end of the file, then press Ctrl + X to close, followed by Y and Enter to save. Note that enabling the masternodeblsprivkey forces settings such as txindex=1, peerbloomfilters=1, and prune=0, essential for masternode functionality. Restart the masternode with the following commands:
~/.zipcore/zip-cli stop sleep 15 ~/.zipcore/zipd
Generate a new P2P key using Tenderzip and save the value as your platformNodeID:
docker run --entrypoint /usr/bin/tenderzip --rm -ti zipevo/tenderzip gen-node-key
Example output:
{"id":"1e8e241c05ca350c8fe0b8ba4680e7652673dae2","priv_key": ...}
Alternatively, use the following OpenSSL commands to generate the P2P key, save it to privkey.pem, and obtain the platformNodeID in hex format:
openssl genpkey -algorithm ed25519 -out privkey.pem openssl pkey -in privkey.pem -noout -text_pub | tail -n +3 | tr -d '[:space:]' | xxd -r -p | sha256sum | head -c 40
The platformNodeID will be used in the subsequent steps.
Obtain new addresses for various roles:
getnewaddress
command.Ensure the fee source or payout address has sufficient balance to cover the transaction fee. If your wallet is password-protected, unlock it with:
walletpassphrase yourSecretPassword 300
Prepare an unsigned ProRegTx transaction using the protx register_prepare_hpmn
command. The syntax is:
protx register_prepare_hpmn collateralHash collateralIndex ipAndPort ownerKeyAddr operatorPubKey votingKeyAddr operatorReward payoutAddress (feeSourceAddress)
Replace each argument with your specific details and generate the transaction output.
Sign the transaction using the collateral address's private key with the command:
signmessage collateralAddress signMessage
Example output:
II8JvEBMj6I3Ws8wqxh0bXVds6Ny+7h5HAQhqmd5r/0lWBCpsxMJHJT3KBcZ23oUZtsa6gjgISf+a8GzJg1BfEg=
Submit the signed ProRegTx to the blockchain using:
protx register_submit tx sig
Example output:
aba8c22f8992d78fd4ff0c94cb19a5c30e62e7587ee43d5285296a4e6e5af062
Your masternode will be registered and will appear on the Deterministic Masternode List once the transaction is confirmed. Monitor your masternode status with:
~/.zipcore/zip-cli masternode status
Or use the Refresh status function in the 6Zip Masternode Tool (DMT).