Skip to Content
Run a Node

Node Documentation

Run your own Zentalk relay node to strengthen the network, improve message delivery, and earn CHAIN token rewards.

Staking & Rewards

Relay operators stake CHAIN tokens to participate in the network and earn rewards for relaying messages.

MetricValue
Staking Requirement100,000 CHAIN
Reward per Message~0.01 CHAIN
Estimated Daily Earnings10-100 CHAIN
Estimated Monthly ROI3-30%

Offline Penalties

DurationPenalty
< 1 hourNo penalty
1-24 hoursWarning, no new messages assigned
> 24 hours1% stake penalty per day
> 7 daysRemoved from network, 10% stake slashed

Quick Setup (One Command)

curl -sSL https://zentalk.io/setup-relay.sh | sudo bash

This script will:

  1. Install Docker if needed
  2. Guide you through wallet setup
  3. Wait for your stake deposit
  4. Start your relay node
  5. Show real-time status

Relay Network

Zentalk uses a distributed relay network for message delivery with strong privacy guarantees.

Core Functions

  • Message Forwarding - Relay nodes forward encrypted messages between users
  • Offline Message Queue - Store messages for offline recipients (encrypted, time-limited)
  • 3-Hop Relay Routing - Zentalk’s own relay system through guard, middle, and exit relays (not Tor)

3-Hop Relay Routing

Each relay only knows the previous and next hop, never the full path. The sender wraps the message in 3 encryption layers, and each relay strips one layer.


Components

A full node deployment consists of three services:

ComponentPortDescription
Relay Server9001Main message relay and routing
DHT Bootstrap9000Distributed hash table for peer discovery
Mesh Storage8081Temporary encrypted message storage

Relay Server (Port 9001)

The primary relay service that handles:

  • WebSocket connections from clients
  • Message forwarding between nodes
  • Circuit establishment for 3-hop relay routing

DHT Bootstrap (Port 9000)

Kademlia-based DHT for:

  • Peer discovery
  • Node address lookups
  • Network health monitoring

Mesh Storage (Port 8081)

Distributed storage layer for:

  • Offline message queuing
  • Encrypted blob storage
  • Redundant message delivery

Running a Node

Requirements

  • Linux server (Ubuntu 22.04+ recommended)
  • 2GB RAM minimum
  • 20GB storage
  • Static IP or domain name
  • Ports 9000, 9001, 8081 open

Quick Start

Option 1: Homebrew (macOS & Linux)

brew tap ZentaChain/tap brew install zentalk-validator

Option 2: Direct Download

Download the latest release for your platform:

PlatformArchitectureDownload
macOSApple Siliconzentalk-v1.2.0_darwin_arm64.tar.gz 
macOSIntelzentalk-v1.2.0_darwin_amd64.tar.gz 
Linuxx64zentalk-v1.2.0_linux_amd64.tar.gz 
LinuxARM64zentalk-v1.2.0_linux_arm64.tar.gz 
LinuxARMv7zentalk-v1.2.0_linux_armv7.tar.gz 
Windowsx64zentalk-v1.2.0_windows_amd64.zip 
WindowsARM64zentalk-v1.2.0_windows_arm64.zip 

Extract and run:

# macOS/Linux tar -xzf zentalk-v1.2.0_*.tar.gz ./relay --help # Windows # Extract zip, then run relay.exe

Option 3: Docker

  1. Install Docker
curl -fsSL https://get.docker.com | sh
  1. Clone the node repository
git clone https://github.com/ZentaChain/zentalk-node.git cd zentalk-node
  1. Configure your node
cp .env.example .env # Edit .env with your settings
  1. Start the services
docker-compose up -d
  1. Verify it’s running
docker-compose ps curl http://localhost:9001/health

Configuration

Key settings in .env:

NODE_NAME=my-relay PUBLIC_IP=203.0.113.10 BOOTSTRAP_PEERS=dht1.zentalk.io:9000,dht2.zentalk.io:9000 MAX_CONNECTIONS=1000 STORAGE_RETENTION_HOURS=72

Privacy Features

Zentalk nodes implement multiple privacy protections:

Guard Relays

  • First hop in the circuit
  • Trusted entry points to the network
  • Prevents traffic analysis at network edge

Traffic Padding

  • Constant-rate dummy traffic between nodes
  • Masks real message patterns
  • Prevents timing correlation attacks

Timestamp Bucketing

  • Messages grouped into time buckets
  • Reduces timestamp precision
  • Prevents correlation of send/receive times

Additional Protections

  • No Logging - Nodes don’t log message metadata
  • Memory-Only Queues - Offline messages stored in RAM when possible
  • Forward Secrecy - Node keys rotated regularly

Monitoring

Check node health:

# Service status docker-compose ps # Relay connections curl http://localhost:9001/stats # DHT peers curl http://localhost:9000/peers # Storage usage curl http://localhost:8081/status

Troubleshooting

Node not connecting to network

  1. Verify ports are open: netstat -tlnp | grep -E '9000|9001|8081'
  2. Check firewall rules
  3. Ensure bootstrap peers are reachable

High memory usage

  • Reduce MAX_CONNECTIONS in config
  • Check for connection leaks with docker stats

Messages not being delivered

  • Verify DHT connectivity
  • Check storage service is healthy
  • Review logs: docker-compose logs relay
Last updated on