Overview
- MasterNode Statistic
- Download PirateCash core from GitHub, Prepare wallet
- Exchange to PirateCash, transfer to your wallet, then pay yourself EXACTLY 10 000 PIRATE
- Create a Linux Droplet
- Connect to Droplet via PuTTY for Windows/Terminal for Mac
- Edit masternode configuration file's
Download PirateCash core from GitHub, Prepare wallet
- Unzip PirateCash Core file to the location of your choice. You will run the wallet from this location.
- Encrypt your wallet: Settings -> Encrypt Wallet. Choose a password. Write it down. Restart your wallet.
- Backup Wallet: File -> Backup Wallet
Exchange anycoin to 10 000 PIRATE
Exchange a minimum of 10 001 PIRATE.
You need an address with EXACTLY 10 000 for a Masternode.
NOTE: You’re exchanging more because:
- Exchanges charge you for withdrawals
- When you send 10 000 PIRATE to yourself there is a small transaction fee.
- Create a receiving address: Receive -> New address Send PIRATE from exchange to your wallet.
- Create an additional address for your PirateCash: Receive -> New address, label this address mn1
- Copy this address, Click Send tab, paste address on the “Pay To:” line.
- Type 10000 in the Amount: field. Click Send
Create a Linux droplet on DigitalOcean
- Register for an account, create new “droplet” – Digital Ocean’s term
- Select Ubuntu 22.04 (LTS) x64
- Select 2 GB/1vCPU – sufficient and only $12/month
- Select any datacenter region you like. Create!
- Write down your droplet IP address
- Check your email for initial VPS root password
Access to your droplet
Access VPS via PuTTY – this will allow you to copy and paste commands to your VPS. The web console will not. Mac users can use Terminal. Launchpad -> Search -> Terminal -> Type: ssh root@IP
- Download and install PuTTY
- Default settings are fine. Type IP address in Host box, Type a name your session, click Save for easy future access. Click Open to connect.
- Login as root. Find DigitalOcean email with default password. Copy and paste your password. You can paste in PuTTY with a right mouse click. NOTE: when pasted, your password will be INVISIBLE. Just hit enter.
- Upon first login you will be prompted to choose a new password. Write it down.
Create a Swap File:
fallocate -l 1G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo "/swapfile none swap sw 0 0" >> /etc/fstab
Masternode configuration file setup
- Enter RPC console: Window –> Console
- Type: bls generate
-
Goto to Droplet and please Download archive
wget https://github.com/piratecash/piratecash/releases/download/v18.2.3/piratecashcore-18.2.3-x86_64-pc-linux-gnu.tar.bz2
bzip2 -dc piratecashcore-18.2.3-x86_64-pc-linux-gnu.tar.bz2 | tar -x
- Create directory mkdir ~/.piratecore
-
Create file ~/.piratecore/piratecash.conf with following content:
rpcuser=XXXXXXXXXXXXX rpcpassword=XXXXXXXXXXXXXXXXXXXXXXXXXXXX rpcallowip=127.0.0.1 server=1 rest=1 listen=1 txindex=1 listenonion=0 daemon=1 maxconnections=700 masternodeblsprivkey=ХХХХХХХХХХХХХХХХХХХ externalip=XXX.XXX.XXX.XXX
Replace the fields marked with XXXXXXX as follows:
rpcuser: enter any string of numbers or letters, no special characters allowed
rpcpassword: enter any string of numbers or letters, no special characters allowed
externalip: this is the IP address of your VPS
Please fill masternodeblsprivkey field commented by execute command bls generate in console and restart piratecashd daemon.
- Start daemon: ./piratecashd
-
Click Window -> Console to open the console. Type the following command into the console to generate a new PirateCash address for the collateral:
getnewaddress MN1
-
To send 10,000 PIRATE to this address via @piratecash_bot, you need to go to the 💵 Balance → PirateCash → 📤 Withdraw️ menu or execute the command /withdraw_pirate.
-
After the transaction is completed, various keys related to the transaction need to be extracted for later inclusion in a configuration file and registration transaction. This registration transaction serves as proof, recording the configuration on the blockchain and ensuring the masternode’s inclusion in the deterministic list. Plase execute masternode outputs
-
Prepare a ProRegTx transaction
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 10,000 PIRATE. Generate a new address as follows:
getnewaddress owner_key
-
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 voting_key
-
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 masternode_payouts
-
You can also you need to 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:
getnewaddress pay_fees
-
We will now prepare an unsigned ProRegTx special transaction using the protxregister_prepare command. This command has the following syntax
protx register_prepare collateralHash collateralIndex ipAndPort ownerKeyAddr operatorPubKey votingKeyAddr operatorReward payoutAddress feeSourceAddress
Open a text editor such as notepad to prepare this command. Replace each argument to the command as follows:
collateralHash: The txid of the 10,000 PIRATE collateral funding transaction
collateralIndex: The output index of the 10,000 PIRATE funding transaction
ipAndPort: Masternode IP address and port, in the format x.x.x.x:63636
ownerKeyAddr: The new PirateCash address generated above for the owner/voting address
operatorPubKey: The BLS public key generated above (or provided by your hosting service)
votingKeyAddr: The new PirateCash address generated above, or the address of a delegate, used for proposal voting
operatorReward: The percentage of the block reward allocated to the operator as payment
payoutAddress: A new or existing PirateCash address to receive the owner’s masternode rewards
feeSourceAddress: Address used to fund ProTx fee. payoutAddress will be used if not specified.
-
Sign the ProRegTx transaction
We will now sign the content of the signMessage field using the private key for the collateral address as specified in collateralAddress. Note that no internet connection is required for this step, meaning that the wallet can remain disconnected from the internet in cold storage to sign the message. In this example we will again use PirateCash Core, but it is equally possible to use the signing function of a hardware wallet. The command takes the following syntax:
signmessage collateralAddress signMessage
-
Submit the signed message
We will now submit the ProRegTx special transaction to the blockchain to register the masternode. This command must be sent from a PirateCash Core wallet holding a balance on either the feeSourceAddress or payoutAddress, since a standard transaction fee is involved. The command takes the following syntax:
protx register_submit tx sig
tx: The serialized transaction previously returned in the tx output field from the protx register_prepare command
sig: The message signed with the collateral key from the signmessage command
-
Your masternode is now registered and will appear on the Deterministic Masternode List after the transaction is mined to a block.
PirateCash Sentinel
Sentinel is an autonomous agent for persisting, processing and automating PirateCash governance objects and tasks. It is a Python application which runs alongside the PirateCashCore instance on each PirateCash Masternode.
Dependencies
Update system package list and install dependencies:
$ sudo apt-get update $ sudo apt-get -y install git python3 virtualenv
Make sure Python version 3.6.x or above is installed:
python3 --version
Install Sentinel
Clone the Sentinel repo and install Python dependencies.
$ git clone https://github.com/piratecash/sentinel && cd sentinel $ virtualenv -p $(which python3) ./venv $ ./venv/bin/pip install -r requirements.txt
Set up Cron
Set up a crontab entry to call Sentinel every minute:
crontab -e
In the crontab editor, add the lines below, replacing '/path/to/sentinel' to the path where you cloned sentinel to:
* * * * * cd /path/to/sentinel && ./venv/bin/python bin/sentinel.py >/dev/null 2>&1