June 9, 2022

DWS

О проекте

DWS - это следующий шаг к Web 3.0, он хочет объединить все децентрализованные инфраструктурные решения вместе и решить все технические проблемы и проблемы с оркестровкой с помощью одной платформы. Потребуется всего лишь кошелек Keplr, для разворачивания инфраструктуры любой сложности.

Есть десятки компаний, которые предоставляют облачные решения, эффективные с точки зрения масштабируемости, но что касательно надежности? Можете ли вы доверять сервису облачное хранилище? Можете ли вы гарантировать, что они не будут продавать ваши данные или использовать для своих нужд? У крипто-мира есть несколько альтернатив. Akash, Sia, Mysterium и многие другие имеют отличные варианты облачной инфраструктуры, но все эти проекты требуют от вас стать экспертом в каждой отдельной технологии. Как результат, недостаточно просто быть экспертом по DevOps, если вы заботитесь о надежности и конфиденциальности, вам нужно освоить все трудности на пути освоения Web3.0.

DWS предоставляет возможность хранения данных в частном, децентрализованном облачном решении с открытым исходным кодом. Под капотом DWS использует децентрализованные развертывания Akash в качестве точки входа в NextCloud и децентрализованное хранилище Sia для хранения данных.

Мое мнение следующее: если есть пустующие сервера, можно ставить. У проекта мертвый твиттер с менее чем 100 подписчиками, с дискордом дела обстоят немного лучше.

Планируется запуск меиннета в 3-й четверти.

Гайд по установке

Характеристики тут уже немного серьезнее:

  • 8GB RAM
  • 4vCPUs
  • 200GB Disk space

Установка зависимостей

sudo apt-get install build-essential jq

Установка go

cd $HOME
ver="1.17.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
вывод:
go version go1.17.2 linux/amd64

Установка файлов

curl https://dl.google.com/go/go1.17.6.linux-amd64.tar.gz | sudo tar -C/usr/local -zxvf -

Обновление переменных среды

cat <<'EOF' >>$HOME/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export GOBIN=$HOME/go/bin
export PATH=$PATH:/usr/local/go/bin:$GOBIN
EOF
source $HOME/.profile

Установка кода

git clone https://github.com/deweb-services/deweb.git
cd deweb
git checkout v0.2
make build   #it build the binary in build/ folder

Проверка

build/dewebd version
должно вывести 0.2
cd $HOME
wget https://github.com/deweb-services/deweb/releases/download/v0.2/dewebd
chmod +x dewebd
sudo mv dewebd /usr/local/bin/
dewebd config chain-id deweb-testnet-1

добавляем кошель

dewebd keys add MyFirstAddress
dewebd init "ИМЯ_КОШЕЛЯ" --chain-id deweb-testnet-1

установка генезиса

cd $HOME
curl -s https://raw.githubusercontent.com/deweb-services/deweb/main/genesis.json > ~/.deweb/config/genesis.json
sed -E -i 's/seeds = \".*\"/seeds = \"[email protected]:26656\"/' $HOME/.deweb/config/config.toml
sed -E -i 's/minimum-gas-prices = \".*\"/minimum-gas-prices = \"0.001udws\"/' $HOME/.deweb/config/app.toml
sudo ufw allow 26656

чекаем логи

dewebd start --log_level info
пример:

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

    cd $HOME
    echo "[Unit]
    Description=DWS Node
    After=network-online.target
    [Service]
    User=${USER}
    ExecStart=$(which dewebd) start
    Restart=always
    RestartSec=3
    LimitNOFILE=4096
    [Install]
    WantedBy=multi-user.target
    " >dewebd.service

запускаем его

    sudo mv dewebd.service /lib/systemd/system/
    sudo systemctl enable dewebd.service && sudo systemctl start dewebd.service

проверяем логи

sudo journalctl -u dewebd -f
curl -s localhost:26657/status  | jq .result.sync_info.catching_up
#true output is syncing - false is synced

curl -s localhost:26657/status | jq .result.sync_info.latest_block_height
#this output is your last block synced

curl -s "https://rpc-deweb.deweb.services/status?"  | jq .result.sync_info.latest_block_height
#this output the public node last block synced

Создание валидатора
Для того, чтобы создать валидатор, нужно дождаться окончания синхронизации блоков. За синхронизацией вы можете следить, сравнивая последние блоки ноды с блоками в эксплорере

Далее нам необходимы токены, которые можно запросить в фаусет-боте в дискорде

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

dewebd tx staking create-validator \
    --amount 1000000udws \
    --commission-max-change-rate 0.10 \
    --commission-max-rate 0.2 \
    --commission-rate 0.1 \
    --from WALLET_NAME \
    --min-self-delegation 1 \
    --moniker YOUR_MONIKER \
    --pubkey $(dewebd tendermint show-validator) \
    --chain-id deweb-testnet-1 \
    --gas auto \
    --gas-adjustment 1.5 \
    --gas-prices 0.001udws

Бэкап приватного ключа:

tar -czvf validator_key.tar.gz .deweb/config/*_key.json 
gpg -o validator_key.tar.gz.gpg -ca validator_key.tar.gz
rm validator_key.tar.gz

ОФИЦИАЛЬНЫЙ ГАЙД