/ ADEN

How to start your own Masternode - using the GUI Wallet

Part 1 - Virtual machine setup

You can find the part 1 in this blog article: https://blog.gohelpfund.com/start-your-own-masternode/


Part 2 - Help Core setup

Virtual Machine - Masternode Setup

  • Download and install the components of your Help masternode

cd /tmp

wget https://github.com/gohelpfund/aden/releases/download/v0.13.1.0/helpcore-0.13.1-x86_64-linux-gnu.tar.gz

  • Create a working directory for Help, extract the compressed archive and copy the necessary files to the directory:

mkdir ~/.helpcore

tar xfv helpcore-0.13.1-x86_64-linux-gnu.tar.gz

cp -f helpcore-0.13.1/bin/helpd ~/.helpcore/

cp -f helpcore-0.13.1/bin/help-cli ~/.helpcore/

  • You can now start running Help Core on the virtual machine to begin synchronization with the blockchain.

~/.helpcore/helpd --daemon

  • Generate a legacy masternode key

~/.helpcore/help-cli masternode genkey

output: 7rcuWpZRzZekNDkNxJV2RGU8CPzxLPzNx63eqZvNb4w6gXMMM5a

Generate a BLS key pair

  • A public/private BLS key pair is required for the operator of the masternode.
  • 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 as follows:

~/.helpcore/help-cli bls generate

output:
{

"secret": "39327d0e0b41bb70287ef9bfc1cc2887fb0236f38badff961425dec9774cb269",

"public": "8fca96ba112938a5baa7f8a652768c0f01bd069da0c33cbbeb23be04d06a27a32e4f2fcf2cb4c837750ab6c19cc6472d"

}

  • The next step is to secure your wallet with a password of at least 8 characters

~/.helpcore/help-cli encryptwallet yourSecretPassword

  • Create a configuration file using the following command:

nano ~/.helpcore/help.conf

  • An editor window will appear. Copy and paste the following text to get started:

rpcuser=XXXXXXXXXXXXX
rpcpassword=XXXXXXXXXXXXXXXXXXXXXXXXXXXX
rpcallowip=127.0.0.1
listen=1
server=1
daemon=1
maxconnections=64
masternode=1
masternodeprivkey=XXXXXXXXXXXXXXXXXXXXXXX
masternodeblsprivkey=XXXXXXXXXXXXXXXXXXXXXXX
externalip=XXX.XXX.XXX.XXX

Replace the fields marked with XXXXXXX as follows:

  • masternodeprivkey: is the output from masternode genkey  (for example, 7rcuWpZRzZekNDkNxJV2RGU8CPzxLPzNx63eqZvNb4w6gXMMM5a)
  • masternodeblsprivkey:  is the field "secret"  from the bls generate output (for example, 39327d0e0b41bb70287ef9bfc1cc2887fb0236f38badff961425dec9774cb269)
  • externalip: IP address of your virtual machine (for example, 138.68.6.0)

Press Ctrl + X to close the editor and Y and Enter save the file.

  • You can now start running Help on the masternode to begin synchronization with the blockchain

~/.helpcore/helpd

  • We will now install Sentinel, a piece of software which operates as a watchdog to communicate to the network that your node is working properly

cd ~/.helpcore

git clone https://github.com/gohelpfund/sentinel.git

cd sentinel

virtualenv venv

venv/bin/pip install -r requirements.txt

venv/bin/python bin/sentinel.py

  • You will see a message reading
helpd not synced with network! Awaiting full sync before running Sentinel

or

Invalid Masternode Status.
  • Now let's move on with adding helpd and sentinel to crontab to make sure it runs every minute to check on your masternode:

crontab -e

  • Choose nano as your editor and enter the following lines at the end of the file:

* * * * * cd ~/.helpcore/sentinel && ./venv/bin/python bin/sentinel.py 2>&1 >> sentinel-cron.log

* * * * * pidof helpd|| ~/.helpcore/helpd

  • Press enter to make sure there is a blank/new line at the end of the file, then press Ctrl + X to close the editor and Y and Enter save the file.
  • You can use the following commands to monitor progress:

~/.helpcore/help-cli mnsync status

When synchronisation is complete, you should see the following response:

{
"AssetID": 999,
"AssetName": "MASTERNODE_SYNC_FINISHED",
"Attempt": 0,
"IsBlockchainSynced": true,
"IsMasternodeListSynced": true,
"IsWinnersListSynced": true,
"IsSynced": true,
"IsFailed": false
}


GUI Wallet - ProRegTx Setup

  • Visit our official website and click on Token

https://gohelpfund.com/

  • In the Token section, choose Wallets and download the binaries for your operating system (e.g. Windows 64 bit)
  • After you've download the archive, move it to a more formal location and extract the contents there
  • Go into the bin folder and start the GUI (Graphical User Interface): help-qt
  • The dialog will ask you where to keep your data (blockchain, keys, etc.)
  • Loading screen will appear showing the initialization of the GUI wallet
  • The wallet now shows the synchronization percent with the blockchain
  • Meanwhile, you can enable the masternodes tab by going to Settings -> Options -> Wallet -> Show Masternodes Tab
  • Next we must encrypt or wallet with a secure password by going to Settings -> Encrypt Wallet
  • Please wait a few moments, then you a new pop-up will appear and you will click OK and the wallet will shutdown
  • Start the wallet again and open the console by going to Tools -> Debug Console

We will continue with generating all the addresses needed for the masternode setup.

  • The collateral address is the most important one, as it's the one holding the funds required for a masternode.
  • The beauty of masternode process is that you don't have to send your coins to a 3rd party (on the virtual machine where the masternode is running), but you keep them locally on your wallet, so only you have access to them.
  • Generate collateral address

getnewaddress

output: Xg8A28mRS58dQiFMH9i8cdj46j6voZ6sjn

  • Send exactly 2,500 HELP to the collateral address you generated  previously
  • At the end of this tutorial, you will have to submit a ProRegTx; you need to check to have minimum 15 confirmations before submitting the ProRegTx

http://insight.gohelpfund.com/insight/address/Xg8A28mRS58dQiFMH9i8cdj46j6voZ6sjn

  • Generate first address (ownerKeyAddr & votingKeyAddr)  as follows:

getnewaddress

output: XvhQdv8eHkG5nDnJPPqSNmkt137L71ABe1

  • Generate a second address (payoutAddress) where you receive the passive income

*it is also possible to use an address external to the wallet

getnewaddress

output: XjxTYnSv1P1VZuruvr3uX2btoXrweiBerh

  • Generate a third address (feeSourceAddress) to pay the ProRegTx transaction fee.

getnewaddres

output: XxKvSUEoUxd1wRogkWsPwAH3ad77xA7HPD

  • Send a small amount (e.g. 1 HELP) to the third address you generated  previously (for example, XxKvSUEoUxd1wRogkWsPwAH3ad77xA7HPD)

http://insight.gohelpfund.com/insight/address/XxKvSUEoUxd1wRogkWsPwAH3ad77xA7HPD

Prepare ProRegTx transaction

  • Identify the funding transaction (where you sent 2,500 previosuly)

masternode outputs

output: {

"8d6bfcf94124fb2a54a0b5aa307c7f5a02dd6e93074ce3cfda02262f01ea9d4b" : "1",

}

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

  • collateralHash: The txid of the 2500 Help collateral funding transaction
  • collateralIndex: The output index of the 2500 Help funding transaction
  • ipAndPort: Masternode IP address and port, in the format x.x.x.x:yyyy
  • ownerKeyAddr: First address generated above for the owner/voting address
  • operatorPubKey: The BLS public key generated above (or provided by your hosting service)
  • votingKeyAddr: First address generated above
  • operatorReward: Percentage of the block reward allocated to the operator as payment
  • payoutAddress: Second address to receive the owner’s masternode rewards
  • feeSourceAddress: Third address used to fund ProTx fee.

Example (remove line breaks if copying, must be all on a single line):

protx register_prepare

8d6bfcf94124fb2a54a0b5aa307c7f5a02dd6e93074ce3cfda02262f01ea9d4b

1

138.68.6.0:7777

XvhQdv8eHkG5nDnJPPqSNmkt137L71ABe1

8fca96ba112938a5baa7f8a652768c0f01bd069da0c33cbbeb23be04d06a27a32e4f2fcf2cb4c837750ab6c19cc6472d

XvhQdv8eHkG5nDnJPPqSNmkt137L71ABe1

0

XjxTYnSv1P1VZuruvr3uX2btoXrweiBerh

XxKvSUEoUxd1wRogkWsPwAH3ad77xA7HPD

output: {

"tx": "03000100018361fb50d3fba5480a04beb7c848f409bfcbf4f8db0d430716ff6236ceb31a030100000000feffffff0121dff505000000001976a914ed5de0c03ebbf2bf379f1345eca8718c33d8d8b588ac00000000d10100000000004b9dea012f2602dacfe34c07936edd025a7f7c30aab5a0542afb2441f9fc6b8d0100000000000000000000000000ffff8a4406001e61db7de64776bec5b6ae0934b8f2e52a00815b9af38fca96ba112938a5baa7f8a652768c0f01bd069da0c33cbbeb23be04d06a27a32e4f2fcf2cb4c837750ab6c19cc6472ddb7de64776bec5b6ae0934b8f2e52a00815b9af300001976a91465ad2f8c8aa172b7dd54b28c93005ad64be79c5088ac6714abea14054bef77fb7b4306e87ddf95cdfbbf106823c54f00ce614d51599300",  "collateralAddress": "Xg8A28mRS58dQiFMH9i8cdj46j6voZ6sjn",  

"signMessage": "XjxTYnSv1P1VZuruvr3uX2btoXrweiBerh|0|XvhQdv8eHkG5nDnJPPqSNmkt137L71ABe1|XvhQdv8eHkG5nDnJPPqSNmkt137L71ABe1|eee437a52ca64b2886d7b66b3c7ae44ee74a0956eeb8b5f37402b0259dacf3eb"

}

Next we will use the collateralAddress and signMessage fields to sign the transaction, and the output of the tx field to submit the transaction.

Sign the ProRegTx transaction

  • We will now sign the content of the signMessage. The command takes the following syntax:

signmessage address message

Where:

address : is the collateralAddress from the previous output (for example, Xg8A28mRS58dQiFMH9i8cdj46j6voZ6sjn)

message: is the signMessage from the previous output(for example,

"XjxTYnSv1P1VZuruvr3uX2btoXrweiBerh|0|XvhQdv8eHkG5nDnJPPqSNmkt137L71ABe1|XvhQdv8eHkG5nDnJPPqSNmkt137L71ABe1|eee437a52ca64b2886d7b66b3c7ae44ee74a0956eeb8b5f37402b0259dacf3eb")

output: ICBcBluOYVZCRvTy6Y5MT8CGMH5ZXDA4eC+ZethvnjLtCJ/BE7mNCcaxUd3Am7S3VL/KtK5YFmQlvkqPmGWlFJI=

Submit the ProRegTx transaction

  • We will now submit the ProRegTx special transaction to the blockchain to register the masternode. The command takes the following syntax:

protx register_submit tx sig

Where:

  • tx: The output field tx from the protx register_prepare command
  • sig: The output from the  signmessage command

Example:

output: 222709fe908eebd90b55347c034d9c1a8fe9ad20ea7f76a18c00f240be5bf3df

Congratulations!

  • Your masternode is now registered and will appear on the Deterministic Masternode List after the transaction is mined to a block.
  • You can view this list on the Masternodes -> DIP3 Masternodes tab of the Help Core wallet
  • At this point you can go back to your virtual machine's terminal window and monitor your masternode using :

~/.helpcore/help-cli masternode status

How to start your own Masternode - using the GUI Wallet
Share this

Subscribe to GoHelpFund Blog