Dymension - RollApp
🪓 Telegram канал UTSA 🪓 Telegram чат UTSA
ВАЖНО - в настоящее время faucets доступны только для участников дискорда с ролью #Genesis Validator - Froopyland и ролью #RollApp-fam
ВАЖНО - для использования пула вознаграждений валидаторов требуется развертывание и листинг RollApp. Награды начнутся после успешного прохождения всех этапов
Для прохождения всех этапов нам необходимо:
- Установить Roller и запустить RollApp https://docs.dymension.xyz/build/roller/
- Профинансировать кошельки и выполнить IBC транзакции https://docs.dymension.xyz/build/quick-start/roller-quick/ibc-transfer
- Разместить RollApp на портале https://docs.dymension.xyz/build/production/portal-listing
- Зарегистрировать RollApp в дискорд и отправить твит
Установка Roller
Для установки 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 в отдельном окне 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
roller keys export hub_sequencer
Экспортируем rollapp_sequencer
roller keys export rollapp_sequencer
roller keys export my_celes_key
ВАЖНО - при миграции на новый сервер важно иметь копии необходимых файлов (genesis и keys). Mzonder написал подробный гайд о том какие файлы необходимо сохранить и как их перенести
Тест с порталом
Размещение на портале
Теперь, когда мы развернули RollApp, мы можем разместить его на портале Dymension. Это позволит другим пользователям открывать rollApp и взаимодействовать с ним
Теперь мы должны подготовить общедоступные точки доступа либо по протоколу http, либо по протоколу https. Это позволит пользователям иметь возможность взаимодействовать с RollApp. В примере ниже я использую https, но Вы можете использовать и http
Перед началом размещения на портале проверим, что RollApp успешно развернут и запущен и что Вы можете передавать токены в кран с помощью команды roller tx fund-faucet
и транзакция успешная
- Теперь сделаем fork данного репозитория
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>
roller config export
Также в данном json необходимо заполнить поля RPC, REST, EVM RPC и заменить поле chainName на то, которое будет в будущем отображаться на портале. В моем случае у меня получился следующий конфиг:
git add . git commit -m "added RollApp" git push -u origin main
Шаги для получения наград
- Подключаем 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
roller migrate
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