This script is used to install an Absolute Masternode on a Virtual Private Server (VPS).
0.Chain Information: #
Previous Wallet release: v0.130.01
Latest Wallet Release: V0.14.01
1. Checklist Before You Start #
To install the node you need the following:
- A control wallet on your PC, MAC or Linux computer.
- 2500 ABS that will be used as collateral, plus 1 ABS which is need for transaction fees
- Virtual Private Server (VPS) running Ubuntu 180.4 or 20.04
- VPS can be optimised to use both IPv4 and IPv6 in this release.
- Access to your VPS using SSH, using such programs as Kitty or Putty
2. Setup Collateral and Keys #
Download the last version of ABS wallet from the GitHub repository found here to your local computer:
From Website:
https://absify.me/wallets/
Full Release and wallets are also available here:
https://github.com/absolute-community/absolute/releases
Generate Addresses ready for Deterministic Masternode activation
Then you need to generate a few new ABS address in your control wallet.
The first one is the Masternode collateral address. Open Debug Console from the Tools menu of your control wallet and paste the next command:
getaccountaddress MN1
MN1 is just an alias associated with the generated address.
Send the collateral – 2500 ABS – to the address generated above. Make sure that you send exactly 2500 ABS to that address. Make sure that the <Substract fee from amount> option is not checked.
You need to wait for 15 confirmations (to be safe) before you can obtain the transaction id and index with the next command run in debug console:
masternode outputs
To connect your VPS with the cold wallet you need a Masternode BLS private key which is obtained with this command run in debug console:
bls generate
This will generate a key pair Public and Private.
You need to store these keys as they will be used later on the install script and during registration using the Protx Generator.
Now we will need at least 2 new addresses – owner address (must be new and unused) and voting address – run these 2 cmds in debug console or via the receive tab in the QT wallet:
getaccountaddress MN1-OWNER
getaccountaddress MN1-VOTING
NOTE: Voting rights can be transferred to another address or owner… any public key address can be used.
COMMUNITY: Governance votes occur once a week, if you would prefer for us to vote on your behalf, please use this voting address: AXqgvgQopPEDgBmTVveRSoukv2vn2P5wme
Your voting address can be transfer at any point using a Protx update command
Optional, to keep track of your Masternode payments you can generate another new address like this:
getaccountaddress MN1-PAYMENTS
If this is not a priority you can use your main wallet address. Note that you need to have some ABS here to cover the setup transactions fees (1 ABS will do).
Optional, another address can be generated and used to cover fees for your Masternodes transactions. You need to fund this address and use it on your Protx command.
getaccountaddress MN-PAYMENTFEES
If used, make sure the MN-PAYMENTFEES has at least a balance of 1 ABS.
3. Your VPS Server #
Use Putty or Kitty to connect to your VPS via SSH. Make sure you have at least Ubuntu Linux v18.04 installed.
Make sure you have generated the BLS private key, as the script will ask for it during the install.
You need to be root, so, if you use a different user to login to your VPS then switch the current user to root and navigate to /root folder with this shell command:
cd /root
Download the install script with this command:
wget https://bit.ly/abs_vps_install -O abs_vps_install.sh && chmod +x abs_vps_install.sh
Start the install script with the next command. You need to provide the BLS private key generated earlier.
./abs_vps_install.sh
Make sure that the script run without errors!
Some warnings may occur. For example, if you run the script twice for some reason. In the end, the script will provide you with a few commands that you can use to start the nodes or just reboot the VPS, the script auto start the daemon on system reboot.
After you start the nodes, the daemon will download the ABS blockchain for each node and sync with the network.
You can now start the ABS daemon with this command:
systemctl start absd
At this point, the daemon starts to download the ABS blockchain and sync with the network. This process takes approximately about 30 minutes, depending on your VPS internet connection.
To check if the VPS is synced with the network use this command:
absolute-cli getinfo
Check that the last block is the one as on ABS explorer found here:
http://explorer.absify.me
To check if the Masternode started successfully type the next command on your VPS:
absolute-cli masternode status
Note: you need to have VPS Masternode synced before you continue. This should be at least
4.On Your Control Wallet #
On your control wallet, you need to run few commands to prepare, sign and submit a special Protx transaction that will activate your Masternode.
This process can be made easier by using the Protx Generator which is located here: https://absify.me/myprotx/
Protx Register Prepare #
We need to prepare an unsigned special transaction using the [protx register_prepare] command.
Example:
protx register_prepare collateralTx collateralTxIndex ip:port ownerAddr operatorBlsPubKey votingAddr operatorReward payoutAddr (feeSourceAddr)
Note: Protx register command should be one line with only one space between values.
You can use a text editor to prepare this command. Replace each command value as follows:
– Collateral Tx: transaction id of the 2500ABS collateral
– Collateral Tx Index: transaction index of the 2500ABS collateral (This is either 0 or 1)
– IP:Port: Masternode IP and port
– Owner Address: new ABS address generated above
– Operator Bls Public Key: BLS public key generated above
– Voting Address: New ABS address generated above or the address used to delegate proposal voting
– Operator Reward: Percentage of the block reward allocated to the operator as payment (use 0 here)
– Payout Address: new or main wallet address to receive rewards
– Fee Source Address: (optional) an address used to fund ProTx fee, if missing, Payout Address will be used
Note: if you use a non-zero operatorReward, you need to use a separate update_service transaction to specify the reward address (not covered by this how-to).
Example command:
protx register_prepare
75babcc7660dbce0d8f8c6ac541eabc0e7844e74e03b4ec4f85df902a1264099
0
65.21.144.60:18888
AjSSuGj2Num4cJmswrEyks1yUqSZ6PT9T2
15d473ecc5b48f0f19c18a5bc78ae19dc722ccf22570f98ffc5945cdf4eda9539c421418e2cfb5e41fe0b6cb4d73d1f1
Ae2ZCAVkUEfvVyTLYDqmMG7aEZKtDeeEpn
0
AhWybg5sRZHopwwDHU7CRPkYiXUk9TgTV1
Result:
{
"tx": "030001000180b191aa19030230c250064c9217f327fafd70b222fa7d6a3a50e8e774fc1a300000000000feffffff0121dff505000000001976a914e888e2ac0f029208e2ac59572740dcc66b3c4c4888ac00000000d1010000000000994026a102f95df8c44e3be0744e84e7c0ab1e54acc6f8d8e0bc0d66c7bcba750000000000000000000000000000ffff4115903c4571fd9dd95354f9c9e0c2ff15c503f2fb4c2effb4fe15d473ecc5b48f0f19c18a5bc78ae19dc722ccf22570f98ffc5945cdf4eda9539c421418e2cfb5e41fe0b6cb4d73d1f1c2407d14cacc4c275e35918102216c973ad1561b00001976a914e888e2ac0f029208e2ac59572740dcc66b3c4c4888ac216cf434d24a2547c9f0763a16a9bf2a695cac3d2c54dd9208bd631446f433d900",
"collateralAddress": "AXUmTnwkZrmXeSy1FwUr9pBcZPPtWjcT6M",
"signMessage": "yhWybg5sRZHopwwDHU7CRPkYiXUk9TgTV1|0|yjSSuGj2Num4cJmswrEyks1yUqSZ6PT9T2|ye2ZCAVkUEfvVyTLYDqmMG7aEZKtDeeEpn|5ccbe02fb852dcb5b11358de2d5cc9bd17db70d0b271ceb381328404830f34d2"
}
Note: Protx command should be one line with only one space between arguments.
Signmessage #
We need to sign the message from the previous command with the collateral address output.
The format is as follows:
signmessage collateralAddress signMessage
Note: signmessage command should be one line with only one space between values.
Example:
signmessage AXUmTnwkZrmXeSy1FwUr9pBcZPPtWjcT6M yhWybg5sRZHopwwDHU7CRPkYiXUk9TgTV1|0|yjSSuGj2Num4cJmswrEyks1yUqSZ6PT9T2|ye2ZCAVkUEfvVyTLYDqmMG7aEZKtDeeEpn|5ccbe02fb852dcb5b11358de2d5cc9bd17db70d0b271ceb381328404830f34d2
Signmessage-Output:
H2rV31nqSkcWNqBhCYhCYYmKVTlQkzVjfzCvuqIjocknTPtzC3BgRgJR/uoPbNH8YHpETTYuhp+6Ms22gzeHsqg=
Protx Register Submit #
Submit transaction and signature obtained from past command outputs (tx from the output on Protx register_prepare and Signmessage output)
protx register_submit tx Signmessage-output
Note: protx register_submit command should be one line with only one space between values.
Example:
protx register_submit 030001000180b191aa19030230c250064c9217f327fafd70b222fa7d6a3a50e8e774fc1a300000000000feffffff0121dff505000000001976a914e888e2ac0f029208e2ac59572740dcc66b3c4c4888ac00000000d1010000000000994026a102f95df8c44e3be0744e84e7c0ab1e54acc6f8d8e0bc0d66c7bcba750000000000000000000000000000ffff4115903c4571fd9dd95354f9c9e0c2ff15c503f2fb4c2effb4fe15d473ecc5b48f0f19c18a5bc78ae19dc722ccf22570f98ffc5945cdf4eda9539c421418e2cfb5e41fe0b6cb4d73d1f1c2407d14cacc4c275e35918102216c973ad1561b00001976a914e888e2ac0f029208e2ac59572740dcc66b3c4c4888ac216cf434d24a2547c9f0763a16a9bf2a695cac3d2c54dd9208bd631446f433d900 H2rV31nqSkcWNqBhCYhCYYmKVTlQkzVjfzCvuqIjocknTPtzC3BgRgJR/uoPbNH8YHpETTYuhp+6Ms22gzeHsqg=
Result:
a12cbb3e286b53822e3c150ff1c8de2b6712e9dcbc29e9f54457440c245b7df5
Congratulations, your Absolute Masternode is running!
#
5.Secure Your VPSYou can use UFW firewall combined with fail2ban to secure your VPS against attacks coming from the internet. Open ssh and abs port in firewall and enable UFW with the next commands:
ufw allow 22/tcp
ufw allow 18888/tcp
ufw enable