Створення і запуск Validator Node
1. Налаштуйте залежності
sudo apt update && sudo apt upgrade -y
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential git make ncdu -y
2. Встановіть GOlang
ver="1.19.1" cd $HOME 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"
Додайте /usr/local/go/bin
до директорії $PATH
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile source $HOME/.bash_profile
go version
go version go1.19.1 linux/amd64
3. Розгорніть celestia-app
Наведена нижче команда створить бінарний файл з назвою celestia-appd
у папці $HOME/go/bin
, який буде використано пізніше для запуску вузла
cd $HOME rm -rf celestia-app git clone https://github.com/celestiaorg/celestia-app.git cd celestia-app/ APP_VERSION=v0.11.1 git checkout tags/$APP_VERSION -b $APP_VERSION make install
celestia-appd version
4. Встановіть P2P мережі
cd $HOME rm -rf networks git clone https://github.com/celestiaorg/networks.gitit
celestia-appd init "ім'я_вашої_ноди" --chain-id mocha
cp $HOME/networks/mocha/genesis.json $HOME/.celestia-app/config
SEEDS="some seeds" PEERS="some peers" sed -i -e 's|^seeds *=.*|seeds = "'$SEEDS'"|; s|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' $HOME/.celestia-app/config/config.toml sed -i -e "s/^seed_mode *=.*/seed_mode = \"$SEED_MODE\"/" $HOME/.celestia-app/config/config.toml
Примітка: ми можете знайти більше пірів тут
5. Налаштуйте видалення непотрібного і недоступного коду
Для зменшення використання дискового простору ми рекомендуємо налаштувати видалення за допомогою наведених нижче конфігурацій. За бажанням ви можете змінити їх на власні конфігурації видалення
PRUNING="custom" PRUNING_KEEP_RECENT="100" PRUNING_INTERVAL="10" sed -i -e "s/^pruning *=.*/pruning = \"$PRUNING\"/" $HOME/.celestia-app/config/app.toml sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \ \"$PRUNING_KEEP_RECENT\"/" $HOME/.celestia-app/config/app.toml sed -i -e "s/^pruning-interval *=.*/pruning-interval = \ \"$PRUNING_INTERVAL\"/" $HOME/.celestia-app/config/app.toml
6. Налаштуйте режим валідатора
sed -i.bak -e "s/^mode *=.*/mode = \"validator\"/" $HOME/.celestia-app/config/config.toml
7. Перезавантажте мережу
celestia-appd tendermint unsafe-reset-all --home $HOME/.celestia-app
За бажанням ви можете налаштувати швидку синхронізацію зі снепшоту.
Синхронізація з Genesis може зайняти багато часу залежно від вашого обладнання. Виконайте наступну команду, щоб прискорити цей процес
cd $HOME rm -rf ~/.celestia-app/data mkdir -p ~/.celestia-app/data SNAP_NAME=$(curl -s https://snaps.qubelabs.io/celestia/ | \ egrep -o ">mocha.*tar" | tr -d ">") wget -O - https://snaps.qubelabs.io/celestia/${SNAP_NAME} | tar xf - \ -C ~/.celestia-app/data/
8. Запустіть celestia-app
за допомогою SystemD
Створіть celestia-app
systemd файл
cd celestia-app
sudo tee <<EOF >/dev/null /etc/systemd/system/celestia-appd.service [Unit] Description=celestia-appd Cosmos daemon After=network-online.target [Service] User=$USER ExecStart=$HOME/go/bin/celestia-appd start Restart=on-failure RestartSec=3 LimitNOFILE=4096 [Install] WantedBy=multi-user.target EOF
Якщо файл був створений успішно, ви можете переглянути його зміст
cat /etc/systemd/system/celestia-appd.service
Активуйте і запустіть демон celestia-appd
sudo systemctl enable celestia-appd sudo systemctl start celestia-appd
sudo systemctl status celestia-appd
sudo journalctl -u celestia-appd.service -f
Перед тим як продовжити встановлення і запуск Validator Node, переконайтеся, що вузел синхронізувалася
curl -s localhost:26657/status | jq .result | jq .sync_info
9. Створіть гаманець
Створіть конфігураційний файл CLI
celestia-appd config keyring-backend test
celestia-appd keys add <ім'я_вашого_гаманця> --interactive
Обов'язково збережіть мнемоніку!
Виконайте таку команду, щоб перевірити свої гаманці
celestia-appd keys list
10. Поповніть гаманець
Щоб запросити фаусет на свій адрес. Для цього перейдіть в офіційний Дискорд Celestia, знайдіть канал #mocha-faucet
і виконайте там наступну команду
$request <CELESTIA-ADDRESS>
$request celestia18pdfl6hn268m5fp67jc7ywgk54j2yar7qsu5ge
Команда для перевірки балансу на гаманці
celestia-appd start celestia-appd query bank balances celestia1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
11. Делегуйте стейк вашому валідатору
Створіть змінну оточення для адреси
VALIDATOR_WALLET=<ім'я_адреси_вашого_валідатора>
Якщо ви хочете делегувати більше стейку будь-якому валідатору, в тому числі і своєму власному, вам знадобиться адреса celesvaloper
відповідного валідатора. Ви можете перевірити її за допомогою наступної команди
celestia-appd keys show $VALIDATOR_WALLET --bech val -a
Для делегування токенів валідатору celestiavaloper
виконайте наступну команду
celestia-appd tx staking delegate \ celestiavaloper1q3v5cugc8cdpud87u4zwy0a74uxkk6u4q4gx4p 1000000utia \ --from=$VALIDATOR_WALLET --chain-id=mocha
Замість celestiavaloperххххххххххххххххххххххххххххххххххххххх
вставте celestiavaloper
того валідатора, якому ви хочете делегувати токени
code: 0 codespace: "" data: "" gas_used: "0" gas_wanted: "0" height: "0" info: "" logs: [] raw_log: '[]' timestamp: "" tx: null txhash: <tx-hash>
12. Розгорніть celestia-node
Встановіть бінарний файл celestia-node
cd $HOME rm -rf celestia-node git clone https://github.com/celestiaorg/celestia-node.git cd celestia-node/ git checkout tags/v0.6.4 make build make install make cel-key
celestia version
Semantic version: v0.6.4 Commit: 747c9e593542dfb32a933c731a9cd74b1fab897f Build Date: Thu Dec 15 10:19:22 PM UTC 2022 System version: amd64/linux Golang version: go1.19.1
13. Ініціалізуйте та запустіть Bridge Node
celestia bridge init --core.ip <ip-address>
Список кінцевих точок RPC ви зможете знайти тут
Приклад можливого вигляду команди:
celestia bridge init --core.ip https://rpc-mocha.pops.one
Запустіть Bridge Node за допомгою System D
sudo tee <<EOF >/dev/null /etc/systemd/system/celestia-bridge.service [Unit] Description=celestia-bridge Cosmos daemon After=network-online.target [Service] User=$USER ExecStart=$HOME/go/bin/celestia bridge start --core.ip <ip-address> Restart=on-failure RestartSec=3 LimitNOFILE=4096 [Install] WantedBy=multi-user.target EOF
Не забудьте замінити <ip-address>
на кінцеву точку RPC і <port>
на 26657 (або інший, що належить валідатору, якого ви обрали)
cat /etc/systemd/system/celestia-bridge.service
Активуйте і запустіть демон Bridge Node
systemctl enable celestia-bridge systemctl start celestia-bridge && journalctl -u \ celestia-bridge.service -f
14. Налаштування QGB ключів
Цей крок допоможе вам підготуватися до розгортання Quantum Gravity Bridge.
--evm-address
: Цей флаг повинен містити0x
EVM адресу. Ви можете додати будь-яку Ethereum адресу. Також ви у вас буде можливість відреагувати цей флаг, якщо ви вирішите поміняти адресу.
Ви можете встановити обидва значення для вищевказаних флагів як змінні оточення
EVM_ADDRESS=<ваш_EVM_ADDRESS>
Не забудьте додати значення ваших адрес у вищезазначені змінні оточення перед їх налаштуванням.
14. Запустіть Validator Node
Тепер ви готові до запуску валідатора! Майте на увазі, що ці кроки необхідні ТІЛЬКИ в тому випадку, якщо ви хочете брати участь в консенсусі
Оберіть собі псевдонім
на власний розсуд! Це ім'я валідатора, яке буде відображатися на публічних дашбордах і в експлорері. VALIDATOR_WALLET
має збігатися з тим, що ви визначили раніше. Параметр --min-self-delegation=1000000
визначає кількість токенів, які самоделегуються з вашого гаманця валідатора
cd $HOME
MONIKER="ваш_псевдонім" VALIDATOR_WALLET="ім'я_адреси_вашого_валідатора" celestia-appd tx staking create-validator \ --amount=1000000utia \ --pubkey=$(celestia-appd tendermint show-validator) \ --moniker=$MONIKER \ --chain-id=mocha \ --commission-rate=0.1 \ --commission-max-rate=0.2 \ --commission-max-change-rate=0.01 \ --min-self-delegation=1000000 \ --from=$VALIDATOR_WALLET \ --evm-address=$EVM_ADDRESS \ --keyring-backend=test
Вам буде запропоновано підтвердити операцію
confirm transaction before signing and broadcasting [y/N]: y
Приклад виводу після виконання операції
code: 0 codespace: "" data: "" gas_used: "0" gas_wanted: "0" height: "0" info: "" logs: [] raw_log: '[]' timestamp: "" tx: null txhash: <tx-hash>
Тепер ви зможете побачити вашу Ноду Валідатора в провіднику