Гайд 0g Storage Node
Установка 0g Storage Node на бюджетный сервер
Минимальные официальные требования для ноды: 8 CPU 32 RAM и 500-1000GB свободного места.
Такой сервер не каждый захочет брать под ноду, поэтому данный гайд сделан под сервер 8 CPU 16 RAM и 250 GB свободного места.
Обойдётся такой сервер в 1550р в месяц. Можно выбрать любую доступную страну, DE-TEMP, SWE-TEMP или FI-TEMP (Самые последние в разделе AMD Ryzen)
При регистрации у хостера Play2Go вы получаете +10% к сумме первого пополнения. А так же используйте промокод SNGDAO - он даст +5% на повторное пополнение счета🔥
Используемые нодой порты: 5678, 5679
Подготовка:
Создаем новый кошелек для ноды
Идем в кран https://faucet.0g.ai/
получаем тестовые токены или можно перевести с другого кошелька 0.05-0.1 токенов
Тут можно добавить сеть в кошелек https://docs.0g.ai/developer-hub/testnet/testnet-overview
Установка
1) Обновляем пакеты, если сервер новый или давно не обновляли
sudo apt-get update && sudo apt-get upgrade -y
sudo apt install curl iptables build-essential git wget lz4 jq make cmake gcc nano automake autoconf tmux htop nvme-cli libgbm1 pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev screen ufw -y
curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
rustc --version
wget https://go.dev/dl/go1.24.3.linux-amd64.tar.gz && \ sudo rm -rf /usr/local/go && \ sudo tar -C /usr/local -xzf go1.24.3.linux-amd64.tar.gz && \ rm go1.24.3.linux-amd64.tar.gz && \ echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc && \ source ~/.bashrc go version
apt install screen -y
screen -S ogstor
git clone https://github.com/0glabs/0g-storage-node.git
cd 0g-storage-node && git checkout v1.0.0 && git submodule update --init
cargo build --release
rm -rf $HOME/0g-storage-node/run/config.toml
curl -o $HOME/0g-storage-node/run/config.toml https://raw.githubusercontent.com/ruspacer/0g/refs/heads/main/config.toml
nano $HOME/0g-storage-node/run/config.toml
И вставляем вместо ПРИВАТНЫЙ_КЛЮЧ_КОШЕЛЬКА свой приватный ключ, который будет использоваться нодой.
Для сохранения файла нажимает CTRL+X потом Y и Enter
9) Создаем файл Systemd (копируем целиком)
sudo tee /etc/systemd/system/zgs.service > /dev/null <<EOF [Unit] Description=ZGS Node After=network.target [Service] User=$USER WorkingDirectory=$HOME/0g-storage-node/run ExecStart=$HOME/0g-storage-node/target/release/zgs_node --config $HOME/0g-storage-node/run/config.toml Restart=on-failure RestartSec=10 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
sudo systemctl daemon-reload && sudo systemctl enable zgs && sudo systemctl start zgs
sudo systemctl status zgs
tail -f ~/0g-storage-node/run/log/zgs.log.$(TZ=UTC date +%Y-%m-%d)
Но это нужно обычно в случае, если есть проблемы в статусе
Основные логи которые нам нужны:
while true; do response=$(curl -s -X POST http://localhost:5678 -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"zgs_getStatus","params":[],"id":1}'); logSyncHeight=$(echo $response | jq '.result.logSyncHeight'); connectedPeers=$(echo $response | jq '.result.connectedPeers'); echo -e "logSyncHeight: \033[32m$logSyncHeight\033[0m, connectedPeers: \033[34m$connectedPeers\033[0m"; sleep 5; doneТут вводим адрес своего кошелька и увидим транзакции https://chainscan-galileo.bangcode.id/
Статистику по ноде теперь можно смотреть тут: https://0g-tx.maouam.nodelab.my.id/
Важно, чтобы после запуска ноды у вас появилась 1 транзакция - активация ноды.
По наградам: В данный момент количество транзакций с наградами начисляются рандомно. У вас может за день прийти несколько наград или же 1 за 2 суток.
Полезные команды:
sudo systemctl stop zgs
sudo systemctl start zgs
Посмотреть подключения к ноде:
while true; do response=$(curl -s -X POST http://localhost:5678 -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"zgs_getStatus","params":[],"id":1}'); logSyncHeight=$(echo $response | jq '.result.logSyncHeight'); connectedPeers=$(echo $response | jq '.result.connectedPeers'); echo -e "logSyncHeight: \033[32m$logSyncHeight\033[0m, connectedPeers: \033[34m$connectedPeers\033[0m"; sleep 5; donesudo systemctl status zgs
tail -f ~/0g-storage-node/run/log/zgs.log.$(TZ=UTC date +%Y-%m-%d)
🧬Обновление ноды
1️⃣ Перед обновлением делаем бекап файла с конфигом:
cd $HOME; mv $HOME/0g-storage-node/run/config.toml $HOME/config_backup.toml
sudo systemctl stop zgs
3️⃣ Переходим в папку и обновляем:
cd $HOME/0g-storage-node; git fetch --all --tags && git checkout v1.1.0 && git submodule update --init && cargo build --release
4️⃣ Возвращаем файл с конфигом наместо:
mv $HOME/config_backup.toml $HOME/0g-storage-node/run/config.toml
5️⃣ Проверяем версию ноды: git describe --tag
sudo systemctl start zgs
Удаление ноды:
sudo systemctl stop zgs
sudo systemctl disable zgs sudo rm /etc/systemd/system/zgs.service rm -rf $HOME/0g-storage-node
Дополнительные настройки:
🟠 Как изменить RPC?
nano $HOME/0g-storage-node/run/config.toml
2) Находим в конфиге такой пункт:
И вставляем ссылку на другую RPC
3) Сохраняем конфиг, через CTRL+X далее Y и далее enter
Список RPC по скорости и тд, можно посмотреть тут https://www.astrostake.xyz/0g-status/
🟠 Как задействовать больше свободного места на сервере?
По умолчанию конфиг настроен под ~200 свободного места на сервере.
Чтобы увеличить этот лимит:
nano $HOME/0g-storage-node/run/config.toml
2) Находим в конфиге такой пункт:
Значение 1000000000 соответствует 256 GB свободного места на сервере. Если вы замените его на 2000000000 это будет ранятся ~500GB это верхний лимит, по факту нода пытается использовать примерно половину от максимума.
После того как вы рассчитали и ввели желаемый лимит для вашего сервере, сохраните ваш конфиг, через CTRL+X далее Y и далее enter
3)Перезапускаем ноду.