> For the complete documentation index, see [llms.txt](https://docs.ramestta.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ramestta.com/welcome-to-ramestta/node-setup/sentry-node/testnet.md).

# Testnet

## Run a Sentry Node from Binaries

### Prerequisites: <a href="#prerequisites" id="prerequisites"></a>

`build-essential` installed on both the sentry and the validator machines.

To install:

```
sudo apt-get install build-essential
```

Go 1.18 installed on validator machine.

To install:

```
wget https://raw.githubusercontent.com/Ramestta-Blockchain/launch/master/go-install.sh
bash go-install.sh
sudo ln -nfs ~/.go/bin/go /usr/bin/go
```

Docker and RabbitMQ to install on validator machines.

```
sudo apt-get update
sudo apt install rabbitmq-server
```

To install sublime-text:

```
sudo snap install sublime-text --classic
```

#### Installing Heimdall: <a href="#installing-heimdall" id="installing-heimdall"></a>

Heimdall is the proof-of-stake verifier layer responsible for checkpointing the representation of the Plasma blocks to the Ramestta mainnet.

Clone the [Heimdall repository](https://github.com/Ramestta-Blockchain/heimdall):thumbsup:

```
git clone https://github.com/Ramestta-Blockchain/heimdall
```

```
cd heimdall
```

```
make build
make install
```

```
cd ~
source ~/.bashrc
```

Check the Heimdall installation:

```
heimdalld version --long
```

note

Before proceeding, Heimdall should be installed on both the sentry and validator machines.

#### Installing Bor​ <a href="#installing-bor" id="installing-bor"></a>

Bor is the sidechain operator that acts as the block production layer, which syncs with Heimdall to select block producers and verifiers for each span and sprint.

Clone the [Bor repository](https://github.com/Ramestta-Blockchain/bor):thumbsup:

```
git clone https://github.com/Ramestta-Blockchain/bor
```

```
cd bor
```

**Install Bor:**

```
make bor-all
```

**Create symlinks:**

```
sudo ln -nfs ~/bor/build/bin/bor /usr/bin/bor
sudo ln -nfs ~/bor/build/bin/bootnode /usr/bin/bootnode
```

**Check the Bor installation:**

```
bor version
```

note

Before proceeding, Bor should be installed on both the sentry and validator machines.

### Setting Up Node Files: <a href="#setting-up-node-files" id="setting-up-node-files"></a>

Node files need to be set up on both the sentry and validator machines.

#### Fetching the launch repository​ <a href="#fetching-the-launch-repository" id="fetching-the-launch-repository"></a>

Clone the[ launch repository](https://github.com/Ramestta-Blockchain/launch):

```
git clone https://github.com/Ramestta-Blockchain/launch
```

#### Setting up the launch directory​ <a href="#setting-up-the-launch-directory" id="setting-up-the-launch-directory"></a>

**On the validator machine​**

Create a `node` directory:

```
mkdir -p node
```

Copy the files and scripts from the `launch` directory to the `node` directory:

```
cp -rf launch/testnet-v1/sentry/sentry/* ~/node
cp launch/testnet-v1/sentry-service.sh ~/node
```

#### Setting up the network directories: <a href="#setting-up-the-network-directories" id="setting-up-the-network-directories"></a>

**Setting up Heimdall​**

Change to the `node` directory:

```
cd ~/node/heimdall
```

Run the setup script:

```
bash setup.sh
```

**Setting up Bor​**

Change to the `node` directory:

```
cd ~/node/bor
```

Run the setup script:

```
bash setup.sh
```

### show enode: <a href="#setting-up-the-services" id="setting-up-the-services"></a>

```
bootnode -nodekey ~/.bor/data/bor/nodekey -writeaddress
```

Run the setup script:

```
bash setup.sh
```

### Setting Up the Services: <a href="#setting-up-the-services" id="setting-up-the-services"></a>

Run this section both on the sentry and validator machines.

Navigate to the `node` directory:

```
cd ~/node
```

Run the setup script:

```
bash sentry-service.sh
```

Copy the service file to the system directory:

```
sudo cp *.service /etc/systemd/system/
```

#### Starting the Heimdall service​ <a href="#starting-the-heimdall-service-1" id="starting-the-heimdall-service-1"></a>

You will now start the Heimdall service on the validator machine. Once the Heimdall service syncs, you will start the Bor service on the validator machine.

**Start the Heimdall service:**

```
sudo service heimdalld start
```

**Start the Heimdall rest-server:**

```
sudo service heimdalld-rest-server start
```

**Check the Heimdall service logs:**

```
journalctl -u heimdalld.service -f
```

**Check the Heimdall rest-server logs:**

```
journalctl -u heimdalld-rest-server.service -f
```

**Check the sync status of Heimdall:**

```
curl localhost:26657/status
```

In the output, the `catching_up` value is:

* `true` — the Heimdall service is syncing.
* `false` — the Heimdall service is synced.

Wait for the Heimdall service to fully sync.

#### Starting the Bor service​ <a href="#starting-the-bor-service-1" id="starting-the-bor-service-1"></a>

Once the Heimdall service on the validator machine syncs, start the Bor service on the validator machine.

**Start the Bor service:**

```
sudo service bor start
```

**Check the Bor service logs:**

```
journalctl -u bor.service -f
```

### Service to Auto Start After Server Crash/Reboot <a href="#health-checks-with-the-community" id="health-checks-with-the-community"></a>

```
sudo systemctl enable heimdalld
sudo systemctl enable heimdalld-rest-server
sudo systemctl enable bor
```
