Guides
May 8, 2023
Сascadia
- https://www.cascadia.foundation/
- https://validator.cascadia.foundation/
- https://twitter.com/CascadiaSystems
- Explorers: https://validator.cascadia.foundation/validators
- Guide: https://cascadia.gitbook.io/gitbook/validators/install-your-node
- Faucet: https://www.cascadia.foundation/faucet
Подготовка сервера
# обновляем репозитории apt update && apt upgrade -y # устанавливаем необходимые утилиты apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y
Устанавливаем GO
ver="1.20.3" && \ 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
Установка ноды
git clone https://github.com/cascadiafoundation/cascadia && cd cascadia git checkout v0.1.1 make install cascadiad version --long # v0.1.1 # commit: 5f5bb104a13407a7312b9c5b780cbfd16d4bd6ef
Инициализируем ноду, чтобы создать необходимые файлы конфигурации
cascadiad init name_moniker --chain-id cascadia_6102-1
wget -O $HOME/.cascadiad/config/genesis.json "https://anode.team/Cascadia/test/genesis.json" # Проверим генезис sha256sum ~/.cascadiad/config/genesis.json # 74ea3c84182028300d0c101c5cf017a055782c595ed91e4be3638380f0169582
Проверяем, что состояние валидатора на начальном этапе
cd && cat .cascadiad/data/priv_validator_state.json { "height": "0", "round": 0, "step": 0 } # если нет, то выполняем команду cascadiad tendermint unsafe-reset-all --home $HOME/.cascadiad
wget -O $HOME/.cascadiad/config/addrbook.json "https://anode.team/Cascadia/test/addrbook.json"
Настраиваем конфигурацию ноды
# правим конфиг, благодаря чему мы можем больше не использовать флаг chain-id для каждой команды CLI в client.toml cascadiad config chain-id cascadia_6102-1 # при необходимости настраиваем keyring-backend в client.toml cascadiad config keyring-backend os # настраиваем минимальную цену за газ в app.toml sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.025aCC\"/;" ~/.cascadiad/config/app.toml # добавляем seeds/bpeers/peers в config.toml external_address=$(wget -qO- eth0.me) sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:26656\"/" $HOME/.cascadiad/config/config.toml peers="" sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.cascadiad/config/config.toml #bpeers="" #sed -i.bak -e "s/^bootstrap-peers *=.*/bootstrap-peers = \"$bpeers\"/" $HOME/.cascadiad/config/config.toml seeds="" sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.cascadiad/config/config.toml # при необходимости увеличиваем количество входящих и исходящих пиров для подключения, за исключением постоянных пиров в config.toml # может помочь при падении ноды, но увеличивает нагрузку sed -i 's/max_num_inbound_peers =.*/max_num_inbound_peers = 50/g' $HOME/.cascadiad/config/config.toml sed -i 's/max_num_outbound_peers =.*/max_num_outbound_peers = 25/g' $HOME/.cascadiad/config/config.toml # настраиваем фильтрацию "плохих" peers sed -i -e "s/^filter_peers *=.*/filter_peers = \"true\"/" $HOME/.cascadiad/config/config.toml # отключаем JSON RPC Configuration в app.toml nano /root/.cascadiad/config/app.toml # enable = false
(ОПЦИОНАЛЬНО) Настраиваем прунинг одной командой вapp.toml
pruning="custom" pruning_keep_recent="1000" pruning_interval="10" sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.cascadiad/config/app.toml sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.cascadiad/config/app.toml sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.cascadiad/config/app.toml
(ОПЦИОНАЛЬНО) Выкл индексацию вconfig.toml
indexer="null" sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.cascadiad/config/config.toml
(ОПЦИОНАЛЬНО) Вкл/выкл снэпшоты вapp.toml
# По умолчанию снэпшоты выключены "snapshot-interval=0" snapshot_interval=1000 sed -i.bak -e "s/^snapshot-interval *=.*/snapshot-interval = \"$snapshot_interval\"/" ~/.cascadiad/config/app.toml
tee /etc/systemd/system/cascadiad.service > /dev/null <<EOF [Unit] Description=cascadiad After=network-online.target [Service] User=$USER ExecStart=$(which cascadiad) start Restart=on-failure RestartSec=3 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
systemctl daemon-reload systemctl enable cascadiad systemctl restart cascadiad && journalctl -u cascadiad -f -o cat
Создаем или восстанавливаем кошелек и сохраняем вывод
# создать кошелек cascadiad keys add <name_wallet> --keyring-backend os # восстановить кошелек (после команды вставить seed) cascadiad keys add <name_wallet> --recover --keyring-backend os
cascadiad tx staking create-validator \ --chain-id cascadia_6102-1 \ --commission-rate 0.05 \ --commission-max-rate 0.2 \ --commission-max-change-rate 0.1 \ --min-self-delegation "1000000" \ --amount 1000000000000000000aCC \ --pubkey $(cascadiad tendermint show-validator) \ --moniker "<name_moniker>" \ --from <name_wallet> \ --gas auto \ --gas-adjustment=1.2 \ --gas-prices=7aCC
08.05.2023 Update to v0.1.2
sudo systemctl stop cascadiad rm -rf cascadia git clone https://github.com/cascadiafoundation/cascadia cd $HOME/cascadia || return git checkout v0.1.2 make install sudo systemctl restart cascadiad && journalctl -fu cascadiad -o cat