Ноды 0G Labs (Ø,G) — AI L1

Разворачивание различных типов узлов (нод) 0G Labs, по типу узла: Validator Node (Валидатор), Storage Node (Хранилище), Storage KV Node (Хранилище KV), DA Node (Нода доступности данных), DA Client Node (Клиентская нода DA) и DA Retriever Node (Нода извлечения DA).

Инструкция по развертыванию узлов 0G Labs

1. Validator Node (Валидатор, только для белого списка)

Как подать заявку на становление валидатором:

Рекомендуемые аппаратные характеристики:

  • CPU: 8 ядер
  • Память: 64 ГБ RAM
  • Хранилище: 1 ТБ NVMe SSD
  • Сеть: 100 Мбит/с (скачивание/загрузка)

Шаги установки:

  1. Выполните команду для автоматической установки:
  2. source <(curl -s https://itrocket.net/api/testnet/og/autoinstall/)

Источник:

2. Storage Node (Узел хранения)

Рекомендуемые аппаратные характеристики:

  • CPU: 8 ядер
  • Память: 32 ГБ RAM
  • Хранилище: 500 ГБ или 1 ТБ NVMe SSD
  • Сеть: 100 Мбит/с (скачивание/загрузка)

Шаги установки:

  1. Установите предварительные зависимости:
  2. sudo apt update && sudo apt upgrade -y && \ sudo apt autoremove && \ sudo ufw allow 8545/tcp && \ sudo apt install curl git wget htop tmux build-essential jq make gcc tar clang pkg-config libssl-dev ncdu cmake -y

    Примечание: Если Golang и Rust уже установлены, пропустите шаги 2 и 3.

  3. Установите Golang:
  4. cd $HOME && VER=»1.22.0″ && \ wget «https://golang.org/dl/go$VER.linux-amd64.tar.gz» && \ sudo rm -rf /usr/local/go && \ sudo tar -C /usr/local -xzf «go$VER.linux-amd64.tar.gz» && \ rm «go$VER.linux-amd64.tar.gz» && \ [ ! -f ~/.bash_profile ] && touch ~/.bash_profile && \ echo «export PATH=$PATH:/usr/local/go/bin:~/go/bin» >> ~/.bash_profile && \ source $HOME/.bash_profile && \ [ ! -d ~/go/bin ] && mkdir -p ~/go/bin && \ go version
  5. Установите Rust:
  6. cd $HOME && curl —proto ‘=https’ —tlsv1.2 -sSf https://sh.rustup.rs | sh -s — -y && \ source $HOME/.cargo/env
  7. Установите узел хранения:
  8. cd $HOME && git clone https://github.com/0glabs/0g-storage-node.git && cd 0g-storage-node && \ git checkout v0.8.4 && \ git submodule update —init && \ cargo build —release
  9. Настройте RPC (выполните на сервере с валидатором):
  10. sed -i ‘/\[json-rpc\]/,/^\[/{/^address = «/ s/\(address = «\)[^:]*\(:[0-9]\+\)»/\10.0.0.0\2″/; t; }’ $HOME/.0gchain/config/app.toml && \ sed -i ‘/\[json-rpc\]/,/^\[/{/^api = «/ s/\(api = «\)[^»]*»/\1eth,txpool,personal,net,debug,web3″/; t; }’ $HOME/.0gchain/config/app.toml

    Замените http://YOUR-IP-VPS:8545 на IP вашего VPS.

  11. Установите переменные окружения:
  12. ENR_ADDRESS=$(wget -qO- eth0.me) && \ echo «export ENR_ADDRESS=$ENR_ADDRESS» >> ~/.bash_profile && \ echo ‘export LOG_CONTRACT_ADDRESS=»0xbD2C3F0E65eDF5582141C35969d66e34629cC768″‘ >> ~/.bash_profile && \ echo ‘export MINE_CONTRACT=»0x6815F41019255e00D6F34aAB8397a6Af5b6D806f»‘ >> ~/.bash_profile && \ echo ‘export REWARD_CONTRACT=»0x51998C4d486F406a788B766d93510980ae1f9360″‘ >> ~/.bash_profile && \ echo ‘export ZGS_LOG_SYNC_BLOCK=»595059″‘ >> ~/.bash_profile && \ echo ‘export BLOCKCHAIN_RPC_ENDPOINT=»http://YOUR-IP-VPS:8545″‘ >> ~/.bash_profile && \ source ~/.bash_profile
  13. Скачайте конфигурационный файл:
  14. wget -O $HOME/0g-storage-node/run/config-testnet-turbo.toml https://server-7.itrocket.net/testnet/og/storage/config-testnet-turbo.toml

    Отредактируйте файл:

    sed -i ‘ s|^\s*#\?\s*network_dir\s*=.*|network_dir = «network»| s|^\s*#\?\s*network_listen_address\s*=.*|network_listen_address = «0.0.0.0»| s|^\s*#\?\s*network_enr_address\s*=.*|network_enr_address = «‘»$ENR_ADDRESS»‘»| s|^\s*#\?\s*network_enr_tcp_port\s*=.*|network_enr_tcp_port = 1234| s|^\s*#\?\s*network_enr_udp_port\s*=.*|network_enr_udp_port = 1234| s|^\s*#\?\s*network_libp2p_port\s*=.*|network_libp2p_port = 1234| s|^\s*#\?\s*network_discovery_port\s*=.*|network_discovery_port = 1234| s|^\s*#\?\s*network_target_peers\s*=.*|network_target_peers = 100| s|^\s*#\?\s*rpc_listen_address\s*=.*|rpc_listen_address = «0.0.0.0:5678″| s|^\s*#\?\s*db_dir\s*=.*|db_dir = «db»| s|^\s*#\?\s*log_config_file\s*=.*|log_config_file = «log_config»| s|^\s*#\?\s*log_directory\s*=.*|log_directory = «log»| s|^\s*#\?\s*network_boot_nodes\s*=.*|network_boot_nodes = \[«/ip4/47.251.117.133/udp/1234/p2p/16Uiu2HAmTVDGNhkHD98zDnJxQWu3i1FL1aFYeh9wiQTNu4pDCgps»,»/ip4/47.76.61.226/udp/1234/p2p/16Uiu2HAm2k6ua2mGgvZ8rTMV8GhpW71aVzkQWy7D37TTDuLCpgmX»]| s|^\s*#\?\s*network_private\s*=.*|network_private = false| s|^\s*#\?\s*network_disable_discovery\s*=.*|network_disable_discovery = false| s|^\s*#\?\s*discv5_request_timeout_secs\s*=.*|discv5_request_timeout_secs = 10| s|^\s*#\?\s*discv5_query_peer_timeout_secs\s*=.*|discv5_query_peer_timeout_secs = 5| s|^\s*#\?\s*discv5_request_retries\s*=.*|discv5_request_retries = 3| s|^\s*#\?\s*log_contract_address\s*=.*|log_contract_address = «‘»$LOG_CONTRACT_ADDRESS»‘»| s|^\s*#\?\s*listen_address\s*=.*|rpc_listen_address = «0.0.0.0:5678″| s|^\s*#\?\s*mine_contract_address\s*=.*|mine_contract_address = «‘»$MINE_CONTRACT»‘»| s|^\s*#\?\s*reward_contract_address\s*=.*|reward_contract_address = «‘»$REWARD_CONTRACT»‘»| s|^\s*#\?\s*log_sync_start_block_number\s*=.*|log_sync_start_block_number = ‘»$ZGS_LOG_SYNC_BLOCK»‘| s|^\s*#\?\s*blockchain_rpc_endpoint\s*=.*|blockchain_rpc_endpoint = «‘»$BLOCKCHAIN_RPC_ENDPOINT»‘»| s|^# \[sync\]|\[sync\]| s|^# auto_sync_enabled = false|auto_sync_enabled = true| s|^# find_peer_timeout = .*|find_peer_timeout = «30s»| ‘ $HOME/0g-storage-node/run/config-testnet-turbo.toml
  15. Экспортируйте приватный ключ:
  16. 0gchaind keys unsafe-export-eth-key $WALLET

    Сохраните ключ в config.toml:

    sed -i ‘/^# miner_key = «»/c\miner_key = «‘»<PRIVATE_KEY>»‘»‘ $HOME/0g-storage-node/run/config-testnet-turbo.toml

    Замените <PRIVATE_KEY> на ваш ключ.

  17. Создайте сервисный файл:
  18. sudo tee /etc/systemd/system/zgs.service > /dev/null <
  19. Запустите сервис:
  20. cd $HOME && rm storage_0gchain_snapshot.lz4 && \ sudo apt-get install wget lz4 aria2 pv -y && \ aria2c -x 16 -s 16 -k 1M https://josephtran.co/storage_0gchain_snapshot.lz4 && \ lz4 -c -d storage_0gchain_snapshot.lz4 | pv | tar -x -C $HOME/0g-storage-node/run && \ sudo systemctl daemon-reload && \ sudo systemctl enable zgs && \ sudo systemctl restart zgs && sudo systemctl status zgs

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

  • Остановить узел: sudo systemctl stop zgs
  • Сделать резервную копию конфига: mv $HOME/0g-storage-node/run/config-testnet-turbo.toml $HOME/config-testnet-turbo_backup.toml
  • Восстановить конфиг: mv $HOME/config-testnet-turbo_backup.toml $HOME/0g-storage-node/run/config-testnet-turbo.toml
  • Проверить версию: $HOME/0g-storage-node/target/release/zgs_node --version
  • Перезапустить узел: sudo systemctl restart zgs && sudo systemctl status zgs
  • Просмотреть логи: tail -f ~/0g-storage-node/run/log/zgs.log.$(TZ=UTC date +%Y-%m-%d)

Источник:

3. Storage KV Node (Узел хранения KV)

Рекомендуемые аппаратные характеристики:

  • CPU: 8 ядер
  • Память: 32 ГБ RAM
  • Хранилище: 500 ГБ или 1 ТБ NVMe SSD (зависит от потока KV)
  • Сеть: 100 Мбит/с (скачивание/загрузка)

Шаги установки:

  1. Установите предварительные зависимости:
  2. sudo apt update && sudo apt upgrade -y && \ sudo apt autoremove && \ sudo apt install curl git wget htop tmux build-essential jq make gcc tar clang pkg-config libssl-dev ncdu cmake -y

    Примечание: Если Golang и Rust уже установлены, пропустите шаги 2 и 3.

  3. Установите Golang:
  4. cd $HOME && VER=»1.22.0″ && \ wget «https://golang.org/dl/go$VER.linux-amd64.tar.gz» && \ sudo rm -rf /usr/local/go && \ sudo tar -C /usr/local -xzf «go$VER.linux-amd64.tar.gz» && \ rm «go$VER.linux-amd64.tar.gz» && \ [ ! -f ~/.bash_profile ] && touch ~/.bash_profile && \ echo «export PATH=$PATH:/usr/local/go/bin:~/go/bin» >> ~/.bash_profile && \ source $HOME/.bash_profile && \ [ ! -d ~/go/bin ] && mkdir -p ~/go/bin && \ go version
  5. Установите Rust:
  6. cd $HOME && curl —proto ‘=https’ —tlsv1.2 -sSf https://sh.rustup.rs | sh -s — -y && \ source $HOME/.cargo/env
  7. Установите узел KV:
  8. cd $HOME && git clone -b v1.2.1 https://github.com/0glabs/0g-storage-kv.git && \ cd 0g-storage-kv && git submodule update —init —recursive && \ cargo build —release
  9. Настройте параметры:
  10. cp $HOME/0g-storage-kv/run/config_example.toml $HOME/0g-storage-kv/run/config.toml && \ sed -i ‘/^blockchain_rpc_endpoint =/c\blockchain_rpc_endpoint = «https://evmrpc-testnet.0g.ai»‘ $HOME/0g-storage-kv/run/config.toml && \ sed -i ‘/^log_contract_address =/c\log_contract_address = «0x0460aA47b41a66694c0a73f667a1b795A5ED3556″‘ $HOME/0g-storage-kv/run/config.toml && \ sed -i ‘/^log_sync_start_block_number =/c\log_sync_start_block_number = 595059’ $HOME/0g-storage-kv/run/config.toml
  11. Создайте сервисный файл:
  12. sudo tee /etc/systemd/system/0gkv.service > /dev/null <
  13. Запустите сервис:
  14. sudo systemctl daemon-reload && \ sudo systemctl enable 0gkv && \ sudo systemctl start 0gkv && \ sudo systemctl status 0gkv
  15. Просмотрите логи:
  16. sudo journalctl -u 0gkv -f -o cat

Удаление узла:

sudo systemctl stop 0gkv && \ sudo systemctl disable 0gkv && \ sudo rm /etc/systemd/system/0gkv.service && \ rm -rf $HOME/0g-storage-kv

Источник:

4. DA Node (Узел доступности данных)

Рекомендуемые аппаратные характеристики:

  • CPU: 8 ядер
  • Память: 16 ГБ RAM
  • Хранилище: 1 ТБ NVMe SSD
  • Сеть: 100 Мбит/с (скачивание/загрузка)

Шаги установки:

  1. Установите предварительные зависимости:
  2. sudo apt update && sudo apt upgrade -y && \ sudo apt autoremove && \ sudo apt install curl git wget htop tmux build-essential jq make gcc tar clang pkg-config libssl-dev ncdu protobuf-compiler -y

    Примечание: Если Golang и Rust уже установлены, пропустите шаги 2 и 3.

  3. Установите Golang:
  4. cd $HOME && VER=»1.22.0″ && \ wget «https://golang.org/dl/go$VER.linux-amd64.tar.gz» && \ sudo rm -rf /usr/local/go && \ sudo tar -C /usr/local -xzf «go$VER.linux-amd64.tar.gz» && \ rm «go$VER.linux-amd64.tar.gz» && \ [ ! -f ~/.bash_profile ] && touch ~/.bash_profile && \ echo «export PATH=$PATH:/usr/local/go/bin:~/go/bin» >> ~/.bash_profile && \ source $HOME/.bash_profile && \ [ ! -d ~/go/bin ] && mkdir -p ~/go/bin && \ go version
  5. Установите Rust:
  6. cd $HOME && curl —proto ‘=https’ —tlsv1.2 -sSf https://sh.rustup.rs | sh -s — -y && \ source $HOME/.cargo/env
  7. Установите DA-узел:
  8. cd $HOME && git clone https://github.com/0glabs/0g-da-node.git && cd 0g-da-node && \ git fetch —all —tag && \ git checkout v1.1.3 && \ git submodule update —init && \ cargo build —release && \ ./dev_support/download_params.sh
  9. Сгенерируйте BLS приватный ключ:
  10. cargo run —bin key-gen

    Сохраните сгенерированный ключ.

  11. Создайте конфигурационный файл:
  12. cat > $HOME/0g-da-node/config.toml <

    Замените:

    • EDIT-VPS-ID:34000 на IP вашего VPS и порт.
    • Приватные ключи на ваши значения.
  13. Создайте сервисный файл:
  14. sudo tee /etc/systemd/system/0gda.service > /dev/null <
  15. Запустите сервис:
  16. sudo systemctl daemon-reload && \ sudo systemctl enable 0gda && \ sudo systemctl start 0gda
  17. Просмотрите логи:
  18. sudo journalctl -u 0gda -f -o cat

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

Если возникла ошибка с protoc:

protoc —version sudo apt-get remove -y protobuf-compiler && \ wget https://github.com/protocolbuffers/protobuf/releases/download/v30.0-rc1/protoc-30.0-rc-1-linux-x86_64.zip && \ unzip protoc-30.0-rc-1-linux-x86_64.zip -d /usr/local/ && \ sudo chmod +x /usr/local/bin/protoc

Удаление узла:

sudo systemctl stop 0gda && \ sudo systemctl disable 0gda && \ sudo rm /etc/systemd/system/0gda.service && \ rm -rf $HOME/0g-da-node

Источник:

5. DA Client Node (Клиентская нода DA)

Рекомендуемые аппаратные характеристики:

  • CPU: 2 ядра
  • Память: 8 ГБ RAM
  • Хранилище: 1 ТБ NVMe SSD
  • Сеть: 100 Мбит/с (скачивание/загрузка)

Шаги установки:

  1. Установите предварительные зависимости:
  2. sudo apt update && sudo apt upgrade -y && \ sudo apt autoremove

    Примечание: Если Docker уже установлен, пропустите шаг 2.

  3. Установите Docker:
  4. sudo apt install apt-transport-https ca-certificates curl software-properties-common && \ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg —dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \ echo «deb [arch=$(dpkg —print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable» | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update && \ sudo apt install docker-ce && \ sudo systemctl status docker

    Добавьте права:

    sudo groupadd docker && sudo usermod -aG docker $USER && exit
  5. Установите клиентскую ноду DA:
  6. cd $HOME && git clone https://github.com/0glabs/0g-da-client.git && cd 0g-da-client && \ docker build -t 0g-da-client -f combined.Dockerfile .
  7. Создайте файл окружения:
  8. cat > $HOME/0g-da-node/envfile.env <

    Замените YOUR_PRIVATE_KEY на ваш приватный ключ.

  9. Запустите ноду:
  10. docker run -d —env-file envfile.env —name 0g-da-client —restart always -v ./run:/runtime -p 51001:51001 0g-da-client combined
  11. Просмотрите логи:
  12. docker logs 0g-da-client -fn 100

Удаление узла:

docker stop 0g-da-client && \ docker rm 0g-da-client && \ rm -rf $HOME/0g-da-client

Источник:

6. DA Retriever Node (Нода извлечения DA)

Рекомендуемые аппаратные характеристики:

  • CPU: 2 ядра
  • Память: 8 ГБ RAM
  • Хранилище: Не указано, рекомендуется 100 ГБ+
  • Сеть: 100 Мбит/с (скачивание/загрузка)

Шаги установки:

  1. Установите предварительные зависимости:
  2. sudo apt update && sudo apt upgrade -y && \ sudo apt autoremove && \ sudo apt install curl git wget htop tmux build-essential jq make gcc tar clang pkg-config libssl-dev ncdu protobuf-compiler -y

    Примечание: Если Rust уже установлен, пропустите шаг 2.

  3. Установите Rust:
  4. cd $HOME && curl —proto ‘=https’ —tlsv1.2 -sSf https://sh.rustup.rs | sh -s — -y && \ source $HOME/.cargo/env
  5. Установите ноду извлечения DA:
  6. cd $HOME && git clone https://github.com/0glabs/0g-da-retriever.git && cd 0g-da-retriever && \ cargo build —release
  7. Обновите конфигурационный файл:
  8. Отредактируйте config.toml:

    nano $HOME/0g-da-retriever/run/config.toml

    Пример содержимого:

    log_level = «info» grpc_listen_address = «0.0.0.0:34005» eth_rpc_endpoint = «https://evmrpc-testnet.0g.ai»

    Сохраните и выйдите (Ctrl+O, Enter, Ctrl+X).

  9. Создайте сервисный файл:
  10. sudo tee /etc/systemd/system/0gdar.service > /dev/null <
  11. Запустите сервис:
  12. sudo systemctl daemon-reload && \ sudo systemctl enable 0gdar && \ sudo systemctl start 0gdar && \ sudo systemctl status 0gdar
  13. Просмотрите логи:
  14. journalctl -u 0gdar -f -o cat

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

Если возникла ошибка с protoc:

protoc —version sudo apt-get remove -y protobuf-compiler && \ wget https://github.com/protocolbuffers/protobuf/releases/download/v30.0-rc1/protoc-30.0-rc-1-linux-x86_64.zip && \ unzip protoc-30.0-rc-1-linux-x86_64.zip -d /usr/local/ && \ sudo chmod +x /usr/local/bin/protoc

Удаление узла:

sudo systemctl stop 0gdar && \ sudo systemctl disable 0gdar && \ sudo rm /etc/systemd/system/0gdar.service && \ rm -rf $HOME/0g-da-retriever

Источник:

Заключение

Выше приведены полные инструкции для развертывания всех шести типов узлов 0G Labs.

 
wpSolution Live Chat

Привет, Ваше удовлетворение является нашим главным приоритетом...

Прокрутить вверх