Too Late
October 17, 2021

IDEP /// v2.0

Устанавливаем ноду IDEP для участия в SanfordV2.

Если вы не знаете, что такое нода — читаем статью.
Если вы не знаете, где арендовать сервер для ноды — читаем статью.
Если вы не знаете, как подключиться к серверу — читаем статью.
Если вы всё знаете — открываем MobaXterm и создаём сессию.

Содержание

IDEP - это блокчейн NFT2.0, который фокусируется на децентрализованных цифровых медиа. Он построен с использованием механизма консенсуса Tendermint и Cosmos SDK.

Основное видение IDEP состоит в том, чтобы стать первой платформой AR (дополненной реальности) для цифровых медиа глобального масштаба, использующей PoS Tendermint.

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

AR IDEP - новый стандарт в области дополненной реальности.

Модули сети IDEP будут иметь полную интеграцию и нативное использование AR. Кроме того, поскольку слой AR настолько тесно интегрирован с сетью, он сможет использоваться остальной частью экосистемы Cosmos и более широким сообществом блокчейнов.

Протокол связи между блокчейнами, IBC, приведет к захватывающему сотрудничеству и примерам использования, основанным на технологии AR IDEP.

Сеть IDEP придерживается философии с открытым исходным кодом, приглашая все сообщество IDEP внести свой вклад в развитие сети, создавая самодостаточную децентрализованную платформу.

IDEP запустится с 3 основными базовыми моделями экосистемы:

  • Uptake: платформа следующего поколения NFT2.0;
  • IDENTITY: гиперрасширяемый сетевой профиль;
  • IDEP-Swap: рынок цифровых активов.

Сейчас множество блокчейнов являются "общими" сетями, с отсутствием целенаправленности, узкой специализизации.

IDEP считает это проблемой. Архитектура должна быть адаптирована для создания экосистемы, которая наилучшим образом подходит для развития конкретного сообщества.

Сеть IDEP является частью Cosmos, что подразумевает нативную поддержку IBC.

IDEP полностью интегрировал виртуальную машину Ethereum (EVM) в свою архитектуру. Используя EVM в качестве основы, вся база знаний Ethereum напрямую применима к IDEP - разработчики могут использовать все инструменты, которые уже созданы для экосистемы Ethereum.

Это позволяет существующим проектам из индустрии NFT и цифровых медиа легко переходить с Ethereum на IDEP, чтобы воспользоваться преимуществами высокой скорости транзакций, безопасности и низких сборов за газ.

В конечном счете, это позволит проектам сотрудничать с другими проектами, ориентированными на цифровой контент, в одной экосистеме.

$IDEP - это собственный, нативный токен сети IDEP. Подробная информация о токеномике представлена здесь.

Roadmap:


Текущая фаза тестнета является стимулируемой (оплачиваемой).

За награды могут бороться только участники дискорда с ролью Testnet-Sanford.

Если у вас нет такой роли - нет смысла ставить ноду.


Medium | Docs | GitHub | WebSite | Twitter | Discord | Telegram | RU_Chat

Содержание

Официальные требования: 4 CPU x 8 GB RAM x 1 TB SSD - Ubuntu 20.04.

Субъективные наблюдения: 2 CPU x 4 GB RAM x 200 GB SSD - Ubuntu 20.04.

Содержание
# обновляем 'базу данных', обновляем дистрибутив
$ sudo apt-get update && sudo apt-get upgrade -y
# скачиваем необходимые зависимости
$ sudo apt-get install git curl build-essential gcc jq -y
# устанавливаем 'go' одной командой
$ wget https://golang.org/dl/go1.17.5.linux-amd64.tar.gz; \
rm -rv /usr/local/go; \
tar -C /usr/local -xzf go1.17.5.linux-amd64.tar.gz && \
rm -v go1.17.5.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/IDEP-network/SanfordV2.git && \
sudo cp SanfordV2/iond /usr/local/bin/
# выдаём права на исполнение
$ sudo chmod a+x /usr/local/bin/iond
# устанавливаем 'wasmvm' одной командой
$ cd && \
go get -u github.com/CosmWasm/wasmvm@v1.0.0-beta4 && \
cd $HOME/go/pkg/mod/github.com/\!cosm\!wasm/wasmvm@v1.0.0-beta4/api && \
chmod +x libwasmvm.so && \
mv libwasmvm.so /usr/lib/ && \
cd
# проверяем работоспособность
$ iond -h

Если всё прошло успешно, тогда переходим к инициализации ноды.

Первым делом добавим наш никнейм, который будет в дальнейшем использоваться в качестве названия кошелька, в систему, как переменную.

Замените условную переменную <nickname> на желаемый никнейм, раскрывая кавычки.

# например, "export NICKNAME="cyberomanov"" 
$ echo "export NICKNAME="<nickname>"" >> ~/.bash_profile
# чтобы переменная загрузилась, необходимо перезагрузить '.bash_profile' 
$ source ~/.bash_profile
# проверим значение переменной, выведя её на экран
$ echo $NICKNAME

Инициализируем ноду.

$ rm ~/.ion/config/genesis.json; \
iond init $NICKNAME --chain-id SanfordNetworkV2
# удаляем старый файл генезиса и скачиваем новый одной командой
$ rm $HOME/.ion/config/genesis*; \
wget -O $HOME/.ion/config/genesis.json "https://raw.githubusercontent.com/IDEP-network/SanfordV2/master/genesis.json"
# определяем моникер в файле конфига одной командой
$ sed -i.bak -e "s/^moniker *=.*/moniker = \"$NICKNAME\"/" \
$HOME/.ion/config/config.toml
# добавляем сиды в файл конфига одной командой
$ sed -i.bak -e "s/^seeds *=.*/seeds = \
\"4f32b91384999069bdfdbc82b7725866f1c37cbb@142.93.121.105:26656\"/" \
$HOME/.ion/config/config.toml
# включаем прунинг одной командой
$ pruning="custom" && \
pruning_keep_recent="100" && \
pruning_keep_every="5000" && \
pruning_interval="10" && \
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.ion/config/app.toml && \
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.ion/config/app.toml && \
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.ion/config/app.toml && \
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.ion/config/app.toml
# создаём файл сервиса для запуска ноды
$ sudo tee <<EOF >/dev/null /etc/systemd/system/iond.service
[Unit]
Description=IDEP
After=network-online.target
[Service]
User=$USER
ExecStart=$(which iond) start
Restart=always
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
# включаем сервис 'idepd' одной командой
$ sudo systemctl daemon-reload && \
sudo systemctl enable iond && sudo systemctl restart iond
# проверяем логи
$ sudo journalctl -u iond -f -o cat

Ждём, пока нода найдёт рабочие пиры и начнёт синхронизацию.

# настраиваем сеть и ноду 'по умолчанию'
$ iond config chain-id SanfordNetworkV2
$ iond config node `cat "$HOME/.ion/config/config.toml" \
| grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")"`
# проверяем конфиг
$ iond config
# получаем высоту блоков нашей ноды
$ iond status 2>&1 | jq ."SyncInfo"."latest_block_height"
# получаем статус синхронизации ноды
$ iond status 2>&1 | jq ."SyncInfo"."catching_up"

# 'true' - нода синхронизируется, 'false' - нода синхронизирована
Содержание

Создаём новый кошелёк, как просит команда.

Если спросят, перезаписать ли старый кошелёк - удостоверьтесь, что сохранили от него мнемонику.

После чего подтверждаем перезапись.

# выполняем команду создания кошелька
$ iond keys add $NICKNAME

# либо восстанавливаем старый по мнемонике (не рекомендуется)
$ iond keys add $NICKNAME --recover

Не забываем записать мнемонику - это единственный способ восстановить кошелёк.

Содержание

Чтобы запросить токены на адрес, необходимо, прежде всего, этот адрес узнать.

Если вы сделали бэкап ключей, как я просил - можете скопировать адрес оттуда.

Для остальных выполняем команду:

$ iond keys list

Копируем адрес, вставляем его в дискорд #confirm-wallet и ждём, пока команда начислит токены.

Посмотреть баланс из терминала можно только после полной синхронизации ноды:

Замените условную переменную <address> на idepxxx, раскрывая кавычки.

# проверяем баланс из командной строки
$ iond query bank balances <address>
Содержание

Отправляем транзакцию создания валидатора после полной синхронизации:

$ iond tx staking create-validator \
--amount 10000000000idep \
--commission-max-change-rate 0.01 \
--commission-max-rate 0.2 \
--commission-rate 0.1 \
--from "$NICKNAME" \
--min-self-delegation 1 \
--moniker "$NICKNAME" \
--pubkey $(iond tendermint show-validator)

Посмотрим информацию о валидаторе:

$ iond query staking \
validator $(iond keys show $NICKNAME --bech=val -a)
Содержание

Несколько команд для удобной работы с нодой.

# получаем высоту блоков нашей ноды
$ iond status 2>&1 | jq ."SyncInfo"."latest_block_height"
# получаем статус синхронизации ноды
$ iond status 2>&1 | jq ."SyncInfo"."catching_up"

# 'true' - нода синхронизируется, 'false' - нода синхронизирована
# посмотреть информацию о валидаторе
$ iond query staking \
validator $(iond keys show $NICKNAME --bech=val -a)
# локальный эксплорер
$ iond q staking validators \
-o json --limit=1000 \
| jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' \
| jq -r '.tokens + " - " + .description.moniker' | sort -gr | nl
# выйти из 'тюрьмы'
$ iond tx slashing unjail \
--gas="auto" \
--gas-prices="0.5idep" \
--gas-adjustment=1.5 \
--from=$NICKNAME
# перезапустить сервис с нодой
$ sudo systemctl restart iond
# остановить сервис с нодой
$ sudo systemctl stop iond
# проверить логи ноды
$ sudo journalctl -u iond -f -o cat
Содержание

План работы: выводим реварды за активное валидирование, проверяем баланс, ределегируем собранную награду снова на своего валидатора.

# вывести реварды за стейкинг для последующей ределегации
$ iond tx distribution withdraw-all-rewards -y \
--gas="auto" \
--gas-adjustment=1.5 \
--gas-prices="0.5idep" \
--from=$NICKNAME
# проверяем новый баланс на аккаунтах
$ iond query bank balances <address>

Где <address> - адрес, с которого производилось создание валидатора.

В amount показывает весь свободный баланс. Не советую делегировать весь баланс, помните, что каждая транзакция имеет комиссию.

# добавляем свой 'operator-address' в переменные
$ echo "export OPERATOR="$(iond query staking \
validator $(iond keys show $NICKNAME --bech=val -a) \
| grep "valoper" | awk '{print $2}')"" >> ~/.bash_profile
# чтобы переменная загрузилась, необходимо перезагрузить '.bash_profile' 
$ source ~/.bash_profile
# проверим значение переменной, выведя её на экран
$ echo $OPERATOR
# делегируем токены на своего валидатора
$ iond tx staking delegate $OPERATOR "100000000idep" -y \
--gas="auto" \
--gas-adjustment=1.5 \
--gas-prices="0.5idep" \
--from=$NICKNAME

"100000000idep" - 1 токен.
Меняем только значение "100000000idep" на своё.

Посмотрим информацию о валидаторе:

$ iond query staking \
validator $(iond keys show $NICKNAME --bech=val -a)
Содержание

Добавим аватар и немного описания нашему валидатору.

Советую сначала скопировать команду в блокнот, отредактировать, а затем вставлять в терминал.

$ iond tx staking edit-validator -y \
--moniker="new node nickname" \
--website="https://t.me/nickname" \
--identity="1A1A2B2B3C3C4D4D" \
--details="any details" \
--gas="auto" \
--gas-adjustment="1.5" \
--gas-prices="0.5idep" \
--from=$NICKNAME

Если вы не знаете, что такое identity и где его получить - посмотрите на пример из статьи @letskynode.

На данный момент у блокчейна нет своего эксплорера, обещают добавить в течение ближайших недель.

Посмотрим информацию о валидаторе:

$ iond query staking \
validator $(iond keys show $NICKNAME --bech=val -a)
Содержание

Первым делом бэкапим файл по пути ~/.ion/config/priv_validator_key.json и файлы ключей: 9ef0xxxxxx.address, wallet.info, keyhash. На всякий случай.

# удаляем мусор
$ sudo systemctl stop iond && \
iond unsafe-reset-all && \
rm -Rvf ~/testnet-binaries/ ~/incentivized-testnet/

И начинаем установку с нуля.

Содержание

Про перенос я написал полноценную статью. Читаем внимательно и вдумчиво.

Содержание

Если вы вдруг разочаровались в проекте и хотите удалить его с сервера, то можно просто разрушить/удалить сервер из личного кабинета хостинга.

Это сработает, если на сервере нет других важных нод. В случае, если вы хотите оставить сервер, но удалить конкретную ноду - приступаем к её удалению:

# останавливаем и отключаем сервис ноды
$ sudo systemctl stop iond && sudo systemctl disable iond

Не забудьте сделать бэкап каталога $HOME/.ion, даже если хотите удалить ноду с сервера.

# удаляем каталоги и исполняемые файлы
$ sudo rm -Rvf $HOME/.ion/ /usr/bin/iond $HOME/SanfordV2/
# удаляем файлы сервиса и перезагружаем демона одной командой
$ sudo rm -v /etc/systemd/system/iond.service \
&& sudo systemctl daemon-reload
Содержание

мамичу за то, что родила такого гения.

@mzonder.

Содержание

@how_to_node - канал, где я выкладываю свои гайды.

Полезные ресурсы.

Крипто-кошельки автора гайда.