# Holesky Setup

{% hint style="info" %}
Testnet is available on Holesky
{% endhint %}

We have our pre-built binaries in form of container images hosted on docker hub. The following is a quick start guide on running the same for a node operator who is interested to setup a diligence watchtower on the Holesky chain

## Prerequisites

* Read the [Node Requirements](/archive/for-the-node-operators/node-requirements.md), if you haven't
* Access
  * Watchtower Node Operator should be a registered EigenLayer Node Operator.&#x20;
    * [Formal guide to register](< https://docs.eigenlayer.xyz/operator-guides/operator-introduction>)
  * Registered [EL Operator ](https://docs.eigenlayer.xyz/operator-guides/operator-introduction)needs to be whitelisted on Witness Chain Network. Whitelisting will be done with the help of the Witness Chain team through a whitelisting process.  If you are not sure how, [Steps for setup](#steps-for-setup) will guide you through it.&#x20;
* Software
  * Docker client, engine and container runtime installed (version 23.0.0 or above, refer: <https://docs.docker.com/desktop/install/linux-install/>)
* Hardware
  * Hardware requirements for the watchtower node can accessed [here](/archive/for-the-node-operators/node-requirements.md)
  * One of the node configurations as described in the [Node Types](#node-types) section below. Don't worry about how to configure right now ! As long as you have access to one of the configurations, we are good. We have you covered in the [Steps for setup](#steps-for-setup) section !

## Node Types

The node operator is expected to deploy the watchtower container alongside both L1 and L2 Archived nodes in the ideal scenario. But, we offer a few more configurations if you would like to re-use some of your existing infrastructure or setup. The configuration parameters for the L1 and L2 Archived nodes may belong to one of the following distinct categories.

| Configuration Type                                                                                                                           | L1 Node                           | L2 Node                                                            |
| -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ------------------------------------------------------------------ |
| [Light](/archive/for-the-node-operators/watchtower-setup/holesky-setup/l2-archive-node-setup-guide.md#light-configuration-for-l2-node-setup) | Use a Hosted L1 Node RPC Provider | Use Witness Chain provided L2 Node snapshot  to bootstrap the node |
| Medium                                                                                                                                       | Use a Hosted L1 Node RPC Provider | Run an L2 Archive Node synced from a public checkpoint             |
| Full                                                                                                                                         | Run an L1 Full Node               | Run an L2 Archive Node synced from a public checkpoint             |

## Steps for setup

{% hint style="danger" %}
**Note:** Make sure there aren't any older version of watchtower images or containers. Use the below command to remove older/stale images

`docker rm <stale_container_id>`

`docker rmi -f <stale_image_name>`
{% endhint %}

### **Step 1: Register with EigenLayer as an Operator**&#x20;

{% hint style="info" %}
ONLY If you aren't yet an EigenLayer Operator yet, HOW TO can be found [here](https://docs.eigenlayer.xyz/operator-guides/operator-introduction)
{% endhint %}

### **Step 2: Get whitelisted on the Watchtower Network**.&#x20;

The Witness Chain watchtower network is a permissioned network currently.  Please connect with us on our [Discord](https://discord.gg/7hRNBDeY5e), if you want to become a watchtower operator

### Step 3: Register the operator on the Witness Chain Watchtower Network&#x20;

{% hint style="danger" %}
Before you start any activity on this network, ensure your operator and watchtower addresses are sufficiently funded to cover the gas costs. Use the [faucet](https://blue-orangutan-faucet.eu-north-2.gateway.fm) to fund it.
{% endhint %}

Register your EL operator address on the  WitnessChain **OperatorRegistry** contract. You can do so with the help of our CLI utility.&#x20;

#### Prerequisites

The CLI tool expects Ubuntu 22.04 (if you are running on linux) or if you are running on Ubuntu 20.04, ensure the glibc version is 2.34+&#x20;

```bash
# Run ldd --version to get the GLIBC version
ldd --version
```

#### Step 3.1 : Installation and Running the CLI

1. Installation:

   ```bash
   curl -sSfL https://witnesschain-com.github.io/install-operator-cli-testnet | bash
   ```
2. Running:

   <pre class="language-bash"><code class="lang-bash"><strong>export PATH="$PATH:~/.witnesschain/cli/"
   </strong>watchtower-operator --version

   Expected VERSION:
      v0.3.0
   </code></pre>

{% hint style="warning" %}
If you are facing the following error, please upgrade to Ubuntu 22.04

$ watchtower-operator --version

watchtower-operator: /lib/x86\_64-linux-gnu/libc.so.6: version \`GLIBC\_2.32' not found (required by watchtower-operator)

watchtower-operator: /lib/x86\_64-linux-gnu/libc.so.6: version \`GLIBC\_2.34' not found (required by watchtower-operator)
{% endhint %}

#### Step 3.2 : Registering the operator and the watchtowers

Once you've ensured the tool is installed correctly, run the below commands  to register the operator with our AVS and associate the watchtowers to the operator.

{% hint style="info" %}
**Note:** Refer to our [FAQs](/archive/proof-of-diligence-watchtower-protocol/faqs.md#how-is-a-watchtower-address-different-from-operator-address) to understand the difference between watchtower addresses and operator addresses
{% endhint %}

**Setup the configuration files for the OPERATOR CLI**

#### operator-config.json

```
# Set of watchtower private keys that will sign the Diligence Proofs. 
# This is used for registration purposes
# Registration will happen both on L1 and L2 simultaneously
```

```json
{
  "watchtower_private_keys": [
    "<raw-watchtower-private-key e.g. 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef>"
  ],
  "operator_private_key": "<raw-watchtower-private-key e.g. 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef>",
  "eth_rpc_url": "https://ethereum-holesky-rpc.publicnode.com", 
  "proof_submission_rpc_url": "https://blue-orangutan-rpc.eu-north-2.gateway.fm/"
}
```

{% hint style="danger" %}

<pre><code><strong>If you are operating a Smart Contract Wallet as the operator address
</strong><strong>then 
</strong><strong>
</strong><strong>set 
</strong><strong>
</strong><strong>"eth_rpc_url": ""
</strong><strong>
</strong><strong>This will register the Operator EoA only on L2.
</strong><strong>
</strong><strong>
</strong></code></pre>

{% endhint %}

```sh
# Registers the Operator to WitnessHub AVS on EigenLayer 
# This is required for the Operator to be listed on EigenLayer's 
# AVS-Operator Page (https://holesky.eigenlayer.xyz/avs/0xa987ec494b13b21a8a124f8ac03c9f530648c87d)

# Witnesschain Txns can be monitored via Blockscout at 
# https://witnesschain-testnet-blockscout.eu-north-2.gateway.fm

$ watchtower-operator registerOperatorToAVS --config-file <path to operator-config.json file>
```

```bash
# Registers the Operator's watchtower to WitnessHub AVS on Layer 1 
# and Witness Chain's L2 CDK Chain
# This registration is required for operators to be associated with the 
# points awarded as a result of diligently watching the chains.
# To understand what are watchtowers, please read the FAQs

$ watchtower-operator registerWatchtower --config-file <path to operator-config.json file>
```

{% hint style="danger" %}
Mask the operator private-keys or remove it from the config files once the registration process is complete. We don't require it for submitting the bounties in this file
{% endhint %}

### Step 4: Submitting the bounties

1. Post the registrations are complet&#x65;**, install the watchtower client**, by running the following command.

{% hint style="danger" %}
**Note:** Make sure there aren't any older version of watchtower images or containers. Use the below command to remove older/stale images

`docker rm <stale_container_id>`

`docker rmi -f <stale_image_name>`
{% endhint %}

```sh
curl https://witnesschain-com.github.io/install-watchtower-testnet | sh
```

The above command will guide you through the rest of installation process.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.witnesschain.com/archive/for-the-node-operators/watchtower-setup/holesky-setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
