📡 Pipe Network Testnet Node
This guide helps you set up a Pipe Network PoP Cache Node on the official Testnet.
📡 Pipe Network Testnet Node Installation
📋 System Requirements
- CPU: 2 cores (4+ cores recommended)
- RAM: 4GB (16GB+ recommended)
- Storage: 10GB+ available (100GB+ SSD recommended)
- Network: 1Gbps+ connection preferred
- OS: Ubuntu 18.04+ / Debian 10+ / CentOS 7+
🔮 What is Pipe Network?
Pipe Network is revolutionizing content delivery by building the world's first decentralized Content Distribution Network (CDN). The Pipe testnet allows you to participate in groundbreaking infrastructure that makes the internet faster, more efficient, and censorship-resistant.
- Invite Code from Pipe Network Airtable registration
- Solana wallet address for receiving rewards
- Geographic location outside major data centers preferred
🛠️ Step 1: Prepare Your System
Update & Install Dependencies
# Update system packages
sudo apt update && sudo apt upgrade -y
# Install essential tools
sudo apt install curl wget jq nano ufw htop net-tools -y
Create Dedicated User (Recommended)
# Create popcache user
sudo useradd -r -m -s /bin/bash popcache -d /home/popcache
# Create necessary directories
sudo mkdir -p /opt/popcache
sudo mkdir -p /opt/popcache/logs
sudo mkdir -p /opt/popcache/cache
# Set ownership
sudo chown -R popcache:popcache /opt/popcache
🔧 Step 2: System Optimization
Configure Network Performance
# Create sysctl configuration for optimal performance
sudo tee /etc/sysctl.d/99-popcache.conf << 'EOF'
# Network optimization for Pipe Cache Node
net.ipv4.ip_local_port_range = 1024 65535
net.core.somaxconn = 65535
net.ipv4.tcp_low_latency = 1
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.core.wmem_max = 16777216
net.core.rmem_max = 16777216
EOF
# Apply settings
sudo sysctl -p /etc/sysctl.d/99-popcache.conf
Configure File Limits
# Set file limits for popcache user
sudo tee /etc/security/limits.d/popcache.conf << 'EOF'
popcache soft nofile 65535
popcache hard nofile 65535
popcache soft nproc 4096
popcache hard nproc 4096
EOF
📦 Step 3: Download & Install Pipe Binary
Download Latest Binary
# Change to popcache user
sudo su - popcache
# Download the Pipe binary (check for latest version)
cd /opt/popcache
wget -O pop "https://github.com/PipeNetwork/pip-node/releases/latest/download/pop-linux-amd64"
# Make executable
chmod +x pop
# Verify download
./pop --help
Test Binary
# Quick test to ensure binary works
./pop --version
⚙️ Step 4: Create Configuration
Create Config File
# Create configuration file
nano /opt/popcache/config.json
Add this configuration (adjust values for your setup):
{
"pop_name": "my-pipe-node",
"pop_location": "City, Country",
"server": {
"host": "0.0.0.0",
"port": 443,
"http_port": 80,
"workers": 0
},
"cache_config": {
"memory_cache_size_mb": 8192,
"disk_cache_path": "/opt/popcache/cache",
"disk_cache_size_gb": 100,
"default_ttl_seconds": 86400,
"respect_origin_headers": true,
"max_cacheable_size_mb": 1024
},
"api_endpoints": {
"base_url": "https://dataplane.pipenetwork.com"
},
"identity_config": {
"node_name": "my-pipe-node",
"name": "Your Name",
"email": "[email protected]",
"website": "https://your-website.com",
"discord": "your_discord_username",
"telegram": "your_telegram_handle",
"solana_pubkey": "YOUR_SOLANA_WALLET_ADDRESS"
}
}
🔧 Configuration Tips:
- memory_cache_size_mb: Set to 50-70% of available RAM (8192 = 8GB)
- disk_cache_size_gb: Leave 20% disk space free (100GB for 500GB disk)
- workers: Set to
0
for auto-detection, or number of CPU cores - solana_pubkey: Required for receiving rewards
- pop_location: Your actual geographic location
🔥 Step 5: Configure Firewall
# Exit popcache user back to root
exit
# Configure UFW firewall
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
# Check firewall status
sudo ufw status
🚀 Step 6: Create Systemd Service
Create Service File
sudo nano /etc/systemd/system/popcache.service
Add this configuration:
[Unit]
Description=Pipe Network PoP Cache Node
After=network.target
Wants=network-online.target
[Service]
Type=simple
User=popcache
Group=popcache
WorkingDirectory=/opt/popcache
ExecStart=/opt/popcache/pop
Restart=always
RestartSec=5
LimitNOFILE=65535
StandardOutput=append:/opt/popcache/logs/stdout.log
StandardError=append:/opt/popcache/logs/stderr.log
Environment=POP_CONFIG_PATH=/opt/popcache/config.json
[Install]
WantedBy=multi-user.target
Enable & Start Service
# Reload systemd daemon
sudo systemctl daemon-reload
# Enable service to start on boot
sudo systemctl enable popcache
# Start the service
sudo systemctl start popcache
# Check service status
sudo systemctl status popcache
📊 Step 7: Monitor Your Node
Check Service Status
# Service status
sudo systemctl status popcache
# View logs in real-time
sudo journalctl -u popcache -f
# Check recent logs
sudo journalctl -u popcache -n 100 --no-pager
Check Node Connectivity
# Test if ports are listening
sudo netstat -tulnp | grep -E "(80|443)"
# Test HTTP connectivity
curl -I http://localhost:80
# Test HTTPS connectivity (may show certificate error, that's normal)
curl -k -I https://localhost:443
Monitor Performance
# Check system resources
htop
# Check disk usage
df -h
# Check network connections
ss -tuln
🎯 Step 8: Register Your Node
Initial Registration
When you first start the node, it will prompt for your invite code:
# If prompted for invite code, enter it via logs or restart
sudo systemctl restart popcache
# Watch logs for registration process
sudo journalctl -u popcache -f
Check Node Status
# View node status (run as popcache user)
sudo su - popcache
cd /opt/popcache
./pop --status
# Check node metrics
./pop --metrics
🔧 Step 9: Log Management
Setup Log Rotation
sudo nano /etc/logrotate.d/popcache
Add log rotation config:
/opt/popcache/logs/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 popcache popcache
sharedscripts
postrotate
systemctl reload popcache >/dev/null 2>&1 || true
endscript
}
🔍 Step 10: Monitoring & Health Checks
Built-in Monitoring Endpoints
# Health check
curl http://localhost:80/health
# Metrics endpoint
curl http://localhost:80/metrics
# Node info
curl http://localhost:80/info
Create Health Check Script
sudo nano /opt/popcache/health_check.sh
#!/bin/bash
# Pipe Network Health Check Script
LOG_FILE="/opt/popcache/logs/health_check.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')
# Check if service is running
if ! systemctl is-active --quiet popcache; then
echo "[$DATE] ERROR: popcache service is not running" >> $LOG_FILE
sudo systemctl restart popcache
exit 1
fi
# Check HTTP endpoint
if ! curl -f http://localhost:80/health >/dev/null 2>&1; then
echo "[$DATE] ERROR: HTTP health check failed" >> $LOG_FILE
exit 1
fi
echo "[$DATE] INFO: Health check passed" >> $LOG_FILE
exit 0
# Make executable
sudo chmod +x /opt/popcache/health_check.sh
# Add to crontab for automatic monitoring
(crontab -l 2>/dev/null; echo "*/5 * * * * /opt/popcache/health_check.sh") | crontab -
🛠️ Troubleshooting
Common Issues
❌ Service fails to start
# Check detailed logs
sudo journalctl -u popcache -n 50 --no-pager
# Verify configuration
sudo su - popcache
cd /opt/popcache
./pop --check-config
❌ Port binding issues
# Check what's using ports 80/443
sudo lsof -i :80
sudo lsof -i :443
# If Apache/Nginx is running, stop them
sudo systemctl stop apache2 nginx
❌ Permission issues
# Fix ownership
sudo chown -R popcache:popcache /opt/popcache
# Check permissions
ls -la /opt/popcache/
❌ Configuration errors
- Verify JSON syntax with:
python3 -m json.tool config.json
- Ensure all required fields are filled
- Check Solana address format
Performance Optimization
# Monitor cache hit rates
curl http://localhost:80/metrics | grep cache
# Check disk I/O
iostat -x 1
# Monitor memory usage
free -h && cat /proc/meminfo | grep Cache
📈 Next Steps
- Monitor Performance - Keep an eye on logs and metrics
- Join Community - Connect with other operators in Pipe Discord
- Optimize Settings - Adjust cache sizes based on usage patterns
- Scale Up - Consider upgrading hardware for better performance
⚠️ Important Notes
- Keep your node online 24/7 for best rewards
- Monitor disk space - cache can grow quickly
- Update configuration as network evolves
- Backup your config - keep a copy of your configuration
🎊 Congratulations!
You're now running a Pipe Network PoP Cache Node on testnet! Your node helps build a decentralized CDN that makes the internet faster and more resilient.
Useful Links:
🚀 Pro Tip: Join the Pipe Discord to get updates on testnet progress and connect with other node operators!