Proof-of-Service (PoSe). How to launch a masternode?

The masternode's mining algorithm.
The PoSe algorithm was first introduced in the cryptocurrency DASH. PoSe calculations are based on a number of metrics to determine a masternode bona fide performance. The maximum score in calculations is equal to the number of registered masternodes. Each refusal of a masternode to provide service as part of its obligations increases its score by 1. When the masternode’s score becomes equal to the maximum score - the system imposes a ban on the PoSe and the masternode.
In such a case, the masternode should be restored and checked to ensure that it provides reliable service to the blockchain and WEIcrypto ecosystem, and then re-register it in the list using Proupserv.

Logic of the reward

Masternode payments are based on an algorithm that sorts a full list of all registered and secured 40,000 WEI masternodes and a list of masterNodes that do not have a ban tag.
Each eligible masternode has a unique ID assigned when a secured transaction is sent (40,000 WEI) and is associated with the block in which the masternode last received a payment.
The list is sorted in ascending order by block height and hash ProRegTx. The payout is sent to the first record in it.

Masternode registration

In this section, we'll look at two possible options for running a mastercode:
The provision of 40,000 WEI plays two roles: it helps ensure a sufficient level of decentralization of the WEI network, confirms the user’s interest in the project and, consequently, the interest in deep evaluation of applications for a loan WEIpartner and management in DAO.
Registering a masternode on a hosting provider's platform will suit users who do NOT have any IT knowledge.
The full list of masternode hosting providers will be published here .
To remind you of the requirements:
- Server or VPS with Linux. You can use any VPS provider. In our example, we will consider registration using Digital Ocean. IMPORTANT: the masternode transmits up to about 500 GB of data, so as the WEI network grows, the technical requirements for servers may increase.
- Availability of up to 40,000 WEIs.
- Dedicated IP address to the server (or VPS).
Minimum technical requirements:
1 х 1 GHz
1 х 2 GHz
2 GB + 2 GB swap
4 GB + 2 GB swap
Hard drive space
40 GB
60 GB
Network traffic
40 GB/month Network traffic
1 TB/month

Masternode registration on a hosting provider's server

Send a single transfer of exactly 40,000 WEI to your own address and wait for 15 confirmations (you can check for confirmations here:;
Check with the hosting provider who generates BLS keys operator, what is the method of payment of the commission and whether the mastermind will be set before or after the registration transaction.
Sign and submit the registration transaction to the network via WEIcore.
IMPORTANT: in order to securely store the keys to the masternode collateral, we strongly recommend the use of hardware wallets.


If an operator provides an IP and a port for a fully synchronized node, and its ​masternodeblsprivkey is added to wei.conf file, it will appear in the actual set immediately after executing the command protx register_submit.
If a full node is not running or its owner sets 0 for ipAndPort, the node will be registered in a blocked state. In this case it is necessary to update server settings and register the master node. (ProUpSeryTx).
The ProRegTx transaction performed by the owner also determines the percentage of the payout to the operator. It does not specify a payout address, so ProUpServTx must also be executed for the payout to be sent to a specific address. If the order of payment of the reward is not defined, the full amount will be sent to the owner.

Masternode registration on your own server

As noted above, running the masternode on your own server requires special knowledge from the user. Moreover, registering the masternode on your own server requires you to maintain and protect it yourself.
IMPORTANT: we strongly recommend you to use an additional measures to increase the security of your masternode keys.
You will need:
- WEI storage wallet. We recommend using hardware wallets for this purpose, but we do not limit the use of WEIcore; - Server or VPS with Linux. You can use any VPS provider. In our example we will consider registration using Digital Ocean; - 40,000 WEI.

VPS setting

VPS is ideal for hosting a WEI masternode, as it provides guaranteed uptime and the static IP address required for PoSe rewards.
First select Droplets in the creation menu:
Then you need to choose the operating system on which the VPS will run. In this example Ubuntu 20.04 is chosen:
Choose a pricing plan based on the cost of VPS and the required performance. Technical requirements for the server were mentioned above:
The next step is to choose the region in which the server will be located:
Set the authentication method on the server. In the example we consider authentication with a password:
It should be noted that the user name on Digital Ocean is set by default - root. Later you can change it through the server console or add a new user.
The final step is to choose an ID name and finally create the server.

Set your OC

If you are using Windows, you will need to download PuTTY to connect to the purchased server. If you're using MacOS or Linux, type directly into the terminal ssh [email protected]<server_ip> , then enter your password.
After opening PuTTY, enter the IP address of the purchased server in the Host name field, then Open and confirm the server connection security.
You will be redirected to the terminal window, where you can log in by entering your username and password from the purchased server:
IMPORTANT: after connecting to the server you must immediately change the root password and save it in a safe place.
passwd root
On the specified line, enter and confirm the new password.
IMPORTANT: the new password must be long and randomly generated for the purpose.
Next, a new user will be created. Instead of username enter an arbitrary value, which will be your username.
adduser <username>
Enter and confirm a new password for your user (other than the root password) and save it in a safe place. Now add them to a sudo group to give them root privileges.
usermod -aG sudo <username>
Next, you need to update the system using the Ubuntu repository:
apt update
apt upgrade
Press Y and Enter to install the list of suggested updates. You will also need to install the firewall, add memory swap and reboot the server to apply the kernel updates. Now log in as a new user.
apt install ufw python virtualenv git unzip pv
(Press Y and Enter to confirm)
ufw allow ssh/tcp
ufw limit ssh/tcp
ufw allow 9999/tcp
ufw logging on
ufw enable
(Press Y and Enter to confirm)
fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
nano /etc/fstab
At the end of the file, add the next line (to separate each word/digit, press tab), then press Ctrl + X to close the editor and Y + Enter to save the file.
/swapfile none swap sw 0 0
You need to install fail2ban and disable root authentication via SSH.
apt install fail2ban
Create a new configuration file:
nano /etc/fail2ban/jail.local
Insert the following configuration into the created file:
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Press Ctrl + X to close the editor and Y + Enter to save the file.
Restart and activate fail2ban service:
systemctl restart fail2ban
systemctl enable fail2ban
To disable root authentication via SSH, open the SSH configuration file:
nano /etc/ssh/sshd_config
Change the line PermitRootLogin yes to PermitRootLogin no. Immediately below it you have add a line AllowUsers <username>, changing <username> to the user name, Press Ctrl + X to close the editor and Y + Enter to save the file.
Reboot the server:
reboot now
PuTTY will disconnect when the server reboots.
Now we have secured the server for the masternode. However, that's not all you can do. To improve security, we recommend that you read and apply some of the tips described here.

Send the secure 40 000 WEI

You need to have 40,000 WEIs in one of your wallets at a time in order to run a masternode. In this section, we will look at registering a masternode from WEIcore and a hardware wallet.

Sending from the WEIcore

Open WEIcore and wait for it to sync with the network.
Go to Tools and then Debug console. In the console that opens, enter the following command, which will generate a new WEI address to provide:
We will need this address in the next steps.
Now we need to secure the wallet: go to Settings and then to Encrypt wallet. Create a new strong password which you have never used before.
IMPORTANT: keep in mind that losing your password will permanently block your access to the wallet.
Back up your wallet file: go to File and then Backup Wallet.
IMPORTANT: save the file in a safe place physically separate from your computer, as this will be the only way to access our funds if something happens to your computer.
Now send EXACTLY 40,000 WEI in ONE transaction to the address generated above with the getnewaddress command. Funds can be sent from any wallet you keep WEI on. Open and find the sent transaction by typing the address from which you sent the transaction into the search box. You have to wait for 15 confirmations to register the masternode. But you can already go to the next step - generation of your operator keys.
Setting WEIcore
WEIcore is a wallet application for your computer and a WEI blockchain masternode tool.
IMPORTANT: if the WEIcore GUI does not show up, then the application is running as a daemon on your VPS (weid) and is controlled by the command interface (wei-cli).
Open PuTTY or the console again, and connect using the user and password you just created for the new non-root user.
Open PuTTY or a console again and connect using the username and password you just created for your new, non-root user. In this tutorial we will install the masternode manually.
To manually download and install the WEI masternode components, visit GitHub release page and copy the link to the latest version of x86_64-linux-gnu. Go back to the terminal window and type the following command, pasting the address of the latest version of WEIcore (Ctrl + V).
Now create a working WEI folder and export all the archive files into it:
mkdir ~/.weicore
tar xfv weicore-
cp -f weicore-0.17.0/bin/weid ~/.weicore/
cp -f weicore-0.17.0/bin/wei-cli ~/.weicore/
Create a settings file with the command:
nano ~/.weicore/wei.conf
An editor window should appear in front of you.
Next, we will create a configuration file which will contain some parameters. Insert the following text in it, and then replace the parameters with the ones corresponding to your configuration:
Replace all fields with XXXXXXX as follows without using special characters (.,:;><? And etc.):
· rpcuser: enter any set of numbers or letters;
· rpcpassword: enter any set of numbers or letters;
· externalip: it’s IP-address of your VPS
Leave the field masternodeblsprivkey with comments so far. Press Ctrl + X to close the editor and Y + Enter to save the file.
Now you can run WEI in masternode mode to synchronize with the blockchain:
You should see the message WEIcore server starting.
You need to install Sentinel, the software that will tell the WEI network that the masternode is working properly:
cd ~/.weicore
git clone
cd sentinel
virtualenv venv
venv/bin/pip install -r requirements.txt
venv/bin/python bin/
You will see a message in front of you with the text weid not synced with network! Awaiting full sync before running Sentinel. You need to add weid and Sentinel to your crontab file. This will allow you to get a minute-by-minute confirmation that your masternode is up and running correctly:
crontab -e
Select nano as your editor and enter the following lines at the end of the file:
* * * * * cd ~/.weicore/sentinel && ./venv/bin/python bin/ 2>&1 >> sentinel-cron.log
* * * * * pidof weid || ~/.weicore/weid
Press Enter to make sure there is a blank line at the end of the file, then press Ctrl + X to close the editor and Y + Enter to save the file.
Now you just have to wait for the 15 confirmations of the secured transaction you previously sent and for the masternode to sync with the blockchain. You can use the following commands to monitor the process:
~/.weicore/wei-cli mnsync status
After the synchronization is complete, you will see:
“"AssetI”": 999,
“"AssetStartTim”": 1558596597,
“"Attemp”": 0,
“"IsBlockchainSynce”": true,
“"IsSynce”": true,
«"IsFaile»": false
Your masternode is ready to be activated!

Masternode activating

Go to WEIcore and open Tools and then Debug console and enter the following command, since we need to find the txid:
masternode outputs
In response, you should get a combination similar to this:
{“"16347a28f4e5edf39f4dceac60e2327931a25fdee1fb4b94b63eeacf0d5879e”" :“"”",
The first long line - your collateralHash, with regard to collateralIndex.
Now you need to create a BLS key pair to include the masternode in the list. If you use a hosting service, you can ask them for their public key and skip this step.
To create the public and private key pair, go to WEIcore, open Tools and then Debug console and enter the following command:
bls generate
IMPORTANT: the generated keys are NOT stored in the wallet and must be stored by you in a secure location, as well as the other value provided in one of the previous steps after performing masternode genkey command.
Enter the private key in wei.conf masternode file. This will allow the masternode to monitor the blockchain for relevant Pro*Tx transactions. Log in to your masternode using ssh or PuTTY and modify the configuration file as follows:
nano ~/.weicore/wei.conf
You will see an editor with the existing masternode configuration in front of you. Add or uncomment this line in the file, replacing the key with your BLS private key generated above:
Press Enter to make sure there is a blank line at the end of the file, then press Ctrl + X to close the editor and Y + Enter to save the file.
The command masternodeblsprivkey enables master mode, which automatically sets the configuration txindex=1, peerbloomfilters=1, and prune=0 necessary for masternode to work.
You must now restart the masternode to apply all the changes. To do this, enter the following commands with a few seconds between them:
~/.weicore/wei-cli stop
sleep 15
We have already generated BLS keys and used the private key. Next we will use the public key - operatorPubKey.
First we need to get ownerKeyAddr – an unused address that will serve as the address of the owner's key.
IMPORTANT: this is NOT the same address you used to send and receive collateral in 40,000 WEI.
Generate a new address:
The generated address can also be used as voting key address (votingKeyAddr). You can also use the address given to you with delegated voting rights, or you can generate a separate voting address like the one below:
For owner’s masternode payouts (payoutAddress) generate a new address or use an existing address. You can also use an address external to the wallet:
You can also optionally create and top up another address as the source of the transaction fee (fee source address). If you choose an external payout address, you must specify a payout source address. In addition, you can create and top up another address as transaction fee source (feeSourceAddress). If you choose an external payout address, you must specify the payout source address.
There must be enough WEI at the payout address or transaction fee source to pay the transaction fee register_prepare. Otherwise it will fail.
The wallet from which the transaction will be sent to the network must contain the source address of the transaction fee and the owner's private keys. The password-protected wallet must be unlocked for a short period of time.
walletpassphrase yourSecretPassword 300
Now with the command protx register_prepare prepare a special unsigned ProRegTx transaction. Such a command has the following syntax:
protx register_prepare collateralHash collateralIndex ipAndPort ownerKeyAddr
operatorPubKey votingKeyAddr operatorReward payoutAddress (feeSourceAddress)
Open any text editor and prepare this command. To do this, replace each value of the command as follows:
· collateralHash: txid of the security transaction of 40,000 WEI
· collateralIndex: the secured transaction exit index of 40,000 WEI
· ipAndPort: IP- address and port of the masternode in the format x.x.x.x:yyyy
· ownerKeyAddr: g IP address and port of the masternode in the format generated above new WEI address for owner/voting
· operatorPubKey: the public BLS key generated above (or provided by your hosting)
· votingKeyAddr: new WEI address generated above or delegated address used to vote on proposals
· operatorReward: the percentage of the block award that is allocated to the operator as payment for his services
· payoutAddress: new or existing WEI address to receive payments from masternode holder
· feeSourceAddress: (Optional) address used to fund ProTx commissions. If not specified, it will be used payoutAddress.
IMPORTANT: the operator himself is responsible for the correctness of the address, to which his reward will be received in a separate transaction update_service. In case you specify a reward other than zero operatorRewad. The owner of the collateral confirmation does not provide an address for payment to the operator.
Example (it is necessary to remove line breaks when copying):
protx register_prepare
Now use fields collateralAddress and signMessage to sign the transaction and the exit field tx to send the transaction.
Let's move on to signing the contents of the field signMessage using the private key for the secured address specified in the collateralAddress.
NOTE: you do not need an Internet connection to perform this step.
We will again use WEIcore. The command has the following syntax:
signmessage collateralAddress signMessage
signmessage yjSPYvgUiAQ9aFj5tKFA8thFLoLBUxQERb yjZVt49WsQd6XSrPVAUGXtJccxviH9ZQpN|0|yfgxFhqrdDG15ZWKJAN6dQvn6dZdgBPAip|yfRaZN8c3Erpqj9iKnmQ9QDBeUuRhWV3Mg|ad5f82257bd00a5a1cb5da1a44a6eb8899cf096d3748d68b8ea6d6b10046a28e
Now a ProRegTx transaction must be sent to the blockchain to activate the masternode. The command must be sent from a WEIcore that has a balance on either feeSourceAddress , or payoutAddress, because a fee will be charged for the transaction. The command has the following syntax:
protx register_submit tx sig
· tx: Specialized transaction previously returned to the exit field txfrom protx register_prepare
· sig: The message signed with the pledge key with the command signmessage
protx register_submit 030001000175c9d23c2710798ef0788e6a4d609460586a20e91a15f2097f56fc6e007c4f8e0000000000feffffff01a1949800000000001976a91434b09363474b14d02739a327fe76e6ea12deecad88ac00000000d1010000000000e379580dcfea3eb6944bfbe1de5fa2317932e260acce4d9ff3ede5f4287a34160100000000000000000000000000ffff2d4ce6ef4e1fd47babdb9092489c82426623299dde76b9c72d9799f20ed1538e28259ff80044982372519a2e6e4cdedb01c96f8f22e755b2b3124fbeebdf6de3587189cf44b3c6e7670ed1935246865dce1accce6c8691c8466bd67ebf1200001976a914fef33f56f709ba6b08d073932f925afedaa3700488acfdb281e134504145b5f8c7bd7b47fd241f3b7ea1f97ebf382249f601a0187f5300 II8JvEBMj6I3Ws8wqxh0bXVds6Ny+7h5HAQhqmd5r/0lWBCpsxMJHJT3KBcZ23oUZtsa6gjgISf+a8GzJg1BfEg=
Congratulations! Your MasterNode is registered and will now appear in the list of masterNodes after mining a transaction block.
You can see the list in the Masternodes tab in WEIcore, as well as in the corresponding tab in Also the list will be available when using the command protx list valid, where txid of the final protx register_submit transaction identifies your masternode.
Now you can go back to the terminal window and monitor your masternode with the command ~/.weicore/wei-cli masternode status.
At this point you can safely log out of the server by typing exit.

Service and update

In order for the masternode to remain in the queue and be rewarded, it must be maintained: upgrades, server performance and security must be maintained at the required level.
As already noted, the very idea behind the creation of the mastermind is to work in the interest of the network. Therefore, the service includes both voting on budget proposals and on requests within WEIpartner loans, as well as other actions related to the maintenance of WEIcrypto services.
From time to time it may be necessary to update masternode information if any information about its owner or operator has been changed. It is also possible to revoke the registered status of a masternode (for example, in case of security problems) to force both owner and operator to update data.
IMPORTANT: changing the BLS operator key, as well as creating a new ProTx based on the same secured transaction will reset your position in the payment queue. Changing addresses (IP address, reward receipt address, etc.) does not reset your position.


Provider Update Service Transaction (ProUpServTx) is used to update operator information. The operator can update the IP address and port fields of the master record.
The Provider Update Service (Proupserv TX) transaction is used to update information related to the operator.
The operator can update the IP address and port fields of the master record. If the initial ProRegTx was set to non-zero operator payout, the operator can also set the Operator Payout Address field in Proupserv TX. If no operator payout address is set and the operator payout is non-zero, the owner receives the full masternode payout.
ProUpServTx can be created from DMT by pressing the update service button, or from WEIcore using the following syntax:
If the original ProRegTx was set to zero operatorReward, the operator can also make it sound like this operatorPayoutAddress field in ProUpServTx. The owner of the masternode receives full reward if operatorPayoutAddress is not set and operatorReward null. ProUpServTx can be created from DMT by pressing Update service, or via WEIcore using the following syntax:
protx update_service proTxHash ipAndPort operatorKey (operatorPayoutAddress feeSourceAddress)
· proTxHash: transaction id of the original ProRegTx
· ipAndPort: IP and port from “ip:port”
· operatorKey: BLS operator’s private key linked to the registered operator’s public key
· operatorPayoutAddress (optional): The address used for operator reward payments. Only allowed when the ProRegTx had a non-zero operatorReward value. Enter ”" to use the last on-chain operator payout address, or as a placeholder when specifying a feeSourceAddress.
· feeSourceAddress (optional): the address used to pay the ProTx fee. Will be used operatorPayoutAddress, unless otherwise is specified.
protx update_service d6ec9a03e1251ac8c34178f47b6d763dc4ea6d96fd6eddb3c7aae2359e0f474a 4308daa8de099d3d5f81694f6b618381e04311b9e0345b4f8b025392c33b0696 yf6Cj6VcCfDxU5yweAT3NKKvm278rVbkhu
Masternode is now removed from the PoSe ban list, and the IP:port and operator award address are updated.


A Provider Update Registrar Transaction (ProUpRegTx) is used to update information about the owner of the masterdnode.
The owner can update the operator's public BLS key (for example, to assign a new operator), voting address, and payout address. ProUpRegTx can be created from DMT by pressing Update operator key, Update voting key or Update payout addr., or from WEIcore using the following syntax:
protx update_registrar proTxHash operatorKeyAddr votingKeyAddr payoutAddress (feeSourceAddress)
· proTxHash: transaction id of the original ProRegTx
· operatorKeyAddr: updated BLS public key or value"" to use the key of the last operator in the chain.
· votingKeyAddr: An updated voting key address, or "" to use the last on-chain voting key
· payoutAddress: updated address to be paid to the owner or the value "" to use the key of the last operator in the chain.
· feeSourceAddress (Optional): the address for the ProTx fee. Unless otherwise specified, will be used “PayoutAddress”.
Example of a payout address update:
protx update_registrar cedce432ebabc9366f5eb1e3abc219558de9fbd2530a13589b698e4bf917b8ae«»"«»" yi5kVoPQQ8xaVoriytJFzpvKomAQxg6zea


Provider Update Revocation Transaction (ProUpRevTx) is used by an operator to terminate service or notify the masternode owner to generate a new BLS key.
The transaction will immediately result in a PoSe ban of the masternode. The owner must issue a ProUpRegTx to install a new operator key. After the ProUpRegTx is mined to the block, the operator must issue a Propserv TX to update the service related data and remove the PoSe-ban state of the masternode.
ProUpRevTx can be created from DMT by pressing Revoke operator or from WEIcore using the following syntax:
protx revoke proTxHash operatorKey reason (feeSourceAddress)
· proTxHash: transaction id of the original ProRegTx
· operatorKey: BLS operator's private key linked to the registered operator’s public key
· reason: an integer value denoting the reason for revocation
· feeSourceAddress (optional): the address used to pay the ProTx fee. To be used operatorPayoutAddress, unless otherwise specified.
protx revoke 9f5ec7540baeefc4b7581d88d236792851f26b4b754684a31ee35d09bdfb7fb6 565950700d7bdc6a9dbc9963920bc756551b02de6e4711eff9ba6d4af59c0101 0

Masternode ban and prohibition of service

If the masternode fails to perform its main task - maintenance of WEIcrypto servers - it can get PoSe-ban status. If this happens and the masternode is in POSE_BANNED status, check that the following configurations are correct:
· You are using the latest version of WEI
· Masternode has enough memory, paging, processing power and hard disk space.
· You are fully and correctly synchronized with block height and blockchain
· The BLS private key is correctly specified with the configuration masternodeblsprivkey in wei.conf masternode file
· Make sure that the BLS private key is unique in the network and no other master key uses it
· The private BLS key of the masternode and correlates with the public BLS key of the masternode registered in the blockchain in ProRegTx or ProUpRegTx
· externalip (and port if testnet is used) are specified correctly and are not blocked by a firewall or port forwarding service
· Sentinel is installed, updated, has no errors and is entered in your crontab every 1-2 minutes
After making sure that all the settings listed are correct, you can create ProUpServTx.
Check your masternode with masternode status and (or) debug.log. This will help you understand the reasons for the ban and eliminate them as soon as possible.
PoSe-ban may occur repeatedly, to avoid it masternode needs to provide WEIcrypto services.

Useful tools

Since WEI is a public blockchain, it is possible to use block browsers to view WEI public address balances. It is also possible to examine transactions in any block. Each unique transaction is searchable via txid.
Blockchain explorer: