Pipe Network — ставим ноду / systemd
lvch_clan — канал не только о нодах, подписывайся
О проекте Pipe Network
Pipe Network — это децентрализованная сеть доставки контента (CDN) на базе блокчейна Solana. Она позволяет участникам без разрешений развёртывать точки присутствия (PoP) в определённых регионах, обеспечивая быстрый доступ к высококачественным медиа и приложениям в реальном времени через безопасное и масштабируемое решение
Инвест: $10M от Multicoin Capital, Solana Ventures, Robot Ventures, Meltem Demirors, Анатолий Яковенко (CEO Solana). Раунд состоялся 16 сентября 2024 года
Сайт / Discord / X.com / Cryptorank / Docs
В данный момент проходит стадия DevNet 2 и уже можно установить ноду. DevNet 2 — это по сути альфа-тестовая сеть. Как только она проявит стабильность в течение 40 дней, будет запущена тестовая сеть
На сайте нам предлагают подать заявку на оператора ноды. Форму можно найти по ССЫЛКЕ.Ноду можно поставить и без заполнения формы, но лучше отправить форму и параллельно поставить ноду
Этот гайд поможет установить и запустить ноду Pipe Network на DevNet-2 через systemd-сервис с учётом всех рекомендаций официальной документации для максимальной стабильности и безопасности
Требования к серверу
- Ubuntu 22.04+
- Минимально 4 GB оперативной памяти (можно настроить). Чем больше, тем больше наград
- Не менее 100 GB свободного места на диске (можно настроить). Оптимально 200–500 GB
- Стабильный интернет
- Порты 80 и 443 должны быть свободны
Сервер можно арендовать на на VDSina, AEZA, Contabo, Xorek
Установка ноды
Скачиваем и устанавливаем Termius — есть версия для macOS, Windows
Подключаемся к серверу, используя данные от хостера — IP, login, password
1. Установка необходимых утилит
Обновим систему и установим нужные инструменты:
sudo apt update sudo apt install net-tools lsof
2. Скачивание и подготовка ноды
curl -L -o pop "https://dl.pipecdn.app/v0.2.8/pop" chmod +x pop sudo mkdir -p /data
sudo ./pop \ --ram 8 \ --max-disk 500 \ --cache-dir /data \ --pubKey <KEY>
--ram 4 — объем оперативной памяти, который вы можете выделить на своем сервере
--max-disk 100 — максимальный объем выделяемого пространства жесткого диска, выделяемого под загрузку нодой
--pubKey <KEY> — вместо <KEY> вставляем адрес вашего кошелька Solana
Проверить сколько доступно оперативной памяти можно командой
htop
Если утилита не установлена, устанавливаем командой
sudo apt install htop
В моем случае можно использовать ~8-10 GB оперативки
Проверить свободное место на диске можно командой
df -h
В моем случае свободно 891 GB, а использовать я буду ~700
После запуска будет создан файл node_info.json. Сделаем бэкап:
cp node_info.json /root/node_info_backup.json
Этот файл будет необходим в случае, если мы решим переехать на новый сервер, например
4. Настройка пользователя и директорий
sudo useradd -r -m -s /sbin/nologin pop-svc-user -d /home/pop-svc-user 2>/dev/null || true sudo mkdir -p /opt/pop sudo mkdir -p /var/lib/pop sudo mv -f /root/pop /opt/pop/ sudo chmod +x /opt/pop/pop sudo mv -f /root/node_info.json /var/lib/pop/ sudo chown -R pop-svc-user:pop-svc-user /var/lib/pop sudo chown -R pop-svc-user:pop-svc-user /data sudo chown -R pop-svc-user:pop-svc-user /opt/pop
sudo tee /etc/systemd/system/pop.service << 'EOF' [Unit] Description=Pipe POP Node Service After=network.target Wants=network-online.target [Service] AmbientCapabilities=CAP_NET_BIND_SERVICE CapabilityBoundingSet=CAP_NET_BIND_SERVICE User=pop-svc-user Group=pop-svc-user ExecStart=/opt/pop/pop --ram 8 --max-disk 500 --cache-dir /data --pubKey твой_публичный_ключ --enable-80-443 --no-prompt # Поменяй следующие параметры на свои: # --ram 8 — количество оперативной памяти в ГБ (например, 4, 8, 16) # --max-disk 500 — максимальный размер диска в ГБ (например, 100, 200, 500) # --pubKey твой_публичный_ключ — твой Solana public key из кошелька (Phantom, Backpack и т.д.) Restart=always RestartSec=5 LimitNOFILE=65536 LimitNPROC=4096 StandardOutput=journal StandardError=journal SyslogIdentifier=pop-node WorkingDirectory=/var/lib/pop [Install] WantedBy=multi-user.target EOF
Обратить внимание в сервисном файле на необходимость вставить свои данные
# Поменяй следующие параметры на свои: # --ram 8 — количество оперативной памяти в ГБ (например, 4, 8, 16) # --max-disk 500 — максимальный размер диска в ГБ (например, 100, 200, 500) # --pubKey твой_публичный_ключ — твой Solana public key из кошелька (Phantom, Backpack и т.д.)
ln -sf /var/lib/pop/node_info.json /root/node_info.json grep -q "alias pop='cd /var/lib/pop && /opt/pop/pop'" ~/.bashrc || echo "alias pop='cd /var/lib/pop && /opt/pop/pop'" >> ~/.bashrc && source ~/.bashrc
Эти команды упрощают работу с нодой: создают ссылку на node_info.json в /root и добавляют алиас pop для быстрого запуска бинарника из рабочей директории
sudo systemctl daemon-reload sudo systemd-analyze verify pop.service && sudo systemctl enable pop.service && sudo systemctl start pop.service
sudo systemctl status pop --no-pager ss -tulnp | grep -E ':80|:443' pop --status pop --stats pop --points
Реферальная система
Ноды могут создавать реферальные коды:
./pop --gen-referral-route
Новые ноды могут зарегистрироваться с помощью реферального кода:
./pop --signup-by-referral-route <КОД>
Чтобы использовать мой реферальный код, необходимо ввести
./pop --signup-by-referral-route 654e0c0ea1393591
На данный момент команда ограничивает количество запросов от нод и вы можете получить сообщение вида
Значит вам надо вернуться через час)
Как работает рефералка
Тот, кто пригласил (реферер), получает 10 очков, если приглашённый узел:
Узел, создавший реферальный код, тоже должен поддерживать хороший репутационный рейтинг, чтобы рефералы считались действительными и приносили пользу сети
Эта программа со временем расширится, добавив разделение наград
- Зайдите на сайт:
https://dashboard.pipenetwork.com/node-lookup - Введите ID узла реферера в поле "Node Lookup"
- Прокрутите вниз до раздела "Referral Stats", чтобы посмотреть данные по приглашённым нодам
Система репутации
Репутационный рейтинг ноды (от 0 до 1) рассчитывается на основе работы за последние 7 дней и состоит из трёх основных компонентов:
Оценка времени работы (Uptime Score) — 40% от общего рейтинга
- Отчёты сначала группируются по часам, чтобы избежать перекоса из-за слишком частой отчётности
- День считается с "хорошим покрытием", если отчёты есть хотя бы за 75% часов (18+ часов)
- Для дней с хорошим покрытием среднее время работы взвешивается по полноте покрытия дня
- Итоговая оценка времени работы — это средневзвешенное дневное время работы, поделённое на секунды в сутках (максимум 100%)
Историческая оценка (Historical Score) — 30% от общего рейтинга
- Зависит от того, сколько дней из последних 7 имели хорошее покрытие
- Пример: если 6 из 7 дней имели хорошее покрытие, историческая оценка будет 0.857 (86%)
- Это поощряет стабильную отчётность со временем
Оценка передачи данных (Egress Score) — 30% от общего рейтинга
- Зависит от общего объёма переданных данных за 7 дней
- Нормируется относительно цели в 1 ТБ в день
- Максимум 100%
Репутация — это показатель того, насколько хорошо твой узел (нода) работает в сети за последние 7 дней. Вот как это устроено и что делать, чтобы твой скор был высоким:
### Как считается репутация
1. **Активность каждый час**: Система смотрит, как часто твой узел отчитывается о своей работе в течение дня. День считается "хорошо покрытым", если есть данные хотя бы за 18 часов из 24 (75% времени).
2. **Среднее время работы**: Для каждого дня с хорошим покрытием считается, сколько времени узел был активен. Чем больше часов он работает, тем лучше.
3. **Итоговый скор**: Берется среднее время работы за все "хорошо покрытые" дни и делится на общее количество секунд в сутках. Плюс учитывается, сколько дней из 7 были с хорошим покрытием. Например, если 6 из 7 дней были активны, это уже 86% от максимума.
### Что делать, чтобы получить высокий скор
1. **Держи узел включенным 24/7**: Чем дольше твой узел работает без перерывов, тем лучше. Идеально — не выключать его вообще, чтобы он был активен все 24 часа каждый день.
2. **Проверяй интернет**: Убедись, что у тебя стабильное подключение. Если интернет пропадает, узел не сможет отчитаться, и это снизит твой скор.
3. **Минимум 18 часов в день**: Даже если не получается 24 часа, старайся, чтобы узел работал хотя бы 18 часов в сутки. Это минимальный порог для "хорошего покрытия".
4. **Следи за 7 днями**: Репутация считается за последнюю неделю. Если один день был плохим (например, узел был выключен), это не конец, но постарайся, чтобы остальные 6 дней были на высоте.
5. **Настрой правильно оборудование**: Убедись, что у тебя хватает места на диске (100-500 ГБ) и оперативной памяти (например, 8 ГБ), чтобы узел не тормозил и не выключался из-за перегрузки.
### Пример
Допустим, твой узел работал так:
- День 1: 24 часа (100%)
- День 2: 22 часа (92%)
- День 3: 20 часов (83%)
- День 4: 12 часов (50%, не считается)
- День 5-7: 24 часа (100%)
Из 7 дней 6 были с хорошим покрытием (больше 18 часов), и среднее время работы высокое. Твой скор репутации будет близок к 0.9 или выше (90%+), что считается отличным результатом.
### Итог
Просто держи узел включенным как можно дольше, следи за стабильностью интернета и оборудования. Чем больше дней с почти полной активностью, тем выше твой скор репутации!
Пример расчёта и заметки по этому поводу можно найти в DOCS
Получение роли в Discord
После успешного запуска ноды, мы можем получить роль DevNetPOP
Идем в Discord, ищем ветку role-request и отправляем туда сообщение в формате
NODE ID + скриншот
Получить NODE ID можно запросом
./pop --status
Полезные команды
sudo systemctl stop pop
journalctl -u pop
sudo systemctl restart pop
sudo systemctl stop pop sudo systemctl disable pop sudo rm /etc/systemd/system/pop.service sudo systemctl daemon-reload sudo rm -rf /opt/pop sudo rm -rf /var/lib/pop sudo rm -rf /data sudo userdel -r pop-svc-user
Гайд от канала lvch_clan