🧪 Pipe Network Testnet Node Setup (v0.3.2)
Pipe Network is a decentralized, permissionless content delivery network (CDN) built on Solana. By deploying hyperlocal Points of Presence (PoP) nodes, it enhances latency, reduces delivery costs, and ensures fair compensation for operators through a credit-based system.
✅ This guide helps you run a PoP Cache Node for the Pipe Testnet.
🧰 Requirements
- ✅ Whitelisted Invite Code (Check your email)
- 🖥️ VPS or Local PC (Ubuntu 20.04+ recommended)
- 💡 Whitelist form link if you didn’t receive the code
⚙️ Pre-Setup
1. Install Dependencies
\
bash
sudo apt update && sudo apt upgrade -y
sudo apt install curl iptables build-essential git wget lz4 jq make gcc nano automake autoconf tmux htop nvme-cli libgbm1 pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip screen ufw -y
\\
2. Configure Firewall
\
bash
sudo ufw allow 22 && sudo ufw allow 80/tcp && sudo ufw allow 443/tcp && sudo ufw allow ssh
sudo ufw enable && sudo ufw reload
\\
3. Optimize System Parameters
\
bash
sudo bash -c 'cat > /etc/sysctl.d/99-popcache.conf << EOL
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
EOL'
sudo sysctl -p /etc/sysctl.d/99-popcache.conf
\\
4. Increase File Limits
\
`bash
sudo bash -c 'cat > /etc/security/limits.d/popcache.conf << EOL
- hard nofile 65535
- soft nofile 65535
EOL'
`
\
📦 Binary Installation
- Download
pop-v0.3.2-linux-x64.tar.gz
- Upload to VPS (via Termius SFTP or
scp\
) - Move & extract:
\
bash
sudo mv ~/pop-v0.3.2-linux-x64.tar.gz /opt/popcache/
cd /opt/popcache/
sudo tar -xzf pop-v0.3.2-linux-x64.tar.gz
sudo chmod +x ./pop
sudo ln -sf /opt/popcache/pop /usr/local/bin/pop
\\
📝 Configuration
Create config.json\
in /opt/popcache/\
:
\
bash
sudo nano /opt/popcache/config.json
\\
Paste and customize:
\
json
{
"pop_name": "your-pop-name",
"pop_location": "Your VPS Location",
"invite_code": "your-invite-code",
"server": {
"host": "0.0.0.0",
"port": 443,
"http_port": 80,
"workers": 0
},
"cache_config": {
"memory_cache_size_mb": 4096,
"disk_cache_path": "./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": "your-node-name",
"name": "Your Name",
"email": "you@example.com",
"website": "https://yourwebsite.com",
"discord": "your_discord",
"telegram": "your_telegram",
"solana_pubkey": "your_solana_wallet"
}
}
\\
🛠️ Systemd Service
\
`bash
sudo bash -c 'cat > /etc/systemd/system/popcache.service << EOL
[Unit]
Description=POP Cache Node
After=network.target
[Service]
Type=simple
User=root
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
EOL'
sudo systemctl daemon-reload
sudo systemctl enable popcache
sudo systemctl start popcache
`\
🔎 Monitoring & Logs
Check status:
\
bash
sudo systemctl status popcache
\\
Real-time logs:
\
bash
tail -f /opt/popcache/logs/stdout.log
\\
Node info:
\
bash
curl -sk http://localhost/metrics | jq .
curl -sk http://localhost/state | jq .
curl -sk http://localhost/health | jq .
\\
View on dashboard:
\
https://dashboard.testnet.pipe.network/node/<your-pop-id>
\\
🔄 Upgrading to New Version
\
bash
sudo systemctl stop popcache
sudo rm -f /usr/local/bin/pop /opt/popcache/pop
sudo rm -f /opt/popcache/pop-v*.tar.gz
sudo rm /opt/popcache/logs/*.log
\\
Re-download binary → Extract → Restart:
\
bash
sudo systemctl daemon-reload
sudo systemctl start popcache
\\
📌 Final Notes
- Make sure to keep your invite code confidential.
- Always allocate RAM and Disk wisely for optimal performance.
- Restart if you see ⚠️ Mesh test service temporarily unavailable.
🧵 Ready to scale Web3 content delivery with Pipe? Run your node and contribute to the future of decentralized infrastructure.
Top comments (0)