HAQQ нода
Автор статьи Crypto time
Haqq — это масштабируемый, высокопроизводительный блокчейн Proof-of-Stake, полностью совместимый и взаимодействующий с Ethereum
Оригинальная инструкция находится на сайте
Подробный видео гайд по установке
Подробная статья описана в статье Бесплатный сервер для ноды
Нам потребуется сервер с следующими характеристиками:
Арендовать сервер можно на сайтах:
Настройка сервера
sudo apt update && sudo apt upgrade -y
Устанавливаем дополнительные пакеты
sudo apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y
Устанавливаем go и проверяем версию
ver="1.18.2" && \ 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 https://github.com/haqq-network/haqq.git cd haqq make install chmod +x /root/go/bin/haqqd && sudo mv /root/go/bin/haqqd /usr/local/bin/haqqd cd $HOME
CHAIN оставляем без изменений, в остальные вписываем свои данные
MONIKER="your_name" CHAIN="haqq_53211-1" WALLET_NAME="your_name"
echo 'export MONIKER='${MONIKER} >> $HOME/.bash_profile echo 'export CHAIN='${CHAIN} >> $HOME/.bash_profile echo 'export WALLET_NAME='${WALLET_NAME} >> $HOME/.bash_profile source $HOME/.bash_profile
Установка
haqqd init $MONIKER --chain-id $CHAIN
haqqd config chain-id $CHAIN
Скачиваем файл генезис и проверяем его
curl -OL https://storage.googleapis.com/haqq-testedge-snapshots/genesis.json mv genesis.json $HOME/.haqqd/config/genesis.json haqqd validate-genesis
Сбрасываем состояние валидатора
haqqd tendermint unsafe-reset-all --home $HOME/.haqqd
curl -OL https://raw.githubusercontent.com/haqq-network/testnets/main/TestEdge/state_sync.sh chmod +x state_sync.sh ./state_sync.sh
pruning="custom" && \ pruning_keep_recent="100" && \ pruning_keep_every="0" && \ pruning_interval="50" && \ sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.haqqd/config/app.toml && \ sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.haqqd/config/app.toml && \ sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.haqqd/config/app.toml && \ sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.haqqd/config/app.toml
indexer="null" && \ sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.haqqd/config/config.toml
sudo tee /etc/systemd/system/haqqd.service > /dev/null <<EOF [Unit] Description=haqqd After=network-online.target
[Service] User=$USER ExecStart=$(which haqqd) start Restart=on-failure RestartSec=3 LimitNOFILE=65535
Запуск
sudo systemctl daemon-reload && \ sudo systemctl enable haqqd && \ sudo systemctl restart haqqd
Смотрим логи и ждем когда нода начнет синхронизироваться
sudo journalctl -u haqqd -f -o cat
Когда "catching_up": false то нода синхронизирована. Если нода долго не подключается к пирам то просим поделиться пирами или адресбуком в дискорде или тематических телеграм каналах.
curl localhost:26657/status
После синхронизации создаем кошелек
Не забываем сохранить мнемоник фразу
haqqd keys add $WALLET_NAME
Если кошелек уже есть то восстанавливаем с помощью мнемоник фразы
haqqd keys add $WALLET_NAME --recover
Добавляем переменную с адресом кошелька
WALLET_ADDRESS=$(haqqd keys show $WALLET_NAME -a)
Добавляем переменную в баш профиль
echo 'export WALLET_ADDRESS='${WALLET_ADDRESS} >> $HOME/.bash_profile source $HOME/.bash_profile
Теперь нам необходимо получить средства на кошелек. Для этого переходим по ссылке и создаем или подключаем кошелёк метамаск, после чего авторизуемся через гитхаб и запрашиваем токены на баланс кошелька
haqqd debug addr адрес_кошелька_haqq
В выводе нам нужен адрес (EIP-55) на него переводим средства с метамаска
После запроса проверяем баланс
haqqd query bank balances $WALLET_ADDRESS
Если средства успешно поступили, то создаем валидатора
Сумму указывайте свою, сколько хотите делегировать с кошелька, указывайте чуть меньше что бы хватило на комиссию
haqqd tx staking create-validator \ --amount=980000000000000000aISLM \ --pubkey=$(haqqd tendermint show-validator) \ --moniker=$MONIKER \ --chain-id=haqq_53211-1 \ --commission-rate="0.10" \ --commission-max-rate="0.20" \ --commission-max-change-rate="0.01" \ --min-self-delegation="1000000" \ --gas="auto" \ --from=$WALLET_NAME \ --node https://rpc.tm.testedge.haqq.network:443
Задаем переменную с адресом валидатора
VALOPER=$(haqqd keys show $WALLET_ADDRESS --bech val -a)
echo 'export VALOPER='${VALOPER} >> $HOME/.bash_profile source $HOME/.bash_profile
haqqd query staking validator $VALOPER
Делегация средств с кошелька на валидатора
haqqd tx staking delegate $VALOPER 1000000aISLM --from $WALLET_NAME --chain-id $CHAIN
Если вдруг ваша нода попала в тюрьму, то выход
haqqd tx slashing unjail --from $WALLET_NAME --chain-id $CHAIN
haqqd tx distribution withdraw-all-rewards --from $WALLET_NAME --fees=000aISLM --chain-id $CHAIN
haqqd query staking validators --limit 1000 -o json | jq -r '.validators[] | select(.status=="BOND_STATUS_BONDED") | [.operator_address, .status, (.tokens|tonumber / pow(10; 6)), .description.moniker] | @csv' | column -t -s"," | sort -k3 -n -r | nl