May 19

Установка ноды PIPE NETWORK в тестнете

❗️Для установки ноды PIPE NETWORK в тестнете, у вас должен быть код, который пришел к вам на почту. Без него нода работать не будет. Читайте Как получить код.❗️

Требования к серверу:

  • ❗️Linux Ubuntu версии 24+
  • 4 CPU
  • 16 GB RAM (Можно использовать и меньше, например 4-8GB добавив недостающую память через файл подкачки)
  • 100 GB Свободного места
  • Порты: 80, 443
  • Подходящий сервер LC-3 сервер за 480 ₽ / месяц.
    Я использовал LC-3 пока проблем не вижу, как и нагрузки на сервер. Если позже нагрузка изменится, добавлю памяти через файл подкачки.

Внимание у хостера PLAY2GO - появился промокод SNGDAO для подписчиков канала. Промокод дает +5% к сумме вашего пополнения🔥

Подготовка

Останавливаем ноду в девнете, если есть, и копируем данные ноды:

nano ~/node_info.json

Сохраняем себе данные файла

Останавливаем ноду:

sudo systemctl stop pipe
sudo systemctl disable pipe
sudo systemctl daemon-reload

Установка

1️⃣ Выполняем обновление сервера:

sudo apt-get update && sudo apt-get 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 libleveldb-dev  -y
sudo apt install -y libssl-dev ca-certificates

2️⃣ Открываем порты и включаем файрволл:

sudo ufw allow ssh
sudo ufw enable

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

3️⃣ Создаем настройки системы:
Копируем и вставляем код целиком

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

Далее

sudo bash -c 'cat > /etc/security/limits.d/popcache.conf << EOL
*    hard nofile 65535
*    soft nofile 65535
EOL'

4️⃣ Теперь закройте сессию терминала и подключитесь к серверу повторно, для того, чтобы настройки применились.

5️⃣ Создаем папки для ноды:

sudo mkdir -p /opt/popcache
sudo mkdir -p /opt/popcache/logs

Переходим в папку с нодой:

cd /opt/popcache

6️⃣Скачиваем ноду по ссылке из письма. Или так:

wget https://download.pipe.network/static/pop-v0.3.2-linux-x64.tar.gz

Далее:

sudo tar -xzf pop-v0.3.2-linux-*.tar.gz
chmod 755 /opt/popcache/pop

7️⃣ Создаем и настраиваем конфиг файл:

nano config.json

Вставляем и редактируем свои данные в тексте конфига:

{
  "pop_name": "your-pop-name",
  "pop_location": "Город, Страна",
  "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": КОЛИЧЕСТВО_МЕСТА_КОТОРОЕ_ВЫДЕЛЯЕТЕ_ПОД_НОДУ,
    "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": "Имя ноды",
    "name": "Ваше имя",
    "email": "your.email@example.com",
    "website": "https://your-website.com",
    "discord": "your_discord_username",
    "telegram": "your_telegram_handle",
    "solana_pubkey": "ВАШ_СОЛАНА_КОШЕЛЕК"
  }
}

Заменяем на свои данные:

  • Меняем your-pop-name на любое название
  • Меняем Город, Страна на город и страну где расположен сервер.
  • Меняем Ваш код из письма
  • Меняем Имя ноды
  • Меняем Ваше имя
  • Меняем your.email@example.com на почту на которую пришел код
  • Меняем https://your-website.com Если нет сайта, можно пропустить.
  • Меняем your_discord_username на ваш дискорд
  • Меняем your_telegram_handle на ваш телеграм
  • Меняем ВАШ_СОЛАНА_КОШЕЛЕК на ваш кошелек в сети солана, новый или тот с которым участвовали в девнете.
  • Сохраняем файл с помощью: CTRL + X, затем Y, далее Enter.

8️⃣ Создаем Systemd файл:

Вставляем и запускаем целиком:

sudo bash -c 'cat > /etc/systemd/system/popcache.service << EOL
[Unit]
Description=POP Cache Node
After=network.target

[Service]
Type=simple
User=root
Group=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'

9️⃣ Запускаем ноду:

sudo systemctl daemon-reload
sudo systemctl enable popcache
sudo systemctl start popcache


Проверяем состояние ноды:

sudo systemctl status popcache

Получаем подобное

Проверяем, что нода использует порты:

ss -tulpn | grep -E ':80|:443'

Проверяем состояние:

curl -sk https://localhost/state && echo -e "\n"

В логах нам важно, чтобы было:
pop_id - тут указан ID вашей ноды
identity_registered":true
rewards_enabled":true
Так же можете проверить, что в solana_pubkey указан именно ваш кошелек.

Проверяем логи:

tail -f /opt/popcache/logs/stdout.log

Должны получить подобное:

Если где то ошибки, смотрите раздел Решение проблем. Если там не нашли свою ошибку, то сначало останавливаем ноду и перезапускаем. Делаем проверку. Если ошибка повторяется, то пишите в чат - будем разбираться.

Полезные команды:

  • Дашбоард со статистикой ноды: https://dashboard.testnet.pipe.network/node/ВАШ_ID_Ноды
  • Проверить состояние ноды sudo systemctl status popcache
  • Посмотреть логи (логи показываются с самого начала, для перемещения к текущим логам нажмите PgDn на клавиатуре) sudo journalctl -u popcache
  • Посмотреть показатели ноды: curl -sk https://localhost/health && echo -e "\n"
  • Остановить ноду sudo systemctl stop popcache
  • Перезапустить ноду:
cd /opt/popcache
sudo systemctl daemon-reload
sudo systemctl enable popcache
sudo systemctl restart popcache

Где хранятся данные от ноды для переноса:

Файл .pop_state.json содержит данные от вашей ноды, находится в папке /opt/popcache/

Удаление ноды:

Оставить ноду:

sudo systemctl status popcache
cd /opt
sudo rm -rf /opt/popcache  # Удаляет 'popcache' папку с файлами ноды

Обновление ноды:

1) Переходим в папку с нодой:

cd /opt/popcache

2) Останавливаем ноду:

sudo systemctl stop popcache

3) Скачиваем обновление:

wget https://download.pipe.network/static/pop-v0.3.2-linux-x64.tar.gz

4) Удаляем прошлую версию ноды и распаковываем новую:

rm -f pop
tar -xzf pop-v0.3.2-linux-x64.tar.gz
chmod +x pop

5) Удаляем старые логи:

rm -f logs/*

6) Запускаем ноду:

sudo systemctl start popcache

7) Проверяем состояние ноды:

systemctl status popcache

Решение проблем:

🟥 Ошибка с регистрацией ноды

❌ Failed to register with API: Failed to connect to registration API: error sending request for url: operation timed out. Registration is required.
Или
Registration error: Registration failed with status 429 Too Many Requests


Останавливаете ноду:

sudo systemctl stop popcache

Снова запускаете:

cd /opt/popcache
sudo systemctl daemon-reload
sudo systemctl enable popcache
sudo systemctl restart popcache

Если не помогло и ошибка та же, то останавливаете ноду. Ждете примерно час и запускаете.

🟥 Один из портов занят другим процессом.

Проверяем нужные порты

ss -tulpn | grep -E ':80|:443'

Должно быть так. Если порт занят другим процессом отличным от "pop" и вы хотите его отключить, то выполняем:

sudo kill -9 номер_pid


🟥 Как добавить памяти серверу через файл подкачки:

1) Проверяем какой объём сейчас у файла подкачки:

swapon --show

2) Отключаем файл для изменения:

sudo swapoff /swapfile

3) Вводим новое значения файла, вместо xx укажите сколько гигабайт хотите выделить под файл подкачки:

 sudo fallocate -l xxG /swapfile

4) Подтверждаем изменение:

sudo mkswap /swapfile

5) Включаем файл подкачки:

sudo swapon /swapfile

Подписываемся на ТГ канал SNG DAO, чтобы ничего не пропустить!
Если есть вопросы или хотите обсудить заходите к нам в чат.