0G Labs. Устанавливаем ноду
CryptoFortochka — гайды, ноды, новости, тестнеты
0G — это модульная цепочка искусственного интеллекта с масштабируемым программируемым уровнем доступности данных (DA), адаптированным для dapps с искусственным интеллектом. Его модульная технология обеспечивает беспрепятственное взаимодействие между цепочками, обеспечивая безопасность, устраняя фрагментацию и максимизируя возможности подключения
- Инвестировали: $35 000 000
- Инвесторы: Hack VC, Delphi Digital, Animoca Brands, OKX и другие
- Характеристики: 4CPU/8RAM/500SSD — рекомендованные
- Арендовать сервер: XorekCloud, AEZA , Hetzner , PqHosting , VDsina, Contabo
- Надежные прокси и антик: Proxyline / Travchisproxies / Dolphin
- Чат с поддержкой: https://t.me/fortochat
- Ubuntu: 20.04
Проект появился на радаре еще около 1 месяца назад, после инвестиции в $35M от тир1 фондов, а уже сегодня они запускают оплачиваемый тестнет на Galxe — первая неделя. Еще можно поставить ноду, который будет также оплачиваемая, об этом активно пишут модеры в дискорде
Расписал для вас понятный гайд с установкой ноды, ставиться просто, сервак советую брать (минимум как требуется в рекомендации), чтобы избежать дальнейшие траблы с синхронизацией.
На XorekCloud арендовать подходящий сервер за 1399 рублей в месяц
Не забываем ежедневно запрашивать токены с крана и делегировать
Советую начать проявить активность в дискорде, там сейчас маленькая конкуренция, пока еще больше людей не набежало
Что делать?
- Устанавливаем MobaXterm
- Подключаемся на арендованный сервер через root
- Выполняем команды по списку
- Обновляем и устанавливаем необходимые пакеты
sudo apt update
sudo apt install curl git jq build-essential gcc unzip wget lz4 -y
- Устанавливаем GO
cd $HOME && \
ver="1.21.3" && \
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" && \
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile && \
source $HOME/.bash_profile && \
go version
- Ставим бинарик
git clone -b v0.1.0 https://github.com/0glabs/0g-chain.git
./0g-chain/networks/testnet/install.sh
source .profile
- Настраиваем переменные
echo 'export MONIKER="type_your_moniker_nodebrand"' >> ~/.bash_profile
echo 'export CHAIN_ID="zgtendermint_16600-1"' >> ~/.bash_profile
echo 'export WALLET_NAME="wallet"' >> ~/.bash_profile
echo 'export RPC_PORT="26657"' >> ~/.bash_profile
source $HOME/.bash_profile
- Инициализируем ноду
cd $HOME
0gchaind config chain-id $CHAIN_ID
0gchaind init $MONIKER --chain-id $CHAIN_ID
0gchaind config node tcp://localhost:$RPC_PORT
0gchaind config keyring-backend os
- Устанавливаем релиз
wget -P ~/.0gchain/config https://github.com/0glabs/0g-chain/releases/download/v0.1.0/genesis.json
- Добавляем сиды и пиры в config.toml
PEERS="" && \
SEEDS="c4d619f6088cb0b24b4ab43a0510bf9251ab5d7f@54.241.167.190:26656,44d11d4ba92a01b520923f51632d2450984d5886@54.176.175.48:26656,f2693dd86766b5bf8fd6ab87e2e970d564d20aff@54.193.250.204:26656,f878d40c538c8c23653a5b70f615f8dccec6fb9f@54.215.187.94:26656" && \
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.0gchain/config/config.toml
- Ставим конфиг
EXTERNAL_IP=$(wget -qO- eth0.me) \
PROXY_APP_PORT=26658 \
P2P_PORT=26656 \
PPROF_PORT=6060 \
API_PORT=1317 \
GRPC_PORT=9090 \
GRPC_WEB_PORT=9091
- Ставим порт, пуринг, газ прайс
sed -i \
-e "s/\(proxy_app = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$PROXY_APP_PORT\"/" \
-e "s/\(laddr = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$RPC_PORT\"/" \
-e "s/\(pprof_laddr = \"\)\([^:]*\):\([0-9]*\).*/\1localhost:$PPROF_PORT\"/" \
-e "/\[p2p\]/,/^\[/{s/\(laddr = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$P2P_PORT\"/}" \
-e "/\[p2p\]/,/^\[/{s/\(external_address = \"\)\([^:]*\):\([0-9]*\).*/\1${EXTERNAL_IP}:$P2P_PORT\"/; t; s/\(external_address = \"\).*/\1${EXTERNAL_IP}:$P2P_PORT\"/}" \
$HOME/.0gchain/config/config.toml
sed -i \
-e "/\[api\]/,/^\[/{s/\(address = \"tcp:\/\/\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$API_PORT\4/}" \
-e "/\[grpc\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$GRPC_PORT\4/}" \
-e "/\[grpc-web\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$GRPC_WEB_PORT\4/}" $HOME/.0gchain/config/app.toml
sed -i.bak -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.0gchain/config/app.toml
sed -i.bak -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.0gchain/config/app.toml
sed -i.bak -e "s/^pruning-interval *=.*/pruning-interval = \"10\"/" $HOME/.0gchain/config/app.toml
sed -i "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0ua0gi\"/" $HOME/.0gchain/config/app.toml
sed -i "s/^indexer *=.*/indexer = \"kv\"/" $HOME/.0gchain/config/config.toml
- Создаем сервисный файл
sudo tee /etc/systemd/system/ogd.service > /dev/null <<EOF
[Unit]
Description=OG Node
After=network.target
[Service]
User=$USER
Type=simple
ExecStart=$(which 0gchaind) start --home $HOME/.0gchain
Restart=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
- Запускам ноду
sudo systemctl daemon-reload && \
sudo systemctl enable ogd && \
sudo systemctl restart ogd && sudo journalctl -u ogd -f -o cat
- Ждём немного и побегут хейты (чтобы выйти из логов, прожимаем Cntr+C)
Если у вас ошибки, при проверки логов, то жмём Cntrc+C, и дальше продолжаем по гайду
- Устанавливаем Spanshot, addrbook, update peers
curl -Ls https://snapshots.liveraven.net/snapshots/testnet/zero-gravity/addrbook.json > $HOME/.0gchain/config/addrbook.json
PEERS=$(curl -s --max-time 3 --retry 2 --retry-connrefused "https://snapshots.liveraven.net/snapshots/testnet/zero-gravity/peers.txt")
if [ -z "$PEERS" ]; then
echo "No peers were retrieved from the URL."
else
echo -e "\nPEERS: "$PEERS""
sed -i "s/^persistent_peers *=.*/persistent_peers = "$PEERS"/" "$HOME/.0gchain/config/config.toml"
echo -e "\nConfiguration file updated successfully.\n"
fi
sudo systemctl stop ogd
cp $HOME/.0gchain/data/priv_validator_state.json $HOME/.0gchain/priv_validator_state.json.backup
rm -rf $HOME/.0gchain/data
curl -L http://snapshots.liveraven.net/snapshots/testnet/zero-gravity/zgtendermint_16600-1_latest.tar.lz4 | tar -Ilz4 -xf - -C $HOME/.0gchain
mv $HOME/.0gchain/priv_validator_state.json.backup $HOME/.0gchain/data/priv_validator_state.json
sudo systemctl restart ogd && sudo journalctl -u ogd -f -o cat
Ждём немного времени и побегут хейты
- Проверяем командой, если пишет false — значит нода синхронизировалась, можно продолжать создание валидатора
- Если статус true — значит еще рано (Но, можно установить снепшот
- В логах мы можем увидеть количество хейт и сравнить с Explorer
- Блоки должны быстрее дойти, в статуcе будет писаться false
Создаем валидатора
- Создаем кошелек для нашего валидатора
0gchaind keys add $WALLET_NAME --eth
- Если уже ранее создали кошелек, то импортируйте по сидке с помощью этой команды
0gchaind keys add --recover $WALLET_NAME --eth
- Вставляем пароль (Не вписывать, а заранее скопируйте пароль и вставьте его в белый квадратик + Enter)
- Нам выдаст наш кошелек с сидкой — сохраняем в надежное место
- Запрашиваем Private key от нашего EVM адреса
0gchaind keys unsafe-export-eth-key $WALLET_NAME
- Если вы подтвердили адрес, как показано в выводе выше, скопируйте его и импортируйте в метамаск
- Отправляемся к крану и запрашиваем тестовые токены
- Проверяем баланс в терминале
0gchaind q bank balances $(0gchaind keys show $WALLET_NAME -a)
Кран дает вам 1000000ua0gi . Чтобы валидатор присоединился к активному набору нужно минимум 10000000ua0gi (в 10 раз больше)
- Создаем валидатора
- Можно заменить на свои значение moniker, details, website
0gchaind tx staking create-validator \
--amount=200000ua0gi \
--pubkey=$(0gchaind tendermint show-validator) \
--moniker="$MONIKER" \
--chain-id=zgtendermint_16600-1 \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--details="CryptoFortochka" \
--min-self-delegation="1" \
--from=$WALLET_NAME \
--gas=auto \
--gas-adjustment=1.4
- Копируем valoperadres
- Делегируем токены самому себе
0gchaind q staking validator $(0gchaind keys show $WALLET_NAME --bech val -a)
- Делегируем другому валидатору
0gchaind tx staking delegate <validator address> --from <wallet> <amount>ua0gi --gas=auto --gas-adjustment=1.4 -y
- Проверяем транзакции в Explorer
- Делегируем в наш пул — CryptoFortochka (500000ua0gi можете заменить на любую сумму)
0gchaind tx staking delegate 0gvaloper1kj97fy0n00g5vmenp0cla3hjehgu2usucdj9nr --from $WALLET_NAME 500000ua0gi --gas=auto --gas-adjustment=1.4 -y
Буду благодарен, если вы будете делегировать свои токены в наш пул. Все обновление буду в моем телеграм канале Crypto Fortochka
Дополнительные команды
- Посмотреть логи
sudo journalctl -u ogd -f -o cat
- Проверить статус синхронизации
0gchaind status | jq .sync_info
- Рестарт
sudo systemctl restart ogd
- Удалить ноду
sudo systemctl stop ogd
sudo systemctl disable ogd
sudo rm /etc/systemd/system/ogd.service
rm -rf $HOME/.0gchain $HOME/0g-chain
- Заполняем форму на валидатора (всего 125 мест)