Установка ноды Defund (orbit-alpha-1)
- Описание проекта
- Автоматическая установка (скрипт)
- Ручная установка ноды
- Обновление ноды до orbit-alpha-1
- Работа с кошельком
- Работа с валидатором
- Удаление ноды
- Полезные команды
Описание проекта
Первый блокчейн L1, созданный специально для разработчиков количественных стратегий, управляющих активами, хедж-фондов и финансовых консультантов.
DeFund - это блокчейн L1 уровня, созданный для построения децентрализованных торговых стратегий без разрешения, на сети, которые упакованы в токен dETF (децентрализованный биржевой фонд), торгуемый в любой экосистеме или CEX.
Миссия DeFund заключается в устранении самой сложной части создания кросс-чейн структурированных продуктов в криптовалюте: инфраструктуры. Это, в свою очередь, позволяет управляющим активами, квантам, финансовым консультантам и финансовым учреждениям строить чрезвычайно сложные торговые стратегии на основе кросс-сетей, не написав ни строчки логики кросс-сетей.
Фактически, построение на основе DeFund - это полностью управление состоянием. Когда вы создаете контракт dETF на DeFund, вы просто сосредотачиваетесь на создании своей стратегии, а DeFund занимается всем остальным.
Минимальные требования к серверу:
Explorer сети: https://defund.explorers.guru | https://exp.utsa.tech/defund-test/staking
Сайт: https://defund.app
Дискорд: https://discord.gg/nPbKUWnnwd
Автоматическая установка
Подключаемся к серверу через Putty или MobaXterm, после чего приступаем к установке.
В установочный файл встроен снапшот, поэтому рекомендуется запускаться при помощи screen
Запускаем автоматический скрипт для установки:
wget -q -O defund.sh https://nodes.wenmoney.io/defund.sh && chmod +x defund.sh && ./defund.sh
Во время установки нода запросит ввести имя для вашей ноды. Также по окончанию установки скрипт даст возможность создания или восстановления кошелька.
Также мы сделали шпаргалку с командами по работе с нодами в сети Cosmos, пригодится каждому - https://teletype.in/@wen_money/cheat-sheet-cosmos-nodes
Ручная установка ноды
Каждая строка - отдельная команда (если не указано иначе). Ручная установка предусматривает использование стандартных портов для Cosmos-ноды, если хотите кастомизированные порты, то используйте автоматический скрипт для установки.
В первую очередь обновляем репозиторий и устанавливаем необходимые пакеты:
sudo apt update && sudo apt upgrade -y sudo apt install build-essential pkg-config libssl-dev git jq wget make gcc nano htop net-tools screen lz4 -y < "/dev/null"
Если сервер "чистый", то устанавливаем Go (1.19.1):
wget -q -O go_install.sh https://nodes.wenmoney.io/go_install.sh && chmod +x go_install.sh && ./go_install.sh
Вводим имя своей ноды и устанавливаем CHAIN_ID:
read -p "Введите имя ноды: " DEFUND_NODENAME echo 'export DEFUND_NODENAME='\"${DEFUND_NODENAME}\" >> $HOME/.bash_profile echo "export DEFUND_CHAIN_ID=orbit-alpha-1" >> $HOME/.bash_profile source $HOME/.bash_profile
Далее компилируем ноду из исходников:
cd $HOME git clone https://github.com/defund-labs/defund cd defund git checkout v0.2.6 make install
Инициализируем и настраиваем ноду:
defundd init $DEFUND_NODENAME --chain-id $DEFUND_CHAIN_ID && sleep 2 source $HOME/.bash_profile curl -Ls https://snapshots.kjnodes.com/defund-testnet/genesis.json > $HOME/.defund/config/genesis.json curl -Ls https://snapshots.kjnodes.com/defund-testnet/addrbook.json > $HOME/.defund/config/addrbook.json sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0025ufetf\"/;" ~/.defund/config/app.toml sed -i 's/max_num_inbound_peers =.*/max_num_inbound_peers = 50/g' $HOME/.defund/config/config.toml sed -i 's/max_num_outbound_peers =.*/max_num_outbound_peers = 50/g' $HOME/.defund/config/config.toml sed -i -e "s/^filter_peers *=.*/filter_peers = \"true\"/" $HOME/.defund/config/config.toml indexer="null" sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.defund/config/config.toml pruning="custom" pruning_keep_recent="1000" pruning_keep_every="0" pruning_interval="50" sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.defund/config/app.toml sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.defund/config/app.toml sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.defund/config/app.toml sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.defund/config/app.toml sed -i -e "s|^seeds *=.*|seeds = \"3f472746f46493309650e5a033076689996c8881@defund-testnet.rpc.kjnodes.com:40659\"|" $HOME/.defund/config/config.toml
echo " [Unit] Description=Defund Node After=network-online.target [Service] User=$USER Type=simple ExecStart=$(which defundd) start Restart=on-failure RestartSec=3 LimitNOFILE=65535 [Install] WantedBy=multi-user.target" > $HOME/defundd.service
sudo mv $HOME/defundd.service /etc/systemd/system
Устанавливаем снапшот для быстрой синхронизации:
curl -L https://snapshots.kjnodes.com/defund-testnet/snapshot_latest.tar.lz4 | tar -Ilz4 -xf - -C $HOME/.defund
sudo systemctl daemon-reload sudo systemctl enable defundd sudo systemctl restart defundd
Чекаем логи что все завелось и работает как надо:
journalctl -u defundd -f -o cat
Обновление ноды до orbit-alpha-1
Если до этого момента у вас уже была установлена нода и корректно работала, то обновиться можно при помощи двух вариантов:
1. ПРЕДПОЧТИТЕЛЬНЫЙ: запустить автоматический скрипт и выбрать 2 пункт Обновление на 0.2.6 и orbit-alpha-1. В этом случае скрипт сам сделает бэкап priv_validator_key
, затем полностью удалит ноду и установит актуальную версию. Вам понадобится дождаться синхронизации с сетью, после чего восстановить кошелек (удобнее через скрипт), запросить токены в кране и создать валидатора.
Последний шаг - восстанавливаем priv_validator_key
командой:
cp $HOME/priv_validator_key.json.defund $HOME/.defund/config/priv_validator_key.json
Перезагружаем ноду и смотрим логи что все ок:
systemctl restart defundd && journalctl -u defundd -f -o cat
На всякий случай можете проверить статус своего валидатора:
defundd query staking validator $DEFUND_VALOPER
2. Ручной способ. Здесь будет рассказан общий ход, так как дублировать информацию не видим смысла. В этом случае вам необходимо сделать бэкап priv_validator_key
, удалить ноду и установить ее с нуля (предварительно заменив в .bash_profile
значение DEFUND_CHAIN_ID
). Ну а далее восстанавливаете кошелек, запрашиваете токены и создаете валидатора (не забывая восстановить priv_validator_key
).
Работа с кошельком
Если вы создаете / восстанавливаете кошелек вручную, то для начала создадим переменную (имя кошелька) и запишем ее в bash_profile для удобства:
source .bash_profile wallet="wallet" echo "export DEFUND_WALLET=$wallet" >> $HOME/.bash_profile
source .bash_profile defundd keys add $DEFUND_WALLET --keyring-backend os
Получаем адрес кошелька и VALOPER и запишем их в bash_profile для удобства:
DEFUND_ADDRESS=$(defundd keys show $DEFUND_WALLET -a --keyring-backend os) DEFUND_VALOPER=$(defundd keys show $DEFUND_WALLET --bech val -a --keyring-backend os) echo 'export DEFUND_ADDRESS='${DEFUND_ADDRESS} >> $HOME/.bash_profile echo 'export DEFUND_VALOPER='${DEFUND_VALOPER} >> $HOME/.bash_profile
defundd query bank balances $DEFUND_ADDRESS
Баланс кошелька отобразится только в том случае, когда нода полностью синхронизируется с сетью!
Для получения тестовых токенов переходите в Дискорд в канал #faucet и получаете токены в формате !faucet YOUR_ADDRESS
Работа с валидатором
Не забываем о том, что валидатора создаем только после того, как ваша нода полностью синхронизируется с сетью.
defundd tx staking create-validator \ --chain-id=$DEFUND_CHAIN_ID \ --keyring-backend os \ --commission-rate 0.05 \ --commission-max-rate 0.2 \ --commission-max-change-rate 0.1 \ --min-self-delegation "1000000" \ --amount 1000000ufetf \ --pubkey $(defundd tendermint show-validator) \ --moniker=$DEFUND_NODENAME \ --from=$DEFUND_WALLET \ --fees 650ufetf \ --gas=auto \ --gas-adjustment=1.4
После чего идем в эксплоер и по txhash проверяем транзакцию на предмет успешного создания валидатора (если Success, то валидатор корректно создан).
Делегировать токены в своего валидатора (в примере делегируется 1 токен):
defundd tx staking delegate $DEFUND_VALOPER 1000000ufetf --from $DEFUND_WALLET --keyring-backend os --chain-id=$DEFUND_CHAIN_ID --fees 650ufetf --gas=auto --gas-adjustment=1.4 -y
После чего идем в эксплоер и по txhash проверяем транзакцию на предмет успешного делегирования (если Success, то делегирование прошло успешно).
Также мы сделали шпаргалку с командами по работе с нодами в сети Cosmos, пригодится каждому - https://teletype.in/@wen_money/cheat-sheet-cosmos-nodes
Удаление ноды
Для удаления ноды выполните команду (это одна команда, или просто запустите установщик, там есть команда на удаление ноды) :
systemctl stop defundd && \ systemctl disable defundd && \ rm /etc/systemd/system/defundd.service && \ systemctl daemon-reload && \ cd $HOME && \ rm -rf .defund defund && \ rm -rf $(which defundd)
Полезные команды
Список полезных команд, пригодится каждому.
Проверить последний синхронизированный блок:
defundd status 2>&1 | jq ."SyncInfo"."latest_block_height"
sudo journalctl -u defundd -f -o cat
Проголосовать за предложение (говернанс) c ID=1:
defundd tx gov vote 1 yes --from $DEFUND_WALLET --keyring-backend os --fees 500ufetf