Connections management

Connections management

Starting with version 1.2.4, the SpeedCash Desktop Wallets and the SpeedCash Wallet Node have connection management support. This functionality allows it to display a connection over network nodes and manage the connection list by adding/deleting nodes and setting ban/trust parameters.

How to Operate

In the desktop wallet, you have to open the Console by running “Help>Debug window” from the main menu and then switching over to the Console page. Here you can enter the commands that are described below. The process should look like this:

In the case that you are running a headless wallet daemon node, you have to use the Wallet CLI tool. The commands and their meaning will be identical.

Listing of connections statuses

To have the list of connections and their statuses displayed, you need to run the following command:

getpeerinfo

This will provide the list of connected nodes and the following parameters for each node:

  • addr: node ipv4/ipv6 address and port;
  • services: should be 00000001 for all supported nodes;
  • lastsend: unix time of last packet send to this node;
  • lastrecv: unix time of last packet receive from this node;
  • conntime: unix time of connection to this node;
  • version: SCS protocol version, should be 72400;
  • subver: human-readable version of node wallet;
  • startingheight: count of blockchain blocks synchronized on this node at the time of connection;
  • banscore: the dynamically calculated banning score of this node. Each misbehavior of the node, like the sending of duplicated responses on the same request or an attempt of publishing the wrong PoS, will increase this value. Once it hits 100, the node will be auto-banned.

Connection management

Node adding – The following steps outline the process for adding a node. For the connection to the specified node (by its ip and port) you can run the following command:

addnode ip:port

The result will be returned to the console in the following format:

{
"node" : "ip:port",
"operation" : "add",
"value" : "true",
"status" : true
}

Where the “node” was the node you specified, “operation” and “value” are the internal description of the executed command, and the “status” is the operation status. Here, if “true” is displayed, this signifies that the command was performed successfully, or if “false” is displayed, there was an occurrence of an error.

Disconnection of the Specified Node - If the scenario rises that you would need to immediately force a disconnection of the specified node, please run the following command:

disconnectnode ip:port

The command return is in the same format as the “addnode” command. This is also true for the following commands.

Trust the Specified Node – The specified node will never be auto-banned; however, that doesn’t mean that we blindly trust its blocks. In order to enable trust for the specified node, please enter the required command:

trustnode ip:port

Distrust the Specified Node – In order to enable distrust for the specified node, it needs to be removed from the trust list by running the following command. It is essential to note that this does not mean it will be automatically disconnected or banned; however, its ban score will be calculated again:

untrustnode ip:port

Ban the Specified Node – In the scenario that a node sends you malformed data or that a probable attack is suspected, you can immediately ban the specified node by disconnecting it and never allowing a connection to be made from that moment on. To do so, use:

bannode ip:port

Unban the Specified Node – In order to unban the specified node, it necessary to remove the specified node from the ban list and start to accept the connections from it. It is important to recognize that by doing this, it does not imply the instant re-connection. The required command is:

unbannode ip:port

 

Leave a Reply

Your email address will not be published. Required fields are marked *