> 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/legacy/tutorials/linux.md).

# Linux

The Zenon Alphanet (Phase 0) binaries are available for Linux, macOS and Windows x86\_64 CPU architecture operating systems.

`Ubuntu 20.04 LTS` was used for this tutorial.

### 1. Download the Binaries

Download `znnd`, `znn-cli` and `znn-controller` from their respective GitHub repos. Please note that `znn-controller` is only available for Linux at the moment.

### 2. Verification (depreciated)

Import the Zenon Testnet PGP key from `hkps.pool.sks-keyservers.net`

{% code overflow="wrap" %}

```
gpg --keyserver hkps.pool.sks-keyservers.net --recv E2D8289C0A9D2C28A3320B62D2AAFD5D9088F1A2
```

{% endcode %}

If you don't have `gpg` installed, please use `sudo apt install gnupg`

{% code overflow="wrap" %}

```
gpg: key E2D8289C0A9D2C28A3320B62D2AAFD5D9088F1A2: public key "Zenon Testnet <portal@zenon.network>"
```

{% endcode %}

Verify the signature. The same command can be used on macOS:

{% code overflow="wrap" %}

```
gpg --verify `path_to_sig`.sig `path_to_release_bundle`

gpg: Good signature from "Zenon Testnet <portal@zenon.network>"
```

{% endcode %}

### 3. Start the Node Daemon

If you are on a Linux machine, use the `znn-controller` option `1) Deploy`:

```
./znn-controller
```

Otherwise use:

```
./znnd
```

### 4. Verify Node RPC Communication

Inspect the `config.json` file using your favorite text editor.

Navigate to `~/.znn/config.json`.&#x20;

Check if the `http`, `websocket` entries are enabled (`true`). By default, all `Endpoints` are public.&#x20;

The default `HTTPPort` is `35997` and `WSPort` is `35998`.&#x20;

```json
{
  "RPC": {
    "EnableHTTP": true,
    "EnableWS": true,
    "Endpoints": null
  }
}
```

You can also disable the RPC communication via **`znn-cli`:**

```
./znn-cli disableRPC

RPC successfully disabled
Start znnd to use the new configuration
```

### 5. Generate a ZNN Alphanet Address (optional)

{% code overflow="wrap" %}

```
./znn-cli wallet.createNew yourComplexPassphrase

Successfully created keystore: z1qz8tylu88et6ffy227pw8gak5qvn5awg35l96x
```

{% endcode %}

### 6. Check for Pending Funds (optional)

{% code overflow="wrap" %}

```
./znn-cli unreceived --keyStore z1qz8tylu88et6ffy227pw8gak5qvn5awg35l96x --passphrase yourComplexPassphrase
```

{% endcode %}

If you have pending funds you should see messages like these:

{% code overflow="wrap" %}

```
Unreceived 15000.00000000 ZNN from z1qqjr86g6220kmhn2jrelwhtk7u0mp4r5amjwf2.
Use hash b3e51142119174f8af3ea793a7353ec8b5b4e2208f9ebe50549ead5440fd6b49 to receive.

Unreceived 15000.00000000 QSR from z1qqjr86g6220kmhn2jrelwhtk7u0mp4r5amjwf2.
Use hash c68c674c81d4d9abc2b7a20c999352c21a8128033f9b34105b3616119f116e3c to receive.
```

{% endcode %}

### 7. Receive the Pending Funds (optional)

In order to receive the ZNN you need to issue the command `receive` with the corresponding hash:

{% code overflow="wrap" %}

```
./znn-cli receive b3e51142119174f8af3ea793a7353ec8b5b4e2208f9ebe50549ead5440fd6b49 --keyStore z1qz8tylu88et6ffy227pw8gak5qvn5awg35l96x --passphrase yourComplexPassphrase
```

{% endcode %}

If you don't have Plasma, you'll need to generate it via PoW, please wait.

```
Creating receive transaction ...
Generating Plasma, please wait ...
Done
```

Similarly, you'll receive the QSR by issuing the command `receive` with the corresponding hash:

{% code overflow="wrap" %}

```
./znn-cli receive c68c...6e3c --keyStore z1qz8tylu88et6ffy227pw8gak5qvn5awg35l96x --passphrase yourComplexPassphrase

Creating receive transaction ...
Generating Plasma, please wait ...
Done
```

{% endcode %}

### 8. Check Your Balance (optional)

{% code overflow="wrap" %}

```
./znn-cli balance --keyStore z1qz8tylu88et6ffy227pw8gak5qvn5awg35l96x --passphrase yourComplexPassphrase

Balance for account-chain z1qz8tylu88et6ffy227pw8gak5qvn5awg35l96x having height 2
150000.00000000 QSR
15000.00000000 ZNN
```

{% endcode %}

### 9. Deploy a Pillar, Sentinel or Full Node

Follow these [Node Deployment](/hypercore/technical/legacy/tutorials/linux/node-deployment.md) instructions to deploy a Pillar or Sentinel.

### 10. Stop the Node Daemon

You can use the stop command from `znn-cli` if `znnd` is located at the same working directory:

```
./znn-cli stop znnd
```

If you deployed via `znn-controller` please use option 4 (Stop service)

Otherwise use:

```
pkill -9 znnd
```
