Установка ноды Source Protocol
Source Protocol — это комплексный набор технологий блокчейна для частных лиц, предприятий и разработчиков, позволяющий легко использовать, интегрировать и создавать приложения Web 3.0. В дополнение к основным продуктам Source, которые включают в себя высокоэффективный блокчейн 1 уровня для безопасной и масштабируемой разработки приложений и полный набор DeFi.
Source Protocol создан с помощью Cosmos SDK, хорошо нам знакомого. Поехали.
Требования к серверу:
6GB RAM, 200GB_SSD of disk space, 4Cores
Как всегда обновляем наш сервер
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.4" && \
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
Устанавливаем Igninte CLI и компилируем бинарник (на запрос во время компиляции отвечаем y)
sudo curl https://get.ignite.com/cli! | sudo bash git clone -b testnet https://github.com/Source-Protocol-Cosmos/source.git cd ~/source ignite chain build -y cd $HOME
Задаем переменные (CHAIN оставляем без изменений, в остальные вписываем свои данные)
MONIKER="your_name"
CHAIN="sourcechain-testnet"
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
cd ~/ sourced init $MONIKER --chain-id $CHAIN
Создаем кошелек (обязательно сохраняем мнемонику)
sourced keys add $WALLET_NAME
curl -s https://raw.githubusercontent.com/Source-Protocol-Cosmos/testnets/master/sourcechain-testnet/genesis.json > ~/.source/config/genesis.json
PEERS=f94bb95336ac2bf6081fd87498d16383fd4a8f70@195.3.220.96:60756,2d4bf9cf64c386dbcf68b69168ec33717c90bd3c@94.130.212.252:10256,3787aeaa6585ec6ff9c09746fdb28630f0d659cb@3.81.88.66:26656,994f41db482ed3d9b675f5f403dee38ffa006aaf@45.84.138.70:26656,6ca675f9d949d5c9afc8849adf7b39bc7fccf74f@164.92.98.17:26656,bdf9b6ad38b803358e7fd99f35b14795ebcd8144@190.2.155.67:29656,49b025c08193c8846956423ac80504b0bab2b777@185.182.187.239:26656,76894391ff3fb5937654758b12d1eecd69eb943e@161.97.151.64:26656,cd6104da919fc8b0995ee5c67c8dce9ae98256bd@5.161.106.96:26656,86216a2e88322ca534fedaa91898272cc11d3cc9@173.249.23.196:28656,a53b45d6b4ae5cb564570e09e7dd16aa0c345077@45.147.199.199:26656,73e143877bcd789e131a131254c5b14ec2477ddb@62.171.131.225:21656,e62bd6468bf788c42ea9148ef53d7c15ab04ad55@161.97.153.196:26656,246686b1e8c06ead485377c03568cb9f1db3917d@176.9.19.48:26686,c27d26527c2f8a097c5a99800809d15338ac3bdb@95.217.207.236:20056,866c35beaae2aafaebc328035e2deb9290da0b7a@38.242.241.111:26656,06885ec73c228de552c4120ab50c78152b20fc9d@57.128.36.144:26656,f217086538c092121254d3bfeb3747d7a7b52916@185.144.99.89:26656,9da8183f07a7b33dd60fc01156ae8136041cef30@45.10.154.138:26656,aafb3c092c1d05a32228b41d050bea1133d1e7b3@38.242.241.69:26656 sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.source/config/config.toml
Задаем минимальное значение газа
GAS="0.0025usource" sed -i -e "/minimum-gas-prices =/ s/= .*/= \"$GAS\"/" $HOME/.source/config/app.toml
pruning="custom" pruning_keep_recent="100" pruning_keep_every="0" pruning_interval="10" sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.source/config/app.toml sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.source/config/app.toml sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.source/config/app.toml sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.source/config/app.toml
sudo tee <<EOF >/dev/null /etc/systemd/system/sourced.service [Unit] Description=Source Daemon After=network-online.target [Service] User=$USER ExecStart=$(which sourced) start Restart=always RestartSec=10 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
Запускаем сервис и смотрим логи
sudo systemctl daemon-reload sudo systemctl enable sourced sudo systemctl start sourced && journalctl -u sourced -f
Проверяем статус синхронизации (смотрим поле catching_up)
curl localhost:26657/status
Добавляем в переменную адрес кошелька
WALLET_ADDRESS=$(sourced keys show $WALLET_NAME -a) echo 'export WALLET_ADDRESS='${WALLET_ADDRESS} >> $HOME/.bash_profile source $HOME/.bash_profile
Запрашиваем монеты в дискорде Source в канале #faucet командой
$request адрес_кошелька
После синхронизации и получения монет создаем валидатора
sourced tx staking create-validator \ --amount 1000000000usource \ --commission-max-change-rate "0.1" \ --commission-max-rate "0.20" \ --commission-rate "0.1" \ --min-self-delegation "1" \ --details "" \ --pubkey=$(sourced tendermint show-validator) \ --moniker $MONIKER \ --chain-id $CHAIN \ --gas-prices 0.025usource \ --from $WALLET_NAME
Задаем переменную с адресом валидатора и добавляем в профиль баш
VALOPER=$(sourced keys show $WALLET_ADDRESS --bech val -a)
echo 'export VALOPER='${VALOPER} >> $HOME/.bash_profile
source $HOME/.bash_profile
Делегация средств с кошелька на валидатора (сумму вводите свою)
sourced tx staking delegate $VALOPER 1000000usource --from $WALLET_NAME --chain-id $CHAIN
Ну и если вдруг ваша нода попала в тюрьму, то выход
sourced tx slashing unjail --from $WALLET_NAME --chain-id $CHAIN
Большое спасибо, за внимание и уделенное время
Наш телеграмм канал по нодам — https://t.me/mmsnodes
Наш телеграмм чат по нодам - https://t.me/mmsnodeschat
Наш телеграмм канал по экосистеме Cosmos - https://t.me/cosmochannel_mms