> For the complete documentation index, see [llms.txt](https://firmachain-1.gitbook.io/firmachain/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://firmachain-1.gitbook.io/firmachain/getting-started/install-firmachain/specification.md).

# Specification

### Hardware requirements

Disk space depends on the [pruning strategy](https://hub.cosmos.network/main/gaia-tutorials/join-mainnet.html#pruning-of-state) of your choice.

There are four strategies for pruning state. These strategies apply only to state and do not apply to block storage. To set pruning, adjust the `pruning` parameter in the `~/.firmachain/config/app.toml` file. The following pruning state settings are available:

1. `everything`: Prune all saved states other than the current state.
2. `nothing`: Save all states and delete nothing.
3. `default`: Save the last 100 states and the state of every 10,000th block.
4. `custom`: Specify pruning settings with the `pruning-keep-recent`, `pruning-keep-every`, and `pruning-interval` parameters.

<table><thead><tr><th width="228.33333333333331">Pruning strategy	</th><th>Minimum disk space</th><th>Recommended disk space</th></tr></thead><tbody><tr><td>everything</td><td>20 GB</td><td>40 GB</td></tr><tr><td>default</td><td>80 GB</td><td>120 GB</td></tr><tr><td>nothing</td><td>120 GB</td><td>> 240 GB</td></tr></tbody></table>

By default, every node is in `default` mode which is the recommended setting for most environments.

Apart from disk space, the following requirements should be met.

| Minimum CPU cores | Recommended CPU cores |
| ----------------- | --------------------- |
| 2                 | 4                     |

| Minimum RAM | Recommended RAM |
| ----------- | --------------- |
| 4 GB        | 8 GB            |

### Service Ports

<table><thead><tr><th>Type</th><th width="178.37007626758634">Port number</th><th width="349.9763569256051">Description</th></tr></thead><tbody><tr><td>SSH</td><td>22</td><td>for connect ssh</td></tr><tr><td>API</td><td>1317</td><td>http api</td></tr><tr><td>P2P</td><td>26656</td><td>for peer communication</td></tr></tbody></table>

### Increase maximum open files

In general, most operating systems limit the maximum number of files that can be opened.\
(The document was written based on `Ubuntu 20.04 LTS`, and the default value of this OS is 1024.)\
However, if you open `/etc/security/limits.conf` and modify the value as can be seen in the code below, you can raise the limit of the nofile feature

```
*                soft    nofile          65535
*                hard    nofile          65535
```
