# Testnet Node Setup

{% hint style="info" %}
We will be sunsetting the alpha testnet shortly. To prevent the confusion and conflict between both the chains, the script will automatically remove the alpha-testnet's configurations from user's system and setup a new testnet node for them.
{% endhint %}

### Prerequisites

#### System Requirements

* **Operating System:** Ubuntu 22.04
* **Memory:** At least 4GB RAM
* **Storage:** Minimum 20GB available disk space
* **Network:** Stable internet connection

#### Tools and Dependencies

Ensure the following tools are installed:

* Go *( by running the install\_go.sh script )*
* Jq
* Bash
* wget
* unzip
* build-essential

All of these installations are already covered in the qubetics-testnet-script.sh script.

### Step 1: Prepare Your Environment

1. **Run as Root or with Sudo Privileges:** Ensure the script is executed with root privileges. If not, you may encounter permission issues.

```bash
sudo su
```

&#x20;2\. **Clone the Repo:** Clone the repository and change into the directory.

```bash
git clone https://github.com/Qubetics/qubetics-testnet-script
cd qubetics-testnet-script
```

### Step 2: Execute the Script

{% hint style="info" %}
Check if Go is installed, and if not, then run this script \
./install-go.sh&#x20;
{% endhint %}

#### Run the Script

Execute the script to install the required components and set up the node.

```bash
./qubetics_ubuntu_node.sh
```

* The script prompts for the node name; please provide it.
* The script prompts the user to **set up a password for the keyring** so that the keys are stored securely.
* Set a secure **numeric/alphanumeric password** and provide it whenever prompted.

#### Key Configuration Prompts

* If a previous node configuration exists, you will be prompted to overwrite it. Choose y to overwrite or n to retain the existing setup.
* Save the generated keys and mnemonics securely when prompted. These are essential for accessing your node.

### Step 3: Verify Installation

1. **Validate Genesis:** Ensure the genesis file is properly configured.

```bash
qubeticsd validate-genesis --home /data/.tmp-qubeticsd
```

2. **Display Node Information:** After setup, the script displays important node details:

* Tendermint Public Key
* Bech32 Address
* Node ID

Record these details for future reference.

### Step 4: Start the Node

The script automatically sets up and starts the node as a system service.

Manage the Node Service

* **Start the Service:**

```bash
sudo systemctl start qubeticschain.service
```

* **Check the Service Status:**

```bash
sudo systemctl status qubeticschain.service
```

* **Enable the Service to Start on Boot:**

```bash
sudo systemctl enable qubeticschain.service
```

### Additional Configurations

#### Update Configurations

The script automatically modifies configuration files located in /data/.tmp-qubeticsd/config/

* **Timeout Settings:** Adjusted for optimal performance.
* **Gas Prices:** 0.25 TICS.
* **Networking:** Configured to listen on all interfaces (0.0.0.0).

#### Persistent Peers

The script includes default persistent peers to facilitate P2P communication. To add or modify peers, edit the config.toml file.

```bash
nano /data/.tmp-qubeticsd/config/config.toml
```

### Troubleshooting

#### Common Issues

1. **Dependency Errors:** Ensure all dependencies (e.g., jq, go) are installed before running the script.

```bash
sudo apt-get install -y jq build-essential wget unzip
```

2. **Service Not Starting:** Check logs for detailed error messages:

```bash
sudo journalctl -u qubeticschain.service -f
```

3. **Genesis File Validation Failed:** Verify the Genesis file contents and ensure they match the required network configuration.
4. **Permission Denied:** Please verify that you have completed all the required steps and granted the necessary permissions to the script using the **chmod** command.

### Maintenance

#### Restart the Node

```bash
sudo systemctl restart qubeticschain.service
```

#### Stop the Node

```bash
sudo systemctl stop qubeticschain.service
```

{% hint style="info" %}
For a video tutorial on setting up a node, visit our YouTube channel: \
<https://www.youtube.com/watch?v=QTQ47zWR5mo&pp=ygUIcXViZXRpY3M%3D>
{% endhint %}

Qubetics nodes work best on Linux and macOS. While you can technically run a node on Windows, it’s not recommended for production use. Most validators and node operators prefer Ubuntu or other Linux systems because they are stable, secure, and fully compatible with the Cosmos SDK. MacOS is fine for local development but isn’t used for production nodes.\
Running a node on Windows comes with several challenges:

* **Limited Compatibility:** Qubetics node uses Cosmos SDK tools and scripts.These are designed only for Linux/macOS.
* **Performance Issues:** Windows handles processes and networking differently, which can lead to instability.
* **Dependency Problems:** Setting up qubetics node on Windows requires extra steps, like using WSL2 (Windows Subsystem for Linux 2).
* **No Systemd Support:** Systemd, a tool commonly used to manage qubetics nodes on Linux, isn’t natively supported on Windows.

**For the best experience:**

* Use Linux (Ubuntu 22.04 LTS is recommended) for development, testnets, and production.
* macOS is okay for local testing.
* If you’re on Windows, use WSL2 (Windows Subsystem for Linux 2) instead of running the node natively.


---

# 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://qubetics.gitbook.io/qubetics-docs/getting-started/testnet-node-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.
