# How to Deploy a HQZ Pillar

**URL:** https://forum.hypercore.one/t/how-to-deploy-a-hqz-pillar/586
**Category:** Development
**Created:** [February 13, 2025, 10:14am UTC](https://forum.hypercore.one/t/how-to-deploy-a-hqz-pillar/586 "2025-02-13T10:14:03Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![0x3639](https://forum.hypercore.one/user_avatar/forum.hypercore.one/0x3639/32/33_2.png) [@0x3639](https://forum.hypercore.one/u/0x3639)
#### Post date: [February 13, 2025, 10:14am UTC](https://forum.hypercore.one/t/how-to-deploy-a-hqz-pillar/586/1 "2025-02-13T10:14:03Z")

</div>

# HYPERQUBE\_Z LAUNCH PART 2

Genesis Timestamp: Wednesday February 19 12:00 AM UTC (1739923200)

# HQZ Node Deployment

This post provides a bash script to deploy an HQZ Pillar. The script sets up the required directories, downloads the `genesis.json` file, creates a configuration file, clones a deployment repository, backs up any pre-existing configuration, and finally runs the deployment script. After deployment, you will need to update the producer wallet file with your actual keystore if it does not already exist.

> **Note:** The script must be run as **root**.

## Overview

The deployment script performs the following steps:

- **Checks for curl:** Installs it if it’s not already present.
- **Pre-deployment backup:**  
If the `/root/.hqzd` directory already exists, the script stops the `go-hyperqube` service and backs up the folder to `/root/.hqzd.bak` before proceeding.
- **Creates necessary directories:**  
The script verifies that both `/root/.hqzd` and `/root/.hqzd/wallet` exist. If the wallet directory is missing, it gets created.
- **Downloads `genesis.json`:**  
Downloads the file and saves it to `/root/.hqzd/genesis.json`.
- **Prompts for input:**  
Asks for the pillar name and producer address.
- **Generates `config.json`:**  
Creates a configuration file with your provided values.
- **Creates a producer wallet file (if missing):**  
A wallet file is created at `/root/.hqzd/wallet/<producer_address>` containing a placeholder message. If a wallet file already exists for the given producer address, it won’t be overwritten.
- **Clones the deployment repository and runs the deployment script.**

## Prerequisites

- A Linux machine with root access and minimum system requirements (2vCPUs and 4GB RAM).
- A package manager (`apt-get` or `yum`) to install missing tools.
- Git must be installed on your system.
- Internet access to download necessary files and clone repositories.

## Deployment Instructions

1. **Download the Deployment Script**

2. **Make the Script Executable**

3. **Run the Script as Root**

## Post-Deployment: Updating the Producer Wallet File (ONLY IF YOU CREATED THE PRODUCER ON A DIFFERENT MACHINE)

After the deployment is complete, you must update the producer wallet file with your actual keystore. Follow these steps if you need to move the producer file to the server:

1. **Locate the Producer Wallet File on the machine that created the Producer file**

2. **Retrieve the Keystore**

3. **Update the Wallet File on the Pillar Machine**

## Restart go-hyperqube

After updating the wallet file, start the node service:

```bash
sudo systemctl start go-hyperqube

```

Check the status to ensure it is running:

```bash
sudo systemctl status go-hyperqube

```

To follow the logs:

```bash
sudo journalctl -u go-hyperqube -f

```

Happy deploying!

---

<div class="post-metadata">

### Author: ![georgezgeorgez](https://forum.hypercore.one/letter_avatar_proxy/v4/letter/g/eada6e/32.png) [@georgezgeorgez](https://forum.hypercore.one/u/georgezgeorgez)
#### Post date: [February 13, 2025, 5:24pm UTC](https://forum.hypercore.one/t/how-to-deploy-a-hqz-pillar/586/2 "2025-02-13T17:24:49Z")

</div>

Thanks for the instructions @0x3639. I’ll just add a comment.

If you created the producer keystore on a separate machine, you’ll also need to update the password in the configuration file.

---

<div class="post-metadata">

### Author: ![0x3639](https://forum.hypercore.one/user_avatar/forum.hypercore.one/0x3639/32/33_2.png) [@0x3639](https://forum.hypercore.one/u/0x3639)
#### Post date: [February 13, 2025, 5:38pm UTC](https://forum.hypercore.one/t/how-to-deploy-a-hqz-pillar/586/3 "2025-02-13T17:38:15Z")

</div>

Yes thanks for pointing that out. The script assume you have not changed the password from the default password when creating the devnet.

---

<div class="post-metadata">

### Author: ![Stark](https://forum.hypercore.one/user_avatar/forum.hypercore.one/stark/32/656_2.png) [@Stark](https://forum.hypercore.one/u/Stark)
#### Post date: [February 14, 2025, 1:50am UTC](https://forum.hypercore.one/t/how-to-deploy-a-hqz-pillar/586/4 "2025-02-14T01:50:10Z")

</div>

If you setup your Pillar wallet on Virtual Box, can not get copy/paste to work, and you want to export the Pillar keystore to your pc using scp:

### **1. Check to see if ssh is installed on the VM**

`systemctl status ssh`

Install ssh if needed:  
`sudo apt update`  
`sudo apt install openssh-server`

### **2. Check the VirtualBox Network Type - These instructions apply to NAT**

**NAT (Default)**

- Your VM **does not** have a directly accessible IP.
- You must **set up port forwarding** to allow `scp`.

To enable SCP access:

1. Open **VirtualBox** → Select your VM → **Settings** → **Network**.

2. Under **Adapter 1** , ensure “Attached to” is **NAT**.

3. Click **Port Forwarding**.  

4. Add a new rule:

- **Protocol:** TCP
- **Host IP:** 127.0.0.1
- **Host Port:** 2222
- **Guest IP:** Leave blank
- **Guest Port:** 22

1. Click **OK** and restart the VM.

2. You can try to scp the hqz keystore from your root directory but if you have problems due to user permissions, copy the hqz keystore your user directory.

`sudo cp /root/.hqzd/wallet/hqz /home/<username>`  
`sudo chown <username>:<username> /home/<username>/hqz` (three instances of username)

Now run scp from your **Mac terminal.**

`scp -P 2222 <username>@127.0.0.1:/home/<username>/hqz ~/Downloads/` (note two instances of username)

---

<div class="post-metadata">

### Author: ![tapwoot](https://forum.hypercore.one/user_avatar/forum.hypercore.one/tapwoot/32/34_2.png) [@tapwoot](https://forum.hypercore.one/u/tapwoot)
#### Post date: [February 15, 2025, 1:43am UTC](https://forum.hypercore.one/t/how-to-deploy-a-hqz-pillar/586/5 "2025-02-15T01:43:58Z")

</div>

height = 1

---

<div class="post-metadata">

### Author: ![coinselor](https://forum.hypercore.one/letter_avatar_proxy/v4/letter/c/41988e/32.png) [@coinselor](https://forum.hypercore.one/u/coinselor)
#### Post date: [February 18, 2025, 5:30pm UTC](https://forum.hypercore.one/t/how-to-deploy-a-hqz-pillar/586/6 "2025-02-18T17:30:15Z")

</div>

I’ve slightly adjusted @0x3639 hqz.sh script to support ARM.

NOTICE: This is cloning a refactored version of the deployment script, specifically a `feature/arm-support` branch that adds arm support at [github.com/coinselor/deployment](https://github.com/coinselor/deployment/tree/feature/arm-support)

To use it, follow 0x instructions but used this [hqz.sh](https://gist.githubusercontent.com/coinselor/4f571024f9b7a0d44dd8fd580b718f49/raw/63159f181cebd09fc15ebbddb3565bc48167307f/hqz.sh) script instead:

`curl -fsSL -o hqz.sh https://gist.githubusercontent.com/coinselor/4f571024f9b7a0d44dd8fd580b718f49/raw/63159f181cebd09fc15ebbddb3565bc48167307f/hqz.sh`

It will ask to choose a branch from hypercore-one/deployment, choose `hyperqube_z`

---

<div class="post-metadata">

### Author: ![sugoibtc](https://forum.hypercore.one/user_avatar/forum.hypercore.one/sugoibtc/32/698_2.png) [@sugoibtc](https://forum.hypercore.one/u/sugoibtc)
#### Post date: [February 22, 2025, 11:37pm UTC](https://forum.hypercore.one/t/how-to-deploy-a-hqz-pillar/586/7 "2025-02-22T23:37:54Z")

</div>

In case there are still people using Virtual Box, here’s a tutorial on enabling the copy + paste function: [https://www.youtube.com/watch?v=saiy4\_XsLoA](https://www.youtube.com/watch?v=saiy4_XsLoA)

---

<div class="post-metadata">

### Author: ![Stark](https://forum.hypercore.one/user_avatar/forum.hypercore.one/stark/32/656_2.png) [@Stark](https://forum.hypercore.one/u/Stark)
#### Post date: [June 14, 2025, 2:55am UTC](https://forum.hypercore.one/t/how-to-deploy-a-hqz-pillar/586/8 "2025-06-14T02:55:01Z")

</div>

I did so many things and could not get copy/paste to work with VirtualBox.

A very good alternative approach is to use ssh in your local machine’s native terminal to access your VirtualBox.

This worked for me:

To enable SSH access from your Mac to the Ubuntu VM:

1. First, ensure SSH server is installed on your VirtualBox Ubuntu:

```auto
sudo apt install openssh-server

```

1. You’ll need to set up port forwarding in VirtualBox:

- Shut down the VM
- Go to VM Settings → Network
- Click on “Advanced” → “Port Forwarding”
- Add a new rule:
  - Name: SSH
  - Protocol: TCP
  - Host Port: 2222 (or any port you prefer)
  - Guest Port: 22
  - Leave Host IP empty

1. Start the VM again
2. Then from your Mac terminal, you can connect using:

```auto
ssh -p 2222 your_VirtualBoxUbunto_username@localhost

```

---

<div class="post-metadata">

### Author: ![sugoibtc](https://forum.hypercore.one/user_avatar/forum.hypercore.one/sugoibtc/32/698_2.png) [@sugoibtc](https://forum.hypercore.one/u/sugoibtc)
#### Post date: [June 19, 2025, 12:22pm UTC](https://forum.hypercore.one/t/how-to-deploy-a-hqz-pillar/586/9 "2025-06-19T12:22:32Z")

</div>

did you follow the tutorial in the link i posted above? it’s really easy

---

<div class="post-metadata">

### Author: ![Stark](https://forum.hypercore.one/user_avatar/forum.hypercore.one/stark/32/656_2.png) [@Stark](https://forum.hypercore.one/u/Stark)
#### Post date: [August 21, 2025, 7:19pm UTC](https://forum.hypercore.one/t/how-to-deploy-a-hqz-pillar/586/10 "2025-08-21T19:19:36Z")

</div>

i think i did - maybe operator error but I’m chalking the failure in my case up a glitch / incompatibility in the software vs my machine and OS here.

I guess the copy/paste would be key in the case of a GUI VirtualBox environment, but for cli, I think I prefer the SSH method anyway.
