How to Unban a POSE_BANNED SentryNode


SentryNodes must run 24/7.

The chain tracks “Proof of Service” via a “PoSe score”, with the optimal score being “0”.
The chain bans a node with a poor score once it reaches the defined ban threshold.

If your SentryNode is in a PoSe_Banned state, there are several actions you can take to reactivate it and prevent it from happening again.

If you are using a SentryNodes service provider, please skip to SECOND SECTION.


– FIRST SECTION –
If you have your own server or a VPS:

  • Ensure the VPS is hosted with a reliable provider and is always online.
  • Ensure the VPS has dedicated resources and meets the required technical specifications.
  • Ensure the node is synced with the blockchain and is at the correct block height.
    • To check the block height of your SentryNode, you can use the command:
      syscoin-cli getblockcount
syscoin@nexus-sentrynode:~$ syscoin-cli getblockcount
1539044

If it’s not synced, stop, restart, and reindex the node using:

Note: To use these commands, you must be logged in as the syscoin user and have previously run the command source ~/.bashrc

  • Stop: syscoin-cli stop
    - Wait 5 to 10 seconds for syscoin-cli to shut down completely.
  • Reindex: syscoind -reindex

During the reindexing process, if you run syscoin-cli getblockcount again, you’ll see the block number increasing, which indicates reindexing is proceeding correctly.

syscoin@nexus-sentrynode:~$ syscoin-cli getblockcount
80524
syscoin@nexus-sentrynode:~$ syscoin-cli getblockcount
116292

If you run the command syscoin-cli masternode_status, you’ll get the current SentryNode status as Waiting for ProTx to appear on-chain, which means the process is not yet complete.

{
  "state": "WAITING_FOR_PROTX",
  "status": "Waiting for ProTx to appear on-chain"
}

Note: If for some reason the reindexing process gets stuck on a block and doesn’t complete, you can try running this command to fully delete the data and force a clean reindex.

  • Keep in mind that everything in the .syscoin directory will be deleted except your SentryNode’s syscoin.conf file.

syscoin-cli stop && find /home/syscoin/.syscoin -mindepth 1 ! -name 'syscoin.conf' -exec rm -rf {} + && reboot

Once the process completes, the status will change to Ready, and you can continue with the next step:

{
  "state": "READY",
  "status": "Ready"
}

– SECOND SECTION –

IMPORTANT NOTE: Read this carefully — we mean it.

  • When we run the protx_update_service command, it performs an on-chain transaction, therefore, to avoid any accidental spending of your collateral funds “which would result in loss of Seniority”, it is essential to verify that the collateral transaction is locked in Syscoin QT by following the steps in this tutorial.

Before continuing, we will make sure that we have Syscoin QT fully synchronized.

We’ll use the QT console to run the protx_update_service command with several arguments.

protx_update_service "proTxHash" "ipAndPort" "operatorKey" "nevmAddress" "operatorPayoutAddress" "feeSourceAddress"

The required argument values can be obtained from the SentryNode and/or Syscoin QT.

Get arguments from the SentryNode:

Use the syscoin-cli masternode_status command

{
  "outpoint": "8ebfc22759be8b0b232d451af23b0ce5f451c3e1216304e113c3b0c03413ce-0",
  "service": "31.22.14.172:8369",
  "proTxHash": "5515aa9d6ed1fd1a6cf2f36a95b4ad1fd1a729716a5a6a9da532b308f7c8f8d05f6791",
  "collateralHash": "8eb59962543455b8b6ed10b2325a36ed1e12fc227163042113c3fc227b0c03413ce",
  "collateralIndex": 0,
  "dmnState": {
    "version": 2,
    "service": "31.22.14.172:8369",
    "registeredHeight": 1518368,
    "lastPaidHeight": 1538870,
    "collateralHeight": 1516471,
    "PoSePenalty": 692,
    "PoSeRevivedHeight": -1,
    "PoSeBanHeight": -1,
    "revocationReason": 0,
    "ownerAddress": "sys1q205mhjl8gmqjq6l32xc0gn9fn5kjzz0t9xzrpe",
    "votingAddress": "sys1qfsgpjxrrhddrpr10vjdgjcc5zt02nqf2wqxevh",
    "payoutAddress": "sys1qvp0s85s63zhx49xgjm7de7tcweenjdaypzlpyj",
    "pubKeyOperator": "a4ba7b0e99fda656490144a921c351f3fdd36000c1ee4cf5794f19f40899b9af93517a54bc97ceb60b13bf3",
    "nevmAddress": ""
  },
  "state": "READY",
  "status": "Ready"
}

The values to use in each of the required arguments protx_update_service argument are:

  • proTxHash = “proTxHash”
  • ipAndPort = “service”
  • nevmAddress = Read below
    • If you don’t have an associated EVM address use "" as the “nevmAddress” argument.
    • If you have an associated NEVM Wallet, use the same Wallet you have associated.
    • More information about the argument nevmAddress.
  • operatorPayoutAddress = Copy payoutAddress, or use "" to set a current payoutAddress.
  • feeSourceAddress = (Syscoin address from QT that will fund the ProTx transaction.)
    • If omitted, it defaults to the payout address.
    • To change it, insert the new address.
    • Important: The funding address must not have too many past transactions (a few hundred max); otherwise, the protx_update_service transaction will be rejected for being too large (too many inputs).
  • operatorKey = BLS Key -secret- you obtained when generating the BLS Keys.
    (You can check it again in your SentryNode server’s syscoin.conf using the command)
    cat /home/syscoin/.syscoin/syscoin.conf | grep blsprivkey
Get arguments from Syscoin QT:
  • Enable the Masternodes tab:
    • On Windows and Linux, go to Settings > Options from the top menu in QT.
    • On macOS, go to Syscoin Core > Preferences from the top menu bar.
  • Enable the option “Show Masternodes Tab”, click OK, and restart Syscoin QT.

Once Syscoin QT restarts, you’ll see a new Masternodes tab.

  • Check the option “My masternodes only” to filter.
  • Right-click mouse button of your SentryNode and a context menu will appear with options to copy the required data.

The values to use in each of the required arguments protx_update_service argument are:

  • proTxHash > “Copy ProTx Hash”
  • ipAndPort = “Copy Service”
  • nevmAddress = Read below
    • If you don’t have an EVM address associated with your SentryNode, using “Copy NEVM Address” will not copy anything, so manually add "" as the “nevmAddress” argument
    • If you have an associated NEVM Wallet, click on “Copy NEVM Address” to copy the same Wallet you have associated.
    • More information about the argument nevmAddress.
  • operatorPayoutAddress = Copy Payout Address or ("" to use a current payout address)
  • feeSourceAddress = (Syscoin address in QT that will fund the ProTx transaction).
    • If omitted, defaults to payout address.
    • To change, enter the new funding address.
    • Important: The funding address must not have too many past transactions (a few hundred max); otherwise, the protx_update_service transaction will be rejected for being too large (too many inputs).
  • operatorKey = BLS Key -secret- you obtained when generating the BLS Keys, or must be provided by your SentryNode provider.
    (If you have access to your VPS server, you can check it again in the syscoin.conf file using)
    cat /home/syscoin/.syscoin/syscoin.conf | grep blsprivkey

Finally, from the QT console, run the command and you should receive a transaction hash as confirmation.

  • Example:
protx_update_service "5515aa9d6ed1fd1a6cf2f36a95b4ad1fd1a729716a5a6a9da532b308f7c8f8d05f6791" "31.22.14.172:8369" "5686ad2508f2b42efd6dd34c096b5519f63a6e6516df8a550c3a10dd2e6f58b5" "" ""

protx_transaction

Wait a few minutes for the transaction to confirm, then check the Masternodes tab in Syscoin QT to verify that your SentryNode shows as Status ENABLED.


:warning: If you get any issues, please use our support channel on Discord and open a support ticket.