DEV Community

izmer jaafar
izmer jaafar

Posted on

Pipe Network TESTNET Node 2025

🧪 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

  1. Download pop-v0.3.2-linux-x64.tar.gz
  2. Upload to VPS (via Termius SFTP or scp\)
  3. 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)