6ZipCore

Evo Masternode Setup

Evo Masternode setup Instructions

Get Involved




1. Locate the Funding Transaction


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.


2. Generate a BLS Key Pair


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.


3. Update the Masternode Configuration


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
    

4. Generate a Platform Node ID [Coming Soon]


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.


5. Retrieve Masternode Addresses


Obtain new addresses for various roles:

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

6. Prepare the ProRegTx Transaction


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.


7. Sign the ProRegTx Transaction


Sign the transaction using the collateral address's private key with the command:

signmessage collateralAddress signMessage

Example output:

II8JvEBMj6I3Ws8wqxh0bXVds6Ny+7h5HAQhqmd5r/0lWBCpsxMJHJT3KBcZ23oUZtsa6gjgISf+a8GzJg1BfEg=

8. Submit the Signed Transaction


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).