COSMOS WIKI
August 27, 2023

Dymension - RollApp

🪓 Telegram канал UTSA 🪓 Telegram чат UTSA

DOCS PORTAL FORM

ВАЖНО - в настоящее время faucets доступны только для участников дискорда с ролью #Genesis Validator - Froopyland и ролью #RollApp-fam

ВАЖНО - для использования пула вознаграждений валидаторов требуется развертывание и листинг RollApp. Награды начнутся после успешного прохождения всех этапов

Для прохождения всех этапов нам необходимо:

  1. Установить Roller и запустить RollApp https://docs.dymension.xyz/build/roller/
  2. Профинансировать кошельки и выполнить IBC транзакции https://docs.dymension.xyz/build/quick-start/roller-quick/ibc-transfer
  3. Разместить RollApp на портале https://docs.dymension.xyz/build/production/portal-listing
  4. Зарегистрировать RollApp в дискорд и отправить твит

Установка Roller

Рекомендуемые требования

  • Dual Core
  • At least 100GB of SSD disk storage
  • At least 16GB of memory (RAM)
  • At least 100mbps network bandwidth

Для установки Roller воспользуйтесь скриптом ниже

curl -L https://dymensionxyz.github.io/roller/install.sh | bash
roller version
#💈 Roller version v1.0.3-beta
#💈 Build time: 2023-12-17T22:24:08+0000"
#💈 Git commit: b60d9e1bfa5ee70a8e8cd0d4dd7126c06884be9c

Инициализация

roller config init --interactive
  • Select your network → Froopyland (default)
  • Select your execution environment → EVM RollApp (default)
  • Enter your RollApp ID → Example: berlin
  • Specify your RollApp denom → Example: BTC, PEPE, DYM
  • Set the genesis token supply → начальное количество токенов в rollApp (по умолчанию: 1 000 000 000). Примечание: Количество токенов умножается на 10^18 (18 дополнительных знаков после запятой). Таким образом, при указании транзакций CLI будьте внимательны к количеству десятичных знаков, которое должно быть в каждой транзакции
  • Choose your data layer → Celestia: Arabica testnet или Avail: Dymension dedicated devnet

После инициализации Вы должны увидеть адреса для пополнения. Используйте соответствующие каналы в дискорде

Теперь, когда мы профинансировали кошельки, мы можем приступать к регистрации RollApp!

Регистрация RollApp

Регистрация RollApp добавляет пространство имен в Dymension Hub для учета вновь инициализированного RollApp. Регистрация RollApp в Dymension Hub позволяет Sequencer публиковать обновления состояния по сети и, кроме того, облегчает объединение экосистем

Следующая команда использует адреса, сгенерированные на предыдущем шаге

roller tx register
После регистрации самое время запустить RollApp

Запуск RollApp

В данном гайде в качестве тестирования мы запустим RollApp в отдельном окне tmux с помощью одной команды. Если Вы хотите запустить RollApp используя отдельные сервисные файлы, то изучите данную инструкцию (описание всех компонентов можно найти здесь)

tmux new-session -s roller
roller run

Включение IBC для всех каналов может занять до часа. Каналы IBC созданы для облегчения приложений, таких как передача токенов из rollApp в другие экосистемы

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

IBC transfer

Теперь у нас есть активное приложение rollApp с поддержкой IBC и мы создали собственные токены. Давайте переведем наши токены с помощью транзакции IBC из нашего RollApp на адрес крана Dymension Hub, чтобы пользователи могли напрямую с крана запросить наши токены через дискорд и поиграться с ними

Адрес крана Dymension Hub: dym1g8sf7w4cz5gtupa6y62h3q6a4gjv37pgefnpt5

Введите следующую команду, чтобы пополнить кран Dymension Hub своим токеном rollApp в froopyland тестовой сети:

roller tx fund-faucet

ВАЖНО - может потребоваться до 30 минут, пока Ваш баланс не станет доступен в кране Dymension Hub

Выполните следующую команду в дискорде #froopyland faucet, чтобы проверить баланс вашего токена rollApp:

$balances dym1g8sf7w4cz5gtupa6y62h3q6a4gjv37pgefnpt5 <rollapp-id>

<rollapp-id> можно узнать с помощью команды roller config show

Также баланс можно проверить напрямую через explorer

Пользователи смогут запрашивать токены с помощью команды:

$request <user-address> <rollapp-id>

Передача токенов RollApp через IBC

Можно в ручном режиме отправить токены крану Dymension Hub

Для этого узнаем сначала исходные данные наших открытых каналов

roller relayer status

В моем примере это Active src, channel-0 <-> channel-5291, dst

В данном случае channel-0 будет являться исходным каналом и в следующей команде будет называться <src-channel>. Также в команды мы заменим <base-denom> на свое значение указанное при создании RollApp и <destination-address>

rollapp_evm tx ibc-transfer transfer transfer <src-channel> <destination-address> 5000000000000000000000000<base-denom> --from rollapp_sequencer --keyring-backend test --home ~/.roller/rollapp --broadcast-mode block

В моем случае команда получилась следующей

rollapp_evm tx ibc-transfer transfer transfer channel-0 dym1g8sf7w4cz5gtupa6y62h3q6a4gjv37pgefnpt5 5000000000000000000000000uUTSA --from rollapp_sequencer --keyring-backend test --home ~/.roller/rollapp --broadcast-mode block

Экспорт ключей

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

Для начала выведем список закрытых ключей, связанных с rollApp

roller keys list

Экспортируем hub_sequencer

roller keys export hub_sequencer

Экспортируем rollapp_sequencer

roller keys export rollapp_sequencer

Экспортируем my_celes_key

roller keys export my_celes_key

ВАЖНО - сохраните приватные ключи в надежном месте

ВАЖНО - при миграции на новый сервер важно иметь копии необходимых файлов (genesis и keys). Mzonder написал подробный гайд о том какие файлы необходимо сохранить и как их перенести

Тест с порталом

soon

Размещение на портале

Теперь, когда мы развернули RollApp, мы можем разместить его на портале Dymension. Это позволит другим пользователям открывать rollApp и взаимодействовать с ним

Теперь мы должны подготовить общедоступные точки доступа либо по протоколу http, либо по протоколу https. Это позволит пользователям иметь возможность взаимодействовать с RollApp. В примере ниже я использую https, но Вы можете использовать и http

  1. RollApp RPC Endpoint (default port 26657)
  2. Rest Endpoint (default port 1317)
  3. JSON RPC Endpoint (default port 8545. Only relevant for EVM RollApps)

Перед началом размещения на портале проверим, что RollApp успешно развернут и запущен и что Вы можете передавать токены в кран с помощью команды roller tx fund-faucet и транзакция успешная

  • Клонируем наш форк на сервер
git clone https://github.com/<your-github-username>/rollapp-registry
cd rollapp-registry

  • Извлекаем сгенерированный rollapp id с помощью команды roller config show и сохраняем его как переменную
export ROLLAPP_ID=<RollApp-ID-HERE>

  • Создаем соответствующие папки и файлы
mkdir -p $ROLLAPP_ID/logos
cd $ROLLAPP_ID && touch $ROLLAPP_ID.json

  • Самостоятельно добавляем в созданный каталог logos свой логотип в формате SVG, PNG или JPG и размером не более 50kb. Имя логотипа должно быть в формате <RollApp-ID>.<format>

  • Экспортируем JSON-файл конфигурации RollApps
roller config export

  • Копируем полученный вывод из команды выше в наш созданный файл $ROLLAPP_ID.json

Также в данном json необходимо заполнить поля RPC, REST, EVM RPC и заменить поле chainName на то, которое будет в будущем отображаться на портале. В моем случае у меня получился следующий конфиг:

  • Добавляем коммит в свой форк
git add .
git commit -m "added RollApp"
git push -u origin main

  • Из своего форка создаем PR

Шаги для получения наград

  • Подключаем RollApp к дискорду. Для этого переходим на канал #CR FAMFAM, где публикуем следующий текст $pair <RollApp-ID>
  • Под своим сообщением создаем ветку и оставляем там ссылку на свой PR
  • Ждем, когда в Вашей ветке ответит участник команды, который предоставит Вашу ссылку на портале
  • В конце отправляем твит о том, что RollApp запущен

Если Вам удалось пройти все этапы, то я поздравляю Вас - Вы стали намного ближе к COSMOS!!!

Обновление Roller

Docs - https://docs.dymension.xyz/build/upgrade/

Roller представляет migrate команду как простое решение для обновления Roller и связанных с ним служб
  • Устанавливаем актуальную версию
curl -L https://dymensionxyz.github.io/roller/install.sh | bash

roller version
💈 Roller version v1.0.6-beta
💈 Build time: 2024-01-18T09:05:45+0000"
💈 Git commit: 21b1b22e96466cc83b051ebacfb513b3a0d99de1
  • Нажимаем ctrl+c чтобы оставить работу Roller
  • Запускаем команду migrate
roller migrate
  • Запускаем Roller
roller run

Полезные команды

Вы можете изменить порты, которые использует Rollapp, с помощью команды roller config set

roller config set rollapp-rpc-port 61757
roller config set lc-gateway-port <port>
roller config set lc-rpc-port 61857
roller config set rollapp-jsonrpc-port <port>
roller config set rollapp-ws-port <port>
roller config set rollapp-grpc-port <port>

Посмотреть логи

tail -n 100 -f $HOME/.roller/rollapp/rollapp.log
tail -n 100 -f $HOME/.roller/relayer/relayer.log
tail -n 100 -f $HOME/.roller/da-light-node/light_client.log

Посмотреть информацию о RollApp и RollappID

roller config show

Посмотреть список кошельков

roller keys list

Посмотреть открытые каналы

roller relayer status

Проверить новые созданные блоки

curl http://localhost:26657/status | jq

Посмотреть высоту

roller sequencer status

Поддержим природу вместе: 0xa7476EC14cD663C742d527113638C77a1631Cc89 cosmos1m2mm7kzvw6m3464h94ryqg8xvr6tyeyyecppnq