December 23, 2022

УСТАНОВКА HUMANS

Тестовая сеть Humans — первая в мире технология, первая тестовая сеть блокчейна, способная выполнять ИИ в контексте Web3. Будущее, к которому мы движемся, будет децентрализованным, и человеческий ИИ стремится наполнять его по одному ИИ за раз.

Humans.ai взяла на себя задачу изменить лицо искусственного интеллекта, поставив человека за каждым ИИ и предоставив каждому возможность доступа, мониторинга и управления ИИ будущего. Для достижения своей цели Humans.ai решила создать собственную сеть блокчейнов, предназначенную для работы в качестве многогранной экосистемы, которая будет поддерживать создание искусственного интеллекта и управление им.

обновляем сервер:

sudo apt update && sudo apt upgrade -y

устанавливаем необходимые утилиты:

sudo apt install curl build-essential git wget jq make gcc tmux chrony -y

указываем имя вашего валидатора, которое будет видно в проводнике:

NODENAME=<MONIKER>

сохраняем и импортируем переменные :

echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
if [ ! $WALLET ]; then
	echo "export WALLET=wallet" >> $HOME/.bash_profile
fi
echo "export HUMANS_CHAIN_ID=testnet-1" >> $HOME/.bash_profile
source $HOME/.bash_profile

устанавливаем GO:

if ! [ -x "$(command -v go)" ]; then
  ver="1.18.2"
  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"
  echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile
  source ~/.bash_profile
fi

клонируем и собираем бинарный файл:

cd $HOME
git clone https://github.com/humansdotai/humans
cd humans
git checkout v1.0.0
go build -o humansd cmd/humansd/main.go
sudo cp humansd /usr/local/bin/humansd

инициализируем приложение:

cd~

humansd init $NODENAME --chain-id $HUMANS_CHAIN_ID

скачиваем генезис:

curl -s https://rpc-testnet.humans.zone/genesis | jq -r .result.genesis > genesis.json
cp genesis.json $HOME/.humans/config/genesis.json

добавляем пиры:

SEEDS=""
PEERS="[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.humans/config/config.toml

выставляем настройки timeout:

CONFIG_TOML="$HOME/.humans/config/config.toml"
 sed -i 's/timeout_propose =.*/timeout_propose = "100ms"/g' $CONFIG_TOML
 sed -i 's/timeout_propose_delta =.*/timeout_propose_delta = "500ms"/g' $CONFIG_TOML
 sed -i 's/timeout_prevote =.*/timeout_prevote = "100ms"/g' $CONFIG_TOML
 sed -i 's/timeout_prevote_delta =.*/timeout_prevote_delta = "500ms"/g' $CONFIG_TOML
 sed -i 's/timeout_precommit =.*/timeout_precommit = "100ms"/g' $CONFIG_TOML
 sed -i 's/timeout_precommit_delta =.*/timeout_precommit_delta = "500ms"/g' $CONFIG_TOML
 sed -i 's/timeout_commit =.*/timeout_commit = "1s"/g' $CONFIG_TOML
 sed -i 's/skip_timeout_commit =.*/skip_timeout_commit = false/g' $CONFIG_TOML

настраиваем прунинг:

pruning="custom"
pruning_keep_recent="100"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.humans/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.humans/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.humans/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.humans/config/app.toml

устанавливаем минимальную цену газа:

sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.025uheart\"/" $HOME/.humans/config/app.toml

включаем prometheus:

sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.humans/config/config.toml

если нужно отключаем индексацию (indexer = "null"):

cd ~
nano $HOME/.humans/config/config.toml 
ctrl O, enter, ctrrl X

делаем сброс данных цепи:

humansd tendermint unsafe-reset-all --home $HOME/.humans

создаем сервисный файл:

sudo tee /etc/systemd/system/humansd.service > /dev/null <<EOF
[Unit]
Description=humans
After=network-online.target

[Service]
User=$USER
ExecStart=/usr/local/bin/humansd start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

запускаем сервисный файл:

sudo systemctl daemon-reload
sudo systemctl enable humansd
sudo systemctl restart humansd && sudo journalctl -u humansd -f -o cat

после завершения синхронизации загружаем переменные в систему:

source $HOME/.bash_profile

создаем кошелек:

humansd keys add $WALLET

сохраняем информацию , вводим команды по очереди , в 1 и 2 вводим свой пароль:

HUMANS_WALLET_ADDRESS=$(humansd keys show $WALLET -a)

HUMANS_VALOPER_ADDRESS=$(humansd keys show $WALLET --bech val -a)

echo 'export HUMANS_WALLET_ADDRESS='${HUMANS_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export HUMANS_VALOPER_ADDRESS='${HUMANS_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile

создаем валидатора:

humansd tx staking create-validator \
  --amount 10000000uheart \
  --from $WALLET \
  --commission-max-change-rate "0.1" \
  --commission-max-rate "0.2" \
  --commission-rate "0.05" \
  --min-self-delegation "1" \
  --pubkey  $(humansd tendermint show-validator) \
  --moniker $NODENAME \
  --chain-id $HUMANS_CHAIN_ID \
  --fees=5500uheart