> For the complete documentation index, see [llms.txt](https://docs.zenon.org/hypercore/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zenon.org/hypercore/technical/roles/orchestrator/migration-guide-on-pillar.md).

# Migration Guide (On Pillar)

{% hint style="warning" %}
This guide outlines the steps to migrate an existing orchestrator from one Pillar virtual machine (VM) to another, preserving its ability to participate in the HyperCore bridge’s Threshold Signature Scheme (TSS) signer set. It builds on the [Orchestrator Setup Guide on Pillar](https://docs.zenon.org/hypercore/technical/roles/orchestrator/setup-guide-on-pillar).
{% endhint %}

### Table of Contents

1. [Prerequisites](#id-1-prerequisites)
2. [Set Up the Orchestrator on the New VM](#id-3-set-up-the-orchestrator-on-the-new-vm)
3. [Transfer the Orchestrator Configuration](#id-3-transfer-the-orchestrator-configuration)
4. [Set Up and Start the Orchestrator Service](#id-6-set-up-and-start-the-orchestrator-service)
5. [Verify Migration](#id-7-verify-operation)

***

### 1) Prerequisites

* **Old VM Access**: Ensure the original VM (old Pillar) is still accessible and running the orchestrator.
* **New VM Setup**: The new VM should have a working Pillar node synced with the Zenon Network of Momentum (NoM), as per the [Pillar setup guide](https://docs.zenon.org/no-m/technical/pillars/setup-guide).
* **Backup**: Back up the old VM’s orchestrator directory (/root/.orchestrator) and producer keystore before proceeding.
* **SSH Access**: You need SSH access to both the old and new VMs with sufficient permissions (e.g., root or sudo).

***

### 2) Set Up the Orchestrator on the New VM

If the orchestrator isn’t already installed on the new VM, follow the initial setup steps from the [Orchestrator Setup Guide](https://docs.zenon.org/hypercore/technical/roles/orchestrator/setup-guide-on-pillar) first.

***

### **3) Transfer the Orchestrator Configuration**

Copy the entire .orchestrator folder from the old VM to the new VM. This includes the old /producer folder and old config.json:

```bash
scp -r root@<old-vm-ip>:/root/.orchestrator /root/
```

***

### 4) Set Up and Start the Orchestrator Service

Follow [step 6](https://docs.zenon.org/hypercore/technical/roles/orchestrator/setup-guide-on-pillar#id-6-setting-up-orchestrator-as-a-service) of the Setup Guide.

***

### 5) Verify Migration

Confirm the orchestrator is functioning and recognized by the bridge.

**a) Check Logs**:

View recent logs for errors:

```bash
journalctl -u orchestrator -n 50
```

**b) Test Health Check**:

Query the orchestrator’s API:

```bash
curl -X POST -d '{"method":"getBuildInfo", "params":[]}' -H "Content-Type: application/json" http://localhost:55000
```

Expected output includes version info, e.g.,&#x20;

```json
{"result":{"version":"v0.0.9a","gitCommit":"edf58a929989e70656a5f04501b25fb918f6ef71","goVersion":"go1.22.1"},"error":""}.
```
