> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chainbase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Run a Chainbase AVS Operator

## Overview

This guide will walk you through the process of setting up and running a Chainbase AVS (Actively Validated Service) operator node.

## Requirements

Recommended Hardware Specifications

| Class                   | vCPUs (10th gen+) | Memory | Networking Capacity |
| ----------------------- | ----------------- | ------ | ------------------- |
| General Purpose - large | 2                 | 8 GB   | 5 Mbps              |
| General Purpose - xl    | 4                 | 16 GB  | 25 Mbps             |
| General Purpose - 4xl   | 16                | 64 GB  | 5 Gbps              |

Before you begin, ensure you have the following prerequisites installed:

➕[Docker](https://docs.docker.com/get-docker/): Docker is a requirement for AVS operator node.

➕[Docker Compose](https://docs.docker.com/compose/install/):  Docker Compose is used alongside Docker for executing operator node.

➕ **Linux Environment**: Eigenlayer’s CLI only runs in a Linux environment.

➕[Go](https://go.dev/doc/install): Two out of three installation routes require the use of Go. It’s safer to go with Go than go without. 😉

## Installation Process

### Migration From Previous Version

If you've previously run a Chainbase AVS operator node:

1. You can delete old version `chainbase-avs-setup` directory on your server, but need to back up your encrypted **ECDSA** and **BLS** keys.
2. Skip the **EigenLayer Registration** step and only start from **Chainbase AVS Setup** step.

### EigenLayer Registration

Ensure you've registered with EigenLayer before proceeding. For guidance, refer to the [EigenLayer Operator Installation Guide](https://docs.eigenlayer.xyz/eigenlayer/operator-guides/operator-installation).

### Chainbase AVS Setup

1. Clone the Chainbase AVS setup repository:

```
git clone https://github.com/chainbase-labs/chainbase-avs-setup
```

run a Chainbase AVS operator node on mainnet (**invited and whitelisted**):

```
cd chainbase-avs-setup/mainnet
```

**OR** run a Chainbase AVS operator node on testnet (**no restrictions**):

```
cd chainbase-avs-setup/holesky
```

2. Set up the environment file:

```
cp .env.example .env
```

Configure all fields in the `.env` file with your specific information:

```
NODE_ECDSA_KEY_FILE_PATH=/your/ecdsa/key/path
NODE_BLS_KEY_FILE_PATH=/your/bls/key/path
OPERATOR_ECDSA_KEY_PASSWORD=yourECDSAKeyPassword
OPERATOR_BLS_KEY_PASSWORD=yourBlsKeyPassword
OPERATOR_ADDRESS=yourECDSAKeyAddress
NODE_SOCKET=yourNodeSocket
OPERATOR_NAME=yourOperatorName
```

Use the command `eigenlayer operator keys list` to retrieve information about your  **ECDSA** and **BLS** key paths and operator address.

* **OPERATOR\_ADDRESS**: Set to your operator address (must match your ECDSA key address).
* **NODE\_SOCKET**: Set to your server's public IP address (format: `<your_server_public_ip>:8011`).

Important:

* Ensure your server's public IP is internet-accessible.
* Verify that port 8011 is open and properly configured in your firewall settings.

3. Set execution permissions for the script:

```shell theme={null}
chmod +x ./chainbase-avs.sh
```

## Operating the Chainbase AVS

### Register as an Operator

Run the following command to register as an operator:

```shell theme={null}
./chainbase-avs.sh register
```

### Run Node

Run the following command to startup node:

```shell theme={null}
./chainbase-avs.sh run
```

### Test Node

Run the following command to test node:

```shell theme={null}
./chainbase-avs.sh test
```

If you see the output `All systems are working for your manuscript node` in the command line output, it indicates that your node is running correctly.

### Update Node socket

If your server's public IP address is changed after you register as an operator, you need to update the node socket.
Configure `NODE_SOCKET` in `.env` file, then run the following command:

```shell theme={null}
./chainbase-avs.sh socket
```

### Update Node version

Run the following command to update node version:

```shell theme={null}
./chainbase-avs.sh stop
./chainbase-avs.sh update
./chainbase-avs.sh run
```

### Monitor Logs

View container logs using any of these commands:

```shell theme={null}
docker compose logs -f
docker compose logs -f <container_name>
docker logs -f <container_id>
```

### Dashboard

You can visit `<your_server_public_ip>:3010` on browser to view the dashboard to confirm the status of your node.If you are unable to access the page in your browser, please verify that port 3010 on your server is open and properly configured in firewall settings.

## Troubleshooting

If you encounter any issues during setup or operation, please contact our support team on [Discord](https://discord.com/channels/933995010158907422/1268125787546980403).

## Additional Resources

* [EigenLayer Documentation](https://docs.eigenlayer.xyz/)
