DWS
- Network Chain ID:
deweb-testnet-sirius
- Denom:
udws
- Cosmos explorer: 1 2
- Офф инструкция: https://docs.deweb.services/fullnode/validator-setup/
DWS (Decentralized Web Services) — это децентрализованная платформа управления облачной инфраструктурой. DWS позаботится о работоспособности всех децентрализованных сервисов и плавно восстановит любой сервис, который выйдет из строя, DWS будет контролировать расходование средств и уведомит вас в Slack/Telegram/Jami о любых необходимых средствах. Также DWS будет иметь удобную панель инструментов, показывающую все остатки, расходы и инциденты, связанные с используемой вами облачной инфраструктурой
🚀 Почему ДВС?
Мы пытаемся объединить под одной крышей такие децентрализованные технологии, как Akash, SIA, TON, Mysterium VPN, Sentinel и т. д., и предложить конечному пользователю понятный способ создания, управления и проверки облачной инфраструктуры
Никаких регистраций, никаких электронных писем, никаких смс, никаких доверенных третьих лиц. Вы контролируете свои личные ключи шифрования и владеете своими данными. Ни одна сторонняя компания или третье лицо не может получить доступ к вашим файлам или контролировать их, в отличие от традиционных поставщиков облачных хранилищ
Подготовка сервера
sudo apt update && sudo apt upgrade -y
Устанавливаем необходимые утилиты
sudo apt install curl build-essential git wget jq make gcc tmux nvme-cli -y
Устанавливаем Go ОДНОЙ КОМАНДОЙ
wget https://golang.org/dl/go1.18.1.linux-amd64.tar.gz; \ rm -rv /usr/local/go; \ tar -C /usr/local -xzf go1.18.1.linux-amd64.tar.gz && \ rm -v go1.18.1.linux-amd64.tar.gz && \ echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile && \ source ~/.bash_profile && \ go version
Установка ноды
ВАЖНО — в командах ниже все, что в <> меняем на свое значение и убираем сами <>
git clone https://github.com/deweb-services/deweb.git && cd deweb git checkout v0.3.1 make install dewebd version --long | head # "0.3.1" # commit: 05a3111414ae9b510672925166b727371b669246
Инициализируем ноду, чтобы создать необходимые файлы конфигурации
dewebd init <name_node> --chain-id deweb-testnet-sirius
Cоздаем или восстанавливаем кошелек и сохраняем вывод
# создать кошелек dewebd keys add <name_wallet> # восстановить кошелек (после команды вставить seed) dewebd keys add <name_wallet> --recover
wget -O $HOME/.deweb/config/genesis.json "https://raw.githubusercontent.com/deweb-services/deweb/main/genesis.json" # Проверим генезис sha256sum ~/.deweb/config/genesis.json # 5316dc5abf1bc46813b673e920cb6faac06850c4996da28d343120ee0d713ab9
Проверяем, что состояние валидатора на начальном этапе
cd && cat .deweb/data/priv_validator_state.json { "height": "0", "round": 0, "step": 0 } # если нет, то выполняем команду dewebd tendermint unsafe-reset-all --home $HOME/.deweb/
Настраиваем конфигурацию ноды
Правим конфиг, благодаря чему мы можем больше не использовать флаг chain-id
для каждой команды CLI $HOME/.deweb/config/client.toml
dewebd config chain-id deweb-testnet-sirius
Настраиваем минимальную цену за газ $HOME/.deweb/config/app.toml
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.001udws\"/;" ~/.deweb/config/app.toml
Настраиваем прунинг одной командой $HOME/.deweb/config/app.toml
pruning="custom" && \ pruning_keep_recent="100" && \ pruning_keep_every="0" && \ pruning_interval="50" && \ sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.deweb/config/app.toml && \ sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.deweb/config/app.toml && \ sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.deweb/config/app.toml && \ sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.deweb/config/app.toml
Добавляем seed/peers $HOME/.deweb/config/config.toml
external_address=$(wget -qO- eth0.me) peers="" sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:26656\"/; s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.deweb/config/config.toml seeds="[email protected]:26656" sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.deweb/config/config.toml
(ОПЦИОНАЛЬНО) Выкл индексацию $HOME/.deweb/config/config.toml
indexer="null" && \ sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.deweb/config/config.toml
(ОПЦИОНАЛЬНО) Вкл/выкл снэпшоты $HOME/.deweb/config/app.toml
# По умолчанию снэпшоты отключены "snapshot-interval=1000" # Важно: если устанавливаются снэпшоты, то snapshot-interval должен быть кратен pruning-keep-every
sudo tee /etc/systemd/system/dewebd.service > /dev/null <<EOF [Unit] Description=deweb After=network-online.target [Service] User=$USER ExecStart=$(which dewebd) start Restart=on-failure RestartSec=3 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
sudo systemctl daemon-reload && \ sudo systemctl enable dewebd && \ sudo systemctl restart dewebd && sudo journalctl -u dewebd -f -o cat
Если после старта нода долго не может подцепиться к пирам, то ищем новые пиры или просим addrbook.json в дискорд
# стопаем ноду, удаляем адресную книгу и сбрасываем данные sudo systemctl stop dewebd rm $HOME/.deweb/config/addrbook.json dewebd tendermint unsafe-reset-all --home $HOME/.deweb/ # перезагружаем ноду sudo systemctl restart dewebd && journalctl -u dewebd -f -o cat
После синхронизации идем в дискорд и в канале #faucet запрашиваем монетки
dewebd tx staking create-validator \ --chain-id deweb-testnet-sirius \ --commission-rate=0.05 \ --commission-max-rate=0.2 \ --commission-max-change-rate=0.1 \ --min-self-delegation="1000000" \ --amount=1000000udws \ --pubkey $(dewebd tendermint show-validator) \ --moniker "<name_moniker>" \ --from=<name_wallet> \ --gas="auto" \ --fees 555udws
Не забываем сохранить priv_validator_key.json
Подробнее о создании/редактировании валидатора можно почитать здесь
Полезные команды
dewebd status 2>&1 | jq ."SyncInfo"."latest_block_height"
sudo journalctl -u dewebd -f -o cat sudo journalctl -fn 100 -u dewebd
curl localhost:26657/status
dewebd q bank balances <deweb1...>
dewebd query staking validator <dewebvaloper1...> dewebd query staking validators --limit 1000000 -o json | jq '.validators[] | select(.description.moniker=="<name_moniker>")' | jq
Собрать комиссионные + реварды
dewebd tx distribution withdraw-rewards <dewebvaloper1...> --from <name_wallet> --fees 555udws --commission -y
Заделегировать себе в стейк еще (так отправляется 1 монетa)
dewebd tx staking delegate <dewebvaloper1...> 1000000udws --from <name_wallet> --fees 555udws -y
dewebd tx staking unbond <dewebvaloper1...> 10000000udws --from <name_wallet> --fees 555udws -y
Отправить монеты на другой адрес
dewebd tx bank send <name_wallet> <deweb1...> 10000000udws --fees 555udws -y
dewebd tx slashing unjail --from <name_wallet>
# вывести список кошельков dewebd keys list # показать ключ аккаунта dewebd keys show <name_wallet> --bech acc # показать ключ валидатора dewebd keys show <name_wallet> --bech val # показать ключ консенсуса dewebd keys show <name_wallet> --bech cons # запрос учетной записи dewebd q auth account $(dewebd keys show <name_wallet> -a) -o text
Узнать транзакцию создания валидатора (заменить свой valoper_address)
dewebd query txs --events='create_validator.validator=<your_valoper_address>' -o=json | jq .txs[0].txhash -r
Проверить сколько блоков пропущено валидатором и с какого блока актив
dewebd q slashing signing-info $(dewebd tendermint show-validator)
dewebd q staking params
systemctl stop dewebd && \ systemctl disable dewebd && \ rm /etc/systemd/system/dewebd.service && \ sudo systemctl daemon-reload && \ cd $HOME && \ rm -rf .deweb && \ rm -rf deweb && \ rm -rf $(which dewebd)
dewebd tx gov vote 1 yes --from <name_wallet> --fees 555udws
dewebd tx gov deposit 1 5000000udws --from <name_wallet> --fees 555udws