Установите предварительные зависимости:
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.
Установите Golang:
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
Установите Rust:
cd $HOME && curl —proto ‘=https’ —tlsv1.2 -sSf https://sh.rustup.rs | sh -s — -y && \
source $HOME/.cargo/env
Установите узел хранения:
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
Настройте RPC (выполните на сервере с валидатором):
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.
Установите переменные окружения:
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
Скачайте конфигурационный файл:
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
Экспортируйте приватный ключ:
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>
на ваш ключ.
Создайте сервисный файл:
sudo tee /etc/systemd/system/zgs.service > /dev/null <
Запустите сервис:
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 Мбит/с (скачивание/загрузка)
Шаги установки:
Установите предварительные зависимости:
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.
Установите Golang:
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
Установите Rust:
cd $HOME && curl —proto ‘=https’ —tlsv1.2 -sSf https://sh.rustup.rs | sh -s — -y && \
source $HOME/.cargo/env
Установите узел KV:
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
Настройте параметры:
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
Создайте сервисный файл:
sudo tee /etc/systemd/system/0gkv.service > /dev/null <
Запустите сервис:
sudo systemctl daemon-reload && \
sudo systemctl enable 0gkv && \
sudo systemctl start 0gkv && \
sudo systemctl status 0gkv
Просмотрите логи:
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 Мбит/с (скачивание/загрузка)
Шаги установки:
Установите предварительные зависимости:
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.
Установите Golang:
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
Установите Rust:
cd $HOME && curl —proto ‘=https’ —tlsv1.2 -sSf https://sh.rustup.rs | sh -s — -y && \
source $HOME/.cargo/env
Установите DA-узел:
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
Сгенерируйте BLS приватный ключ:
cargo run —bin key-gen
Сохраните сгенерированный ключ.
Создайте конфигурационный файл:
cat > $HOME/0g-da-node/config.toml <
Замените:
EDIT-VPS-ID:34000
на IP вашего VPS и порт.
Приватные ключи на ваши значения.
Создайте сервисный файл:
sudo tee /etc/systemd/system/0gda.service > /dev/null <
Запустите сервис:
sudo systemctl daemon-reload && \
sudo systemctl enable 0gda && \
sudo systemctl start 0gda
Просмотрите логи:
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 Мбит/с (скачивание/загрузка)
Шаги установки:
Установите предварительные зависимости:
sudo apt update && sudo apt upgrade -y && \
sudo apt autoremove
Примечание: Если Docker уже установлен, пропустите шаг 2.
Установите Docker:
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
Установите клиентскую ноду DA:
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 .
Создайте файл окружения:
cat > $HOME/0g-da-node/envfile.env <
Замените YOUR_PRIVATE_KEY
на ваш приватный ключ.
Запустите ноду:
docker run -d —env-file envfile.env —name 0g-da-client —restart always -v ./run:/runtime -p 51001:51001 0g-da-client combined
Просмотрите логи:
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 Мбит/с (скачивание/загрузка)
Шаги установки:
Установите предварительные зависимости:
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.
Установите Rust:
cd $HOME && curl —proto ‘=https’ —tlsv1.2 -sSf https://sh.rustup.rs | sh -s — -y && \
source $HOME/.cargo/env
Установите ноду извлечения DA:
cd $HOME && git clone https://github.com/0glabs/0g-da-retriever.git && cd 0g-da-retriever && \
cargo build —release
Обновите конфигурационный файл:
Отредактируйте 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).
Создайте сервисный файл:
sudo tee /etc/systemd/system/0gdar.service > /dev/null <
Запустите сервис:
sudo systemctl daemon-reload && \
sudo systemctl enable 0gdar && \
sudo systemctl start 0gdar && \
sudo systemctl status 0gdar
Просмотрите логи:
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.
Просмотры: 173
Похожее
Навигация по записям