```{eval-rst}
.. meta::
:title: Network RPCs
:description: A list of all network connection related remote procedure calls in Dimecoin Core.
```
> ***We put our best effort into covering all topics related to Dimecoin. Each section will cover a different category. Not all documentation may be 100% accurate, if you spot an error, please report it or submit a PR request on GitHub.***
>
> ***REMINDER: This documentation is always evolving. If you have not been here for a while, perhaps check again. Things may have been added or updated since your last visit!***
## Network RPCs
### AddNode
The [`addnode` RPC](../api/rpc-network.md#addnode) attempts to add or remove a node from the addnode list, or to try a connection to a node once.
*Parameter #1---hostname/IP address and port of node to add or remove*
| Name | Type | Presence | Description |
| ------ | ------ | ----------------------- | ----------------------------------------------------------------- |
| `node` | string | Required
(exactly 1) | The node to add as a string in the form of `:`. |
*Parameter #2---whether to add or remove the node, or to try only once to connect*
| Name | Type | Presence | Description |
| --------- | ------ | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `command` | string | Required
(exactly 1) | What to do with the IP address above. Options are:
• `add` to add a node to the addnode list. Up to 8 nodes can be added additional to the default 8 nodes. Not limited by `-maxconnections`
• `remove` to remove a node from the list. If currently connected, this will disconnect immediately
• `onetry` to immediately attempt connection to the node even if the outgoing connection slots are full; this will only attempt the connection once |
*Result---`null` plus error on failed remove*
| Name | Type | Presence | Description |
| -------- | ---- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `result` | null | Required
(exactly 1) | Always JSON `null` whether the node was added, removed, tried-and-connected, or tried-and-not-connected. The JSON-RPC error field will be set only if you try adding a node that was already added or removing a node that is not on the addnodes list |
*Example from Dimecoin Core 2.3.0.0*
Try connecting to the following node.
```bash
dimecoin-cli -mainnet addnode 147.43.22.113:11391 onetry
```
Result (no output from `dimecoin-cli` because result is set to `null`).
```{seealso}
* [GetAddedNodeInfo](../api/rpc-network.md#getaddednodeinfo): returns information about the given added node, or all added nodes (except onetry nodes). Only nodes which have been manually added using the [`addnode` RPC](../api/rpc-network.md#addnode) will have their information displayed.
```
### ClearBanned
The [`clearbanned` RPC](../api/rpc-network.md#clearbanned) clears list of banned nodes.
*Parameters: none*
*Result---`null` on success*
| Name | Type | Presence | Description |
| -------- | ---- | ----------------------- | ------------------------------------- |
| `result` | null | Required
(exactly 1) | JSON `null` when the list was cleared |
*Example from Dimecoin Core 2.3.0.0*
Clears the ban list.
```bash
dimecoin-cli clearbanned
```
Result (no output from `dimecoin-cli` because result is set to `null`).
```{seealso}
* [ListBanned](../api/rpc-network.md#listbanned): lists all manually banned IPs/Subnets.
* [SetBan](../api/rpc-network.md#setban): attempts add or remove a IP/Subnet from the banned list.
```
### DisconnectNode
The [`disconnectnode` RPC](../api/rpc-network.md#disconnectnode) immediately disconnects from a specified node.
*Parameter #1---hostname/IP address and port of node to disconnect*
| Name | Type | Presence | Description |
| --------- | ------ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `address` | string | Required
(exactly 1) | The node you want to disconnect from as a string in the form of `:`.
|
*Parameter #2---nodeid*
| Name | Type | Presence | Description |
| ------ | ------ | -------- | -------------------------------------------- |
| nodeid | number | Optional | The node ID (see `getpeerinfo` for node IDs) |
*Result---`null` on success or error on failed disconnect_
| Name | Type | Presence | Description |
| -------- | ---- | ----------------------- | ------------------------------------------ |
| `result` | null | Required
(exactly 1) | JSON `null` when the node was disconnected |
*Example from Dimecoin Core 2.3.0.0*
Disconnects following node by address.
```bash
dimecoin-cli -mainnet disconnectnode 147.43.22.113:11391
```
Result (no output from `dimecoin-cli` because result is set to `null`).
Disconnects following node by id.
```bash
dimecoin-cli -mainnet disconnectnode "" 3
```
Result (no output from `dimecoin-cli` because result is set to `null`).
*See also*
* [AddNode](../api/rpc-network.md#addnode): attempts to add or remove a node from the addnode list, or to try a connection to a node once.
* [GetAddedNodeInfo](../api/rpc-network.md#getaddednodeinfo): returns information about the given added node, or all added nodes (except onetry nodes). Only nodes which have been manually added using the [`addnode` RPC](../api/rpc-network.md#addnode) will have their information displayed.
### GetAddedNodeInfo
The [`getaddednodeinfo` RPC](../api/rpc-network.md#getaddednodeinfo) returns information about the given added node, or all added nodes (except onetry nodes). Only nodes which have been manually added using the [`addnode` RPC](../api/rpc-network.md#addnode) will have their information displayed.
Prior to Dimecoin Core 2.0.0.0, this dummy parameter was required for historical purposes but not used:
*DEPRECATED Parameter #1---whether to display connection information*
| Name | Type | Presence | Description |
| ------- | ------ | ------------------------- | ----------------------------- |
| *Dummy* | *bool* | *Required
(exactly 1)* | *Removed in Dimecoin Core 2.0.0.0* |
Beginning with Dimecoin Core 2.0.0.0, this is the single (optional) parameter:
*Parameter #1---what node to display information about*
| Name | Type | Presence | Description |
| ------ | ------ | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `node` | string | Optional
(0 or 1) | The node to get information about in the same `:` format as the [`addnode` RPC](../api/rpc-network.md#addnode). If this parameter is not provided, information about all added nodes will be returned |
*Result---a list of added nodes*
| Name | Type | Presence | Description |
| ---------------------- | ------ | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `result` | array | Required
(exactly 1) | An array containing objects describing each added node. If no added nodes are present, the array will be empty. Nodes added with `onetry` will not be returned |
| →
Added Node | object | Optional
(0 or more) | An object containing details about a single added node |
| → →
`addednode` | string | Required
(exactly 1) | An added node in the same `:` format as used in the [`addnode` RPC](../api/rpc-network.md#addnode). |
| → →
`connected` | bool | Optional
(0 or 1) | This will be set to `true` if the node is currently connected and `false` if it is not |
| → →
`addresses` | array | Required
(exactly 1) | This will be an array of addresses belonging to the added node |
| → → →
Address | object | Optional
(0 or more) | An object describing one of this node's addresses |
| → → → →
`address` | string | Required
(exactly 1) | An IP address and port number of the node. If the node was added using a DNS address, this will be the resolved IP address |
| → → → →
`connected` | string | Required
(exactly 1) | Whether or not the local node is connected to this addnode using this IP address. Valid values are:
• `false` for not connected
• `inbound` if the addnode connected to us
• `outbound` if we connected to the addnode |
*Example from Dimecoin Core 2.3.0.0*
```bash
dimecoin-cli getaddednodeinfo
```
Result (real hostname and IP address replaced with [RFC5737](http://tools.ietf.org/html/rfc5737) reserved address):
```json
[
{
"addednode": "147.43.22.113:11391",
"connected": true,
"addresses": [
{
"address": "147.43.22.113:11391",
"connected": "outbound"
}
]
}
]
```
```{seealso}
* [AddNode](../api/rpc-network.md#addnode): attempts to add or remove a node from the addnode list, or to try a connection to a node once.
* [GetPeerInfo](../api/rpc-network.md#getpeerinfo): returns data about each connected network node.
```
### GetConnectionCount
The [`getconnectioncount` RPC](../api/rpc-network.md#getconnectioncount) returns the number of connections to other nodes.
*Parameters: none*
*Result---the number of connections to other nodes*
| Name | Type | Presence | Description |
| -------- | ------------ | ----------------------- | -------------------------------------------------------------------------- |
| `result` | number (int) | Required
(exactly 1) | The total number of connections to other nodes (both inbound and outbound) |
*Example from Dimecoin Core 2.3.0.0 : 8 is currently the default max connection amount for node seeding purposes*
```bash
dimecoin-cli -mainnet getconnectioncount
```
Result:
```text
8
```
```{seealso}
* [GetNetTotals](../api/rpc-network.md#getnettotals): returns information about network traffic, including bytes in, bytes out, and the current time.
* [GetPeerInfo](../api/rpc-network.md#getpeerinfo): returns data about each connected network node.
* [GetNetworkInfo](../api/rpc-network.md#getnetworkinfo): returns information about the node's connection to the network.
```
### GetNetTotals
The [`getnettotals` RPC](../api/rpc-network.md#getnettotals) returns information about network traffic, including bytes in, bytes out, and the current time.
*Parameters: none*
*Result---the current bytes in, bytes out, and current time*
| Name | Type | Presence | Description |
| -------------------------------- | ------------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `result` | object | Required
(exactly 1) | An object containing information about the node's network totals |
| →
`totalbytesrecv` | number (int) | Required
(exactly 1) | The total number of bytes received since the node was last restarted |
| →
`totalbytessent` | number (int) | Required
(exactly 1) | The total number of bytes sent since the node was last restarted |
| →
`timemillis` | number (int) | Required
(exactly 1) | Unix epoch time in milliseconds according to the operating system's clock (not the node adjusted time) |
| →
`uploadtarget` | string :
object | Required
(exactly 1) | The upload target information |
| → →
`timeframe` | number (int) | Required
(exactly 1) | Length of the measuring timeframe in seconds (currently set to `24` hours) |
| → →
`target` | number (int) | Required
(exactly 1) | The maximum allowed outbound traffic in bytes (default is `0`). Can be changed with `-maxuploadtarget` |
| → →
`target_reached` | bool | Required
(exactly 1) | Indicates if the target is reached. If the target is reached the node won't serve SPV and historical block requests anymore |
| → →
`serve_historical_blocks` | bool | Required
(exactly 1) | Indicates if historical blocks are served |
| → →
`bytes_left_in_cycle` | number (int) | Required
(exactly 1) | Amount of bytes left in current time cycle. `0` is displayed if no upload target is set |
| → →
`time_left_in_cycle` | number (int) | Required
(exactly 1) | Seconds left in current time cycle. `0` is displayed if no upload target is set |
*Example from Dimecoin Core 2.3.0.0*
```bash
dimecoin-cli getnettotals
```
Result:
```json
{
"totalbytesrecv": 14648877947,
"totalbytessent": 679218045,
"timemillis": 1709936767876,
"uploadtarget": {
"timeframe": 86400,
"target": 0,
"target_reached": false,
"serve_historical_blocks": true,
"bytes_left_in_cycle": 0,
"time_left_in_cycle": 0
}
}
```
```{seealso}
* [GetNetworkInfo](../api/rpc-network.md#getnetworkinfo): returns information about the node's connection to the network.
* [GetPeerInfo](../api/rpc-network.md#getpeerinfo): returns data about each connected network node.
```
### GetNetworkInfo
The [`getnetworkinfo` RPC](../api/rpc-network.md#getnetworkinfo) returns information about the node's connection to the network.
*Parameters: none*
*Result---information about the node's connection to the network*
| Name | Type | Presence | Description |
| -------------------------------------- | ------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `result` | object | Required
(exactly 1) | Information about this node's connection to the network |
| →
`version` | number | Required
(exactly 1) | This node's version of Dimecoin Core in its internal integer format. For example, Dimecoin Core 2.3.0.0 has the integer version number 2030000 |
| →
`buildversion` | string | Required
(exactly 1) | The node's build version including RC info or commit as relevant |
| →
`subversion` | string | Required
(exactly 1) | The user agent this node sends in its [`version` message](../reference/p2p-network-control-messages.md#version) |
| →
`protocolversion` | number (int) | Required
(exactly 1) | The protocol version number used by this node. See the [protocol versions section](../reference/p2p-network-protocol-versions.md) for more information |
| →
`localservices` | string (hex) | Required
(exactly 1) | The services supported by this node as advertised in its [`version` message](../reference/p2p-network-control-messages.md#version) |
| →
`localservicesnames` | array | Required
(exactly 1) | An array of strings describing the services offered, in human-readable form. |
| → →
SERVICE_NAME | string | Required
(exactly 1) | The service name. |
| →
`localrelay` | bool | Required
(exactly 1) | The services supported by this node as advertised in its [`version` message](../reference/p2p-network-control-messages.md#version) |
| →
`timeoffset` | number (int) | Required
(exactly 1) | The offset of the node's clock from the computer's clock (both in UTC) in seconds. The offset may be up to 4200 seconds (70 minutes) |
| →
`networkactive` | bool | Required
(exactly 1) | Set to `true` if P2P networking is enabled. Set to `false` if P2P networking is disabled. Enabling/disabling done via [SetNetworkActive](../api/rpc-network.md#setnetworkactive) |
| →
`connections` | number (int) | Required
(exactly 1) | The total number of open connections (both outgoing and incoming) between this node and other nodes |
| →
`inboundconnections` | number (int) | Required
(exactly 1) | The number of inbound connections |
| →
`networks` | array | Required
(exactly 1) | An array with three objects: one describing the IPv4 connection, one describing the IPv6 connection, and one describing the Tor hidden service (onion) connection |
| → →
Network | object | Optional
(0 to 3) | An object describing a network. If the network is unroutable, it will not be returned |
| → → →
`name` | string | Required
(exactly 1) | The name of the network. Either `ipv4`, `ipv6`, or `onion` |
| → → →
`limited` | bool | Required
(exactly 1) | Set to `true` if only connections to this network are allowed according to the `-onlynet` Dimecoin Core command-line/configuration-file parameter. Otherwise set to `false` |
| → → →
`reachable` | bool | Required
(exactly 1) | Set to `true` if connections can be made to or from this network. Otherwise set to `false` |
| → → →
`proxy` | string | Required
(exactly 1) | The hostname and port of any proxy being used for this network. If a proxy is not in use, an empty string |
| → → →
`proxy_randomize_credentials` | bool | Required
(exactly 1) | Set to `true` if randomized credentials are set for this proxy. Otherwise set to `false` |
| →
`relayfee` | number (DIME) | Required
(exactly 1) | The minimum relay fee per kilobyte for transactions in order for this node to accept it into its memory pool |
| →
`incrementalfee` | number (DIME) | Required
(exactly 1) | The minimum fee increment for mempool limiting or BIP 125 replacement in DIME/kB |
| →
`localaddresses` | array | Required
(exactly 1) | An array of objects each describing the local addresses this node believes it listens on |
| → →
Address | object | Optional
(0 or more) | An object describing a particular address this node believes it listens on |
| → → →
`address` | string | Required
(exactly 1) | An IP address or .onion address this node believes it listens on. This may be manually configured, auto detected, or based on [`version` messages](../reference/p2p-network-control-messages.md#version) this node received from its peers |
| → → →
`port` | number (int) | Required
(exactly 1) | The port number this node believes it listens on for the associated `address`. This may be manually configured, auto detected, or based on [`version` messages](../reference/p2p-network-control-messages.md#version) this node received from its peers |
| → → →
`score` | number (int) | Required
(exactly 1) | The number of incoming connections during the uptime of this node that have used this `address` in their [`version` message](../reference/p2p-network-control-messages.md#version) |
| →
`warnings` | string | Required
(exactly 1) | A plain-text description of any network warnings. If there are no warnings, an empty string will be returned. |
*Example from Dimecoin Core 2.3.0.0*
```bash
dimecoin-cli getnetworkinfo
```
Result (actual addresses have been replaced with [RFC5737](http://tools.ietf.org/html/rfc5737) reserved addresses):
```json
{
"version": 2030000,
"subversion": "/dimecoin:2.3.0/",
"protocolversion": 70008,
"localservices": "000000000100040d",
"localrelay": true,
"timeoffset": -1,
"networkactive": true,
"connections": 8,
"networks": [
{
"name": "ipv4",
"limited": false,
"reachable": true,
"proxy": "",
"proxy_randomize_credentials": false
},
{
"name": "ipv6",
"limited": false,
"reachable": true,
"proxy": "",
"proxy_randomize_credentials": false
},
{
"name": "onion",
"limited": true,
"reachable": false,
"proxy": "",
"proxy_randomize_credentials": false
}
],
"relayfee": 0.01000,
"incrementalfee": 0.01000,
"localaddresses": [
],
"warnings": ""
}
```
```{seealso}
* [GetPeerInfo](../api/rpc-network.md#getpeerinfo): returns data about each connected network node.
* [GetNetTotals](../api/rpc-network.md#getnettotals): returns information about network traffic, including bytes in, bytes out, and the current time.
* [SetNetworkActive](../api/rpc-network.md#setnetworkactive): disables/enables all P2P network activity.
```
### GetPeerInfo
The [`getpeerinfo` RPC](../api/rpc-network.md#getpeerinfo) returns data about each connected network node.
*Parameters: none*
*Result---information about each currently-connected network node*
| Name | Type | Presence | Description |
| ------------------------------- | ------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `result` | array | Required
(exactly 1) | An array of objects each describing one connected node. If there are no connections, the array will be empty |
| →
Node | object | Optional
(0 or more) | An object describing a particular connected node |
| → →
`id` | number (int) | Required
(exactly 1) | The node's index number in the local node address database |
| → →
`addr` | string | Required
(exactly 1) | The IP address and port number used for the connection to the remote node |
| → →
`addrlocal` | string | Optional
(0 or 1) | Our IP address and port number according to the remote node. May be incorrect due to error or lying. Most SPV nodes set this to `127.0.0.1:9999` |
| → →
`addrbind` | string | Optional
(0 or 1) | Bind address of the connection to the peer |
| → →
`services` | string (hex) | Required
(exactly 1) | The services advertised by the remote node in its [`version` message](../reference/p2p-network-control-messages.md#version) |
| → →
`lastsend` | number (int) | Required
(exactly 1) | The Unix epoch time when we last successfully sent data to the TCP socket for this node |
| → →
`lastrecv` | number (int) | Required
(exactly 1) | The Unix epoch time when we last received data from this node |
| → →
`bytessent` | number (int) | Required
(exactly 1) | The total number of bytes we've sent to this node |
| → →
`bytesrecv` | number (int) | Required
(exactly 1) | The total number of bytes we've received from this node |
| → →
`conntime` | number (int) | Required
(exactly 1) | The Unix epoch time when we connected to this node |
| → →
`timeoffset` | number (int) | Required
(exactly 1) | The time offset in seconds |
| → →
`pingtime` | number (real) | Required
(exactly 1) | The number of seconds this node took to respond to our last P2P [`ping` message](../reference/p2p-network-control-messages.md#ping) |
| → →
`minping` | number (real) | Optional
(0 or 1) | The minimum observed ping time (if any at all) |
| → →
`pingwait` | number (real) | Optional
(0 or 1) | The number of seconds we've been waiting for this node to respond to a P2P [`ping` message](../reference/p2p-network-control-messages.md#ping). Only shown if there's an outstanding [`ping` message](../reference/p2p-network-control-messages.md#ping) |
| → →
`version` | number (int) | Required
(exactly 1) | The protocol version number used by this node. See the [protocol versions section](../reference/p2p-network-protocol-versions.md) for more information |
| → →
`subver` | string | Required
(exactly 1) | The user agent this node sends in its [`version` message](../reference/p2p-network-control-messages.md#version). This string will have been sanitized to prevent corrupting the JSON results. May be an empty string |
| → →
`inbound` | bool | Required
(exactly 1) | Set to `true` if this node connected to us (inbound); set to `false` if we connected to this node (outbound) |
| → →
`addnode` | bool | Required
(exactly 1) | Set to `true` if this node was added via the [`addnode` RPC](../api/rpc-network.md#addnode). |
| → →
`startingheight` | number (int) | Required
(exactly 1) | The height of the remote node's blockchain when it connected to us as reported in its [`version` message](../reference/p2p-network-control-messages.md#version) |
| → →
`banscore` | number (int) | Required
(exactly 1) | The ban score we've assigned the node based on any misbehavior it's made. By default, Dimecoin Core disconnects when the ban score reaches `100` |
| → →
`synced_headers` | number (int) | Required
(exactly 1) | The highest-height header we have in common with this node based the last P2P [`headers` message](../reference/p2p-network-data-messages.md#headers) it sent us. If a [`headers` message](../reference/p2p-network-data-messages.md#headers) has not been received, this will be set to `-1` |
| → →
`synced_blocks` | number (int) | Required
(exactly 1) | The highest-height block we have in common with this node based on P2P [`inv` messages](../reference/p2p-network-data-messages.md#inv) this node sent us. If no block [`inv` messages](../reference/p2p-network-data-messages.md#inv) have been received from this node, this will be set to `-1` |
| → →
`inflight` | array | Required
(exactly 1) | An array of blocks which have been requested from this peer. May be empty |
| → → →
Blocks | number (int) | Optional
(0 or more) | The height of a block being requested from the remote peer |
| → →
`whitelisted` | bool | Required
(exactly 1) | Set to `true` if the remote peer has been whitelisted; otherwise, set to `false`. Whitelisted peers will not be banned if their ban score exceeds the maximum (100 by default). By default, peers connecting from localhost are whitelisted |
| → →
`bytessent_per_msg` | string :
object | Required
(exactly 1) | Information about total sent bytes aggregated by message type |
| → → →
Message Type | number (int) | Required
(1 or more) | Total sent bytes aggregated by message type. One field for every used message type |
| → →
`bytesrecv_per_msg` | string :
object | Required
(exactly 1) | Information about total received bytes aggregated by message type |
| → → →
Message Type | number (int) | Required
(1 or more) | Total received bytes aggregated by message type. One field for every used message type |
*Example from Dimecoin Core 2.3.0.0*
```bash
dimecoin-cli -mainnet getpeerinfo
```
Result (edited to show only a single entry, with IP addresses changed to
[RFC5737](http://tools.ietf.org/html/rfc5737) reserved IP addresses):
```json
[
{
"id": 51,
"addr": "25.31.126.30:11931",
"addrlocal": "42.76.160.67:50780",
"addrbind": "182.178.3.14:50780",
"services": "000000000100040d",
"relaytxes": true,
"lastsend": 1709937478,
"lastrecv": 1709937478,
"bytessent": 78171543,
"bytesrecv": 936013475,
"conntime": 1709864306,
"timeoffset": -1,
"pingtime": 0.095316,
"minping": 0.093957,
"version": 70008,
"subver": "/dimecoin:2.3.0/",
"inbound": false,
"addnode": false,
"startingheight": 5781425,
"banscore": 0,
"synced_headers": 5782938,
"synced_blocks": 5782938,
"inflight": [
],
"whitelisted": false,
"bytessent_per_msg": {
"addr": 385,
"checkpoint": 128001,
"dseg": 65,
"getaddr": 24,
"getdata": 76468394,
"getheaders": 806598,
"getsporks": 48,
"headers": 84962,
"inv": 639952,
"mnp": 704,
"mnw": 3220,
"ping": 19520,
"pong": 19520,
"verack": 24,
"version": 126
}
}
]
```
```{seealso}
* [GetAddedNodeInfo](../api/rpc-network.md#getaddednodeinfo): returns information about the given added node, or all added nodes (except onetry nodes). Only nodes which have been manually added using the [`addnode` RPC](../api/rpc-network.md#addnode) will have their information displayed.
* [GetNetTotals](../api/rpc-network.md#getnettotals): returns information about network traffic, including bytes in, bytes out, and the current time.
* [GetNetworkInfo](../api/rpc-network.md#getnetworkinfo): returns information about the node's connection to the network.
```
### ListBanned
The [`listbanned` RPC](../api/rpc-network.md#listbanned) lists all ***manually banned*** IPs/Subnets.
*Parameters: none*
*Result---information about each banned IP/Subnet*
| Name | Type | Presence | Description |
| ----------------------- | --------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `result` | object | Required
(exactly 1) | An array of objects each describing one entry. If there are no entries in the ban list, the array will be empty |
| →
Node | object | Optional
(0 or more) | A ban list entry |
| → →
`address` | string | Required
(exactly 1) | The IP/Subnet of the entry |
| → →
`banned_until` | number
(int) | Required
(exactly 1) | The Unix epoch time when the entry was added to the ban list |
| → →
`ban_created` | number
(int) | Required
(exactly 1) | The Unix epoch time until the IP/Subnet is banned |
*Examples from Dimecoin Core 2.3.0.0*
```bash
dimecoin-cli listbanned
```
Result:
```json
[
{
"address": "192.0.2.201/32",
"banned_until": 1507906175,
"ban_created": 1507819775,
},
{
"address": "192.0.2.101/32",
"banned_until": 1507906199,
"ban_created": 1507819799,
}
]
```
```{seealso}
* [SetBan](../api/rpc-network.md#setban): attempts add or remove a IP/Subnet from the banned list.
* [ClearBanned](../api/rpc-network.md#clearbanned): clears list of banned nodes.
```
### Ping
The [`ping` RPC](../api/rpc-network.md#ping) sends a P2P ping message to all connected nodes to measure ping time. Results are provided by the [`getpeerinfo` RPC](../api/rpc-network.md#getpeerinfo) pingtime and pingwait fields as decimal seconds. The P2P [`ping` message](../reference/p2p-network-control-messages.md#ping) is handled in a queue with all other commands, so it measures processing backlog, not just network ping.
*Parameters: none*
*Result---`null`*
| Name | Type | Presence | Description |
| -------- | ---- | -------- | ------------------ |
| `result` | null | Required | Always JSON `null` |
*Example from Dimecoin Core 2.3.0.0*
```bash
dimecoin-cli -mainnet ping
```
(Success: no result printed.)
Get the results using the [`getpeerinfo` RPC](../api/rpc-network.md#getpeerinfo):
```bash
dimecoin-cli -mainnet getpeerinfo | grep ping
```
Results:
```json
"pingtime": 0.167647,
"pingtime": 0.164519,
"pingtime": 0.226734,
"pingtime": 0.117908,
"pingtime": 0.113373,
"pingtime": 0.239833,
"pingtime": 0.132679,
"pingtime": 0.124652
```
```{seealso}
* [GetPeerInfo](../api/rpc-network.md#getpeerinfo): returns data about each connected network node.
* [P2P Ping Message](../reference/p2p-network-control-messages.md#ping)
```
### SetBan
The [`setban` RPC](../api/rpc-network.md#setban) attempts add or remove a IP/Subnet from the banned list.
*Parameter #1---IP/Subnet of the node*
| Name | Type | Presence | Description |
| ------------ | ------ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| IP(/Netmask) | string | Required
(exactly 1) | The node to add or remove as a string in the form of ``. The IP address may be a hostname resolvable through DNS, an IPv4 address, an IPv4-as-IPv6 address, or an IPv6 address |
*Parameter #2---whether to add or remove the node*
| Name | Type | Presence | Description |
| ------- | ------ | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Command | string | Required
(exactly 1) | What to do with the IP/Subnet address above. Options are:
• `add` to add a node to the addnode list
• `remove` to remove a node from the list. If currently connected, this will disconnect immediately |
*Parameter #3---time how long the ip is banned*
| Name | Type | Presence | Description |
| ------- | ---------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Bantime | numeric
(int) | Optional
(0 or 1) | Time in seconds how long (or until when if `absolute` is set) the entry is banned. The default is 24h which can also be overwritten by the -bantime startup argument |
*Parameter #4---whether a relative or absolute timestamp*
| Name | Type | Presence | Description |
| -------- | ---- | -------------------- | ---------------------------------------------------------------------------------------- |
| Absolute | bool | Optional
(0 or 1) | If set, the bantime must be a absolute timestamp in seconds since epoch (Jan 1 1970 GMT) |
*Result---`null` on success*
| Name | Type | Presence | Description |
| -------- | ---- | ----------------------- | ------------------ |
| `result` | null | Required
(exactly 1) | Always JSON `null` |
*Example from Dimecoin Core 2.3.0.0*
Ban the following node.
```bash
dimecoin-cli -mainnet setban 147.22.2.111 add 1591000
```
Result (no output from `dimecoin-cli` because result is set to `null`).
```{seealso}
* [ListBanned](../api/rpc-network.md#listbanned): lists all manually banned IPs/Subnets.
* [ClearBanned](../api/rpc-network.md#clearbanned): clears list of banned nodes.
```
### SetNetworkActive
The [`setnetworkactive` RPC](../api/rpc-network.md#setnetworkactive) disables/enables all P2P network activity.
*Parameter #1---whether to disable or enable all P2P network activity*
| Name | Type | Presence | Description |
| -------- | ---- | ----------------------- | ---------------------------------------------------------------------------------------------------- |
| Activate | bool | Required
(exactly 1) | Set to `true` to enable all P2P network activity. Set to `false` to disable all P2P network activity |
*Result---`null` or error on failure_
| Name | Type | Presence | Description |
| -------- | ---- | ----------------------- | ------------------------------------------------------------------------------------------- |
| `result` | null | Required
(exactly 1) | JSON `null`. The JSON-RPC error field will be set only if you entered an invalid parameter |
*Example from Dimecoin Core 2.3.0.0*
```bash
dimecoin-cli setnetworkactive true
```
Result (no output from `dimecoin-cli` because result is set to `null`).
```{seealso}
* [GetNetworkInfo](../api/rpc-network.md#getnetworkinfo): returns information about the node's connection to the network.
```