October 26, 2022

Устнаовка ноды Lambda lambdatest_92001-2

После подключения к серверу, через терминал, обновляем его:

sudo apt-get update && sudo apt upgrade -y 

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

sudo apt install make clang pkg-config libssl-dev build-essential git gcc chrony curl jq ncdu bsdmainutils htop net-tools lsof fail2ban wget -y

Устанавливаем GO версии 1.18.5 и после установки проверяем версию:

ver="1.18.5"
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
go version

Скачиваем и устанавливаем бинарник:

cd $HOME
git clone https://github.com/LambdaIM/lambdavm.git 
cd lambdavm 
make build 
cd build
chmod +x /root/lambdavm/build/lambdavm && sudo mv /root/lambdavm/build/lambdavm /usr/local/bin/lambdavm

Проверяем версию:

lambdavm version

Вывод:

1.0.0

Задаем переменные для нашего удобства (LMB_CHAIN оставляем без изменений, в остальные переменные вписываем свои значения):

LMB_CHAIN="lambdatest_92001-2"
LMB_MONIKER="YOR_MONIKER" 
LMB_WALLET="YOUR_WALLET_NAME"

Добавляем переменные в баш профиль

echo 'export LMB_CHAIN='${LMB_CHAIN} >> $HOME/.bash_profile
echo 'export LMB_MONIKER='${LMB_MONIKER} >> $HOME/.bash_profile
echo 'export LMB_WALLET='${LMB_WALLET} >> $HOME/.bash_profile
source $HOME/.bash_profile

Инициализируем ноду:

lambdavm init $LMB_MONIKER --chain-id $LMB_CHAIN

Прописывапем в конфиг имя сети и вывод сохранения кошельков

lambdavm config chain-id $LMB_CHAIN 
lambdavm config keyring-backend os 

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

wget https://raw.githubusercontent.com/LambdaIM/testnets/main/lambdatest_92001-2/genesis.json
mv genesis.json ~/.lambdavm/config/

Проверяем хэш гинезиса:

jq -S -c -M '' ~/.lambdavm/config/genesis.json | shasum -a 256

Вывод:

a8ae88fc3a9d28926ec2c8fb4f191e3a38d5a61c51699de5601e581ec472b290

Задаем и прописываем сиды и пиры:

seeds="ef150ce05782b05bd58ffc90a70d777d96482909@18.143.13.243:26656"
peers="ef150ce05782b05bd58ffc90a70d777d96482909@18.143.13.243:26656"
sed -i.bak -e "s/^seeds *=.*/seeds = \"$seeds\"/; s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" ~/.lambdavm/config/config.toml

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

sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.001ulamb\"/;" ~/.lambdavm/config/app.toml

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

pruning="custom"
pruning_keep_recent="100"
pruning_keep_every="0"
pruning_interval="10"

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

Создаем сервис:

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

[Service]
User=$USER
ExecStart=$(which lambdavm) start
Restart=always
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
lambdavm tendermint unsafe-reset-all --home $HOME/.lambdavm

Запускаем сервис и смотрим логи:

sudo systemctl daemon-reload
sudo systemctl enable lambdavm
sudo systemctl start lambdavm
journalctl -f -u lambdavm

Либо смотрим статус и ждем пока синхронизируется

lambdavm  status 2>&1 | jq .SyncInfo
После того как увидите "catching_up": false нода синхронизировалась

Создаем кошелек !!! Не забываем сохранить мнемоник !!! так же попросит ввести пароль для доступа к кошельку СОХРАНЯЕМ или ЗАПОМИНАЕМ(Если кошелек уже есть и нужно просто восстановить то этой командой lambdavm keys add $LMB_WALLET --recover и вводим мнемоник)

lambdavm keys add $LMB_WALLET

Добавляем адрес кошелька в переменную:

LMB_ADDR=$(lambdavm keys show $LMB_WALLET -a)

Добавляем переменную в баш профиль

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

Проверка баланса

lambdavm query bank balances $LMB_ADDR

После синхронизации создаем валидатор.

На кошельке Metamask с которого будете делегировать должны быть средства. Тестовые монеты получаем в Discord используя команду: /faucet

Делегация осуществляется через эксплоре: https://app.lambda.top/staking

lambdavm tx staking create-validator \
--amount=1000000000000000000ulamb \
--pubkey=$(lambdavm tendermint show-validator) \
--moniker=$LMB_MONIKER \
--website="" \
--identity="" \
--chain-id=$LMB_CHAIN \
--commission-rate="0.05" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1000000" \
--gas="300000" \
--gas-prices="0.025ulamb" \
--from=$LMB_WALLET
--broadcast-mode block

Записываем адрес валидатора в переменную:

LMB_VALOPER=$(lambdavm keys show $LMB_WALLET --bech val -a)

Добавляем переменную в баш профиль:

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

Проверяем статус валидатора:

lambdavm query staking validator $LMB_VALOPER

Теперь как делегировать средства на валидатор:(1000000ulamb = 1 Монета):

lambdavm tx staking delegate $LMB_VALOPER 1000000ulamb \
--from=$LMB_WALLET \
--chain-id=$LMB_CHAIN \
--fees=200ulamb

Собрать комиссионные + реварды

lambdavm tx distribution withdraw-rewards $LMB_VALOPER \
--from=$LMB_WALLET \
--chain-id=$LMB_CHAIN \
--commission -y

Выход из тюрьмы:

lambdavm tx slashing unjail \
--from $LMB_WALLET \
--chain-id $LMB_CHAIN \
--fees=200ulamb

Удалить ноду:

sudo systemctl stop lambdavm && \
sudo systemctl disable lambdavm && \
rm /etc/systemd/system/lambdavm.service && \
sudo systemctl daemon-reload && \
cd $HOME && \
rm -rf .lambdavm lambdavm && \
rm -rf $(which lambdavm)

Большое спасибо, за внимание и уделенное время

Наш телеграмм канал по нодам — https://t.me/mmsnodes
Наш телеграмм чат по нодам - https://t.me/mmsnodeschat
Наш телеграмм канал по экосистеме Cosmos - https://t.me/cosmochannel_mms

С уважением, MMS_Team