```{eval-rst}
.. _api-rpc-control:
.. meta::
:title: Control RPCs
:description: A list of all the Control RPCs in Dimecoin.
```
> ***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!***
## Control RPCs
### GetMemoryInfo
The [`getmemoryinfo` RPC](../api/rpc-control.md#getmemoryinfo) returns information about memory usage.
*Parameter #1---mode*
Name | Type | Presence | Description
--- | --- | --- | ---
mode| string | Optional
Default: `stats` | Determines what kind of information is returned.
- `stats` returns general statistics about memory usage in the daemon.
- `mallocinfo` returns an XML string describing low-level heap state (only available if compiled with glibc 2.10+).
*Result---information about memory usage*
Name | Type | Presence | Description
--- | --- | --- | ---
`result` | object | Required
(exactly 1) | An object containing information about memory usage
→
`locked` | string : object | Required
(exactly 1) | An object containing information about locked memory manager
→→
`used` | number (int) | Required
(exactly 1) | Number of bytes used
→→
`free` | number (int) | Required
(exactly 1) | Number of bytes available in current arenas
→→
`total` | number (int) | Required
(exactly 1) | Total number of bytes managed
→→
`locked` | number (int) | Required
(exactly 1) | Amount of bytes that succeeded locking
→→
`chunks_used` | number (int) | Required
(exactly 1) | Number allocated chunks
→→
`chunks_free` | number (int) | Required
(exactly 1) | Number unused chunks
*Example from Dimecoin Core 2.3.0.0*
```bash
dimecoin-cli getmemoryinfo
```
Result:
```json
{
"locked": {
"used": 32,
"free": 262112,
"total": 262144,
"locked": 0,
"chunks_used": 1,
"chunks_free": 1
}
}
```
```{seealso}
* [GetMemPoolInfo](../api/rpc-blockchain.md#getmempoolinfo): returns information about the node's current transaction memory pool.
```
### Help
The [`help` RPC](../api/rpc-control.md#help) lists all available public RPC commands, or gets help for the specified RPC. Commands which are unavailable will not be listed, such as wallet RPCs if wallet support is disabled.
*Parameter #1---the name of the RPC to get help for*
Name | Type | Presence | Description
--- | --- | --- | ---
RPC | string | Optional
(0 or 1) | The name of the RPC to get help for. If omitted, Dimecoin Core will display an alphabetical list of commands; Dimecoin Core will display a categorized list of commands
*Parameter #2---the name of the subcommand to get help for*
Name | Type | Presence | Description
--- | --- | --- | ---
Sub-command | string | Optional
(0 or 1) | The subcommand to get help on. Please note that not all subcommands support this at the moment
*Result---a list of RPCs or detailed help for a specific RPC*
Name | Type | Presence | Description
--- | --- | --- | ---
`result` | string | Required
(exactly 1) | The help text for the specified RPC or the list of commands. The `dimecoin-cli` command will parse this text and format it as human-readable text
*Example from Dimecoin Core 2.3.0.0*
Command to get help about the [`help` RPC](../api/rpc-control.md#help):
```bash
dimecoin-cli -mainnet help help
```
Result:
```text
help ( "command" )
List all commands, or get help for a specified command.
Arguments:
1. "command" (string, optional) The command to get help on
Result:
"text" (string) The help text
```
```{seealso}
* The [RPC Quick Reference](../api/rpc-quick-reference.md)
```
### Logging
The [`logging` RPC](../api/rpc-control.md#logging) gets and sets the logging configuration. When called without an argument, returns the list of categories with status that are currently being debug logged or not. When called with arguments, adds or removes categories from debug logging and return the lists above. The arguments are evaluated in order "include", "exclude". If an item is both included and excluded, it will thus end up being excluded.
*Parameter #1---include categories*
Name | Type | Presence | Description
--- | --- | --- | ---
`include` | array of strings | Optional
(0 or 1) | Enable debugging for these categories
*Parameter #2---exclude categories*
Name | Type | Presence | Description
--- | --- | --- | ---
`exclude` | array of strings | Optional
(0 or 1) | Enable debugging for these categories
The categories are:
Type | Category
--- | ---
Special | • `0` or `none` - Disables all categories
• `1` or `all` - Enables all categories
• `dimecoin` - enables/disables all Dimecoin categories
Standard | `addrman`, `bench`
`cmpctblock`, `coindb`, `estimatefee`, `http`, `leveldb`, `libevent`, `mempool`, `mempoolrej`, `net`, `proxy`, `qt`, `rand`, `reindex`, `rpc`, `selectcoins`, `tor`, `db`, `zmq`
Dimecoin | `gobject`, `instantsend`, `mnpayments`, `mnsync`, `spork`
*Result---a list of the logging categories that are active*
Name | Type | Presence | Description
--- | --- | --- | ---
`result` | object | Required
(exactly 1) | A JSON object show a list of the logging categories that are active
*Example from Dimecoin Core 2.3.0.0*
Include a category in logging
```bash
dimecoin-cli -mainnet logging '["spork"]'
```
Result:
```json
{
"net": false,
"tor": false,
"mempool": false,
"http": false,
"bench": false,
"zmq": false,
"db": false,
"rpc": false,
"estimatefee": false,
"addrman": false,
"selectcoins": false,
"reindex": false,
"cmpctblock": false,
"rand": false,
"prune": false,
"proxy": false,
"mempoolrej": false,
"libevent": false,
"coindb": false,
"qt": false,
"leveldb": false,
"kernel": false,
"spork": true,
"mnsync": false,
"masternode": false,
"gobject": false,
"mnpayments": false
}
```
Exclude a previously included category (without including a new one):
```bash
dimecoin-cli -mainnet logging '[]' '["spork"]'
```
Result:
```json
{
"net": false,
"tor": false,
"mempool": false,
"http": false,
"bench": false,
"zmq": false,
"db": false,
"rpc": false,
"estimatefee": false,
"addrman": false,
"selectcoins": false,
"reindex": false,
"cmpctblock": false,
"rand": false,
"prune": false,
"proxy": false,
"mempoolrej": false,
"libevent": false,
"coindb": false,
"qt": false,
"leveldb": false,
"kernel": false,
"spork": false,
"mnsync": false,
"masternode": false,
"gobject": false,
"mnpayments": false
}
```
```{seealso}
* [Debug](../api/rpc-control.md#debug): changes the debug category from the console.
```
### Stop
The [`stop` RPC](../api/rpc-control.md#stop) safely shuts down the Dimecoin Core server.
*Parameters: none*
*Result---the server is safely shut down*
Name | Type | Presence | Description
--- | --- | --- | ---
`result` | string | Required
(exactly 1) | The string \Dimecoin Core server stopping\""
*Example from Dimecoin Core 2.3.0.0*
```bash
dimecoin-cli -mainnet stop
```
Result:
```text
Dimecoin Core server stopping...
```
```{seealso}
*none*
```
### Uptime
The [`uptime` RPC](../api/rpc-control.md#uptime) returns the total uptime of the server.
*Parameters: none*
*Result*
Name | Type | Presence | Description
--- | --- | --- | ---
`result` | number (int) | Required
(exactly 1) | The number of seconds that the server has been running
*Example from Dimecoin Core 2.3.0.0*
```bash
dimecoin-cli -mainnet uptime
```
Result:
```text
3060
```
```{seealso}
*none*
```