# Cluster rippled Servers

If you run multiple [`rippled` servers](/es-es/docs/concepts/networks-and-servers) in the same data center, you can configure them in a [cluster](/es-es/docs/concepts/networks-and-servers/clustering) to maximize efficiency. To configure clustering:

1. For each of your servers, note the IP address of the server.
2. For each of your servers, generate a unique seed using the [validation_create method](/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create).
For example, using the commandline interface:

```
$ rippled validation_create

Loading: "/etc/rippled.cfg"
Connecting to 127.0.0.1:5005
{
   "result" : {
      "status" : "success",
      "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA",
      "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG",
      "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu"
   }
}
```
Save the `validation_seed` and `validation_public_key` parameters from each response somewhere secure.
3. On each server, edit the [config file](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg), modifying the following sections:
  1. In the `[ips_fixed]` section, list the IP address and port of each *other* member of the cluster. For each of those servers, the port number should match the `protocol = peer` port (usually 51235) from that server's `rippled.cfg`. For example:

```
[ips_fixed]
192.168.0.1 51235
192.168.0.2 51235
```
This defines specific peer servers to which this server should always attempt to maintain a direct peer-to-peer connection.
If you omit the port number, the server uses port 2459, the IANA-assigned port for the XRP Ledger protocol.
  2. In the `[node_seed]` section, set the server's node seed to one of the `validation_seed` values you generated using the [validation_create method](/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create) in step 2. Each server must use a unique node seed. For example:

```
[node_seed]
ssZkdwURFMBXenJPbrpE14b6noJSu
```
This defines the key pair the server uses to sign peer-to-peer communications, excluding validation messages.
  3. In the `[cluster_nodes]` section, set the members of the server's cluster, identified by their `validation_public_key` values. Each server should list the public keys of all *other* members of the cluster here. Optionally, add a custom name for each server. For example:

```
[cluster_nodes]
n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar keynes
n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa friedman
```
This defines the key pairs the server uses to recognize members of its cluster.
4. After saving the config file, restart `rippled` on each server.

```
# systemctl restart rippled
```
5. To confirm that each server is now a member of the cluster, use the [peers method](/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers). The `cluster` field should list the public keys and (if configured) the custom names for each server.
For example, using the commandline interface:

```
$ rippled peers

Loading: "/etc/rippled.cfg"
Connecting to 127.0.0.1:5005
{
  "result" : {
    "cluster" : {
        "n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar": {
          "tag": "keynes",
          "age": 1
        },
        "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa": {
          "tag": "friedman",
          "age": 1
        }
    },
    "peers" : [
      ... (omitted) ...
    ],
    "status" : "success"
  }
}
```


## See Also

- **Concepts:**
  - [Peer Protocol](/es-es/docs/concepts/networks-and-servers/peer-protocol)
- **Tutorials:**
  - [Install rippled](/es-es/docs/infrastructure/installation)
- **References:**
  - [validation_create method](/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create)
  - [peers method](/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers)