Skip to main content

Domain Operator Testnet

Domain operators run the execution layer of Autonomys Network, processing transactions and smart contracts in parallel domains.

Network Architecture

Required Ports

PortProtocolDirectionComponentPurposeSecurity Level
30333TCPInbound/OutboundConsensus NodeConsensus chain P2PPublic
30334TCPInbound/OutboundDomain NodeDomain execution P2PPublic
30433TCPInbound/OutboundConsensus NodeDSN communicationPublic
40333TCPInbound/OutboundDomain OperatorOperator coordinationPublic
9944TCPLocal onlyConsensus RPCNode-operator communication Private
9945TCPLocal onlyDomain RPCDomain state queries Private
Critical Security

RPC ports (9944, 9945) must NEVER be exposed to the internet. These provide full control over your operator and could lead to stake slashing if compromised.

Complete Setup Guide

Step 1: Network Information

# Get public IP
echo "Public IP: $(curl -s https://api.ipify.org)"

# Get local network info
ip addr show | grep "inet " | grep -v 127.0.0.1
ip route | grep default

# Test current connectivity
ping -c 4 1.1.1.1

Step 2: Router Configuration

Configure these port forwarding rules in your router:

Service NameExternal PortInternal IPInternal PortProtocol
Autonomys-Consensus30333Your IP30333TCP
Autonomys-Domain30334Your IP30334TCP
Autonomys-DSN30433Your IP30433TCP
Autonomys-Operator40333Your IP40333TCP

Step 3: Firewall Configuration

UFW Configuration:

# Enable firewall
sudo ufw enable

# Add operator ports
sudo ufw allow 30333/tcp comment 'Autonomys Consensus'
sudo ufw allow 30334/tcp comment 'Autonomys Domain'
sudo ufw allow 30433/tcp comment 'Autonomys DSN'
sudo ufw allow 40333/tcp comment 'Autonomys Operator'

# RPC ports - local only
sudo ufw allow from 127.0.0.1 to any port 9944 proto tcp comment 'Consensus RPC Local'
sudo ufw allow from 127.0.0.1 to any port 9945 proto tcp comment 'Domain RPC Local'

# If accessing from local network
sudo ufw allow from 192.168.1.0/24 to any port 9944 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 9945 proto tcp

# Verify configuration
sudo ufw status numbered

Expected output:

Status: active

To Action From
-- ------ ----
[1] 30333/tcp ALLOW IN Anywhere
[2] 30334/tcp ALLOW IN Anywhere
[3] 30433/tcp ALLOW IN Anywhere
[4] 40333/tcp ALLOW IN Anywhere
[5] 9944/tcp ALLOW IN 127.0.0.1
[6] 9945/tcp ALLOW IN 127.0.0.1

Step 4: Start Domain Operator

# Start consensus node
./subspace-node run \
--chain mainnet \
--base-path /var/lib/autonomys/node \
--listen-on /ip4/0.0.0.0/tcp/30333 \
--dsn-listen-on /ip4/0.0.0.0/tcp/30433 \
--rpc-listen-on 127.0.0.1:9944 \
--rpc-cors localhost

# Start domain operator (separate terminal)
./domain-operator run \
--chain nova \
--base-path /var/lib/autonomys/domain \
--operator-id YOUR_OPERATOR_ID \
--consensus-rpc ws://127.0.0.1:9944 \
--listen-on /ip4/0.0.0.0/tcp/30334 \
--operator-listen-on /ip4/0.0.0.0/tcp/40333 \
--domain-rpc-listen-on 127.0.0.1:9945

Step 5: Verify Ports

# Check all ports are listening
sudo netstat -tuln | grep -E "30333|30334|30433|40333|9944|9945"

# Expected output:
tcp 0 0 0.0.0.0:30333 LISTEN # Consensus P2P
tcp 0 0 0.0.0.0:30334 LISTEN # Domain P2P
tcp 0 0 0.0.0.0:30433 LISTEN # DSN
tcp 0 0 0.0.0.0:40333 LISTEN # Operator
tcp 0 0 127.0.0.1:9944 LISTEN # Consensus RPC (local)
tcp 0 0 127.0.0.1:9945 LISTEN # Domain RPC (local)

# Test external connectivity
curl -s https://api.ipify.org
# Use the IP to test from external: nc -zv YOUR_IP 30333

Best Practices

DO:

  • Monitor operator performance regularly
  • Keep minimum stake + buffer
  • Use monitoring and alerting
  • Regular backups of operator keys
  • Keep software updated

DON'T:

  • Expose RPC ports publicly
  • Run operator on same machine as farmer
  • Ignore performance degradation
  • Share operator keys
  • Run without proper stake