Запуск моста для SVM токенов с помощью Hyperlane Warp маршрутов

Цель этого руководства — помочь вам настроить Warp Route (Warp маршрут) между Solana и Eclipse, чтобы обеспечить беспрепятственную передачу токенов между сетями.

post image

Это руководство посвящено развертыванию Warp Route, использующего нативный SOL в Solana и синтетический SOL в Eclipse. Синтетические токены создаются и сжигаются динамически, что позволяет беспрепятственно передавать токены через разные сети.

Если вы никогда не развёртывали программу в Solana и не работали с кроссчейн инструментами, не волнуйтесь — мы расскажем о каждом шаге!

Учебник по Warp Routes

Warp Routes позволяют перемещать любые токены (SPL-токены в Solana, ERC20/ERC721 в сетях EVM) между сетями. Они основаны на кроссчейн инфраструктуре обмена сообщениями Hyperlane.

Существуют различные типы Warp Routes, предназначенные для поддержки различных видов передачи токенов в зависимости от конкретного случая их использования:

Нативные. Используются для передачи нативных токенов сетей (например, SOL в Solana или ETH в Ethereum). Токены блокируются в основной сети и минтятся/выпускаются в эквивалентном объеме в сети назначения. Залоговые. Используют для передачи сторонние токены (например, USDC) как залог. Токены блокируются в основной сети и минтятся/выпускаются в эквивалентном объеме в сети назначения. Синтетические. Создаются синтетические обертки токенов в сети назначения для представления заблокированных средств из оригинальной сети. Эти синтетические токены сжигаются после обратной отправки в оригинальную сеть. Специальные. Добавляются уникальные функции или интеграции для специфических случаев использования (например, хранение, токены обеспеченные фиатными деньгами и тд). В этом руководстве мы развернем нативный в синтетический Warp Route:

  • Solana (нативный)

  • Eclipse (синтетический) Пошаговое видеоруководство также доступно здесь.

Развертывание Warp Route между Solana и Eclipse

Необходимые условия

Перед началом работы убедитесь, что у вас:

  1. Установлен Rust

  2. Ваши аккаунты с достаточным количеством средств: убедитесь, что на ваших аккаунтах в обеих сетях достаточно средств, необходимых для развертывания и оплаты транзакций (для данного руководства: 5 SOL на Solana и 0,05 ETH на Eclipse).

  3. Использование уже существующих аккаунтов: если вы планируете использовать уже существующие аккаунты, вам нужно будет обеспечить сохранность соответствующих приватных ключей.

  4. Генерация новых аккаунтов: в качестве альтернативы можно создать новые аккаунты, как описано ниже, и пополнить их на необходимую сумму.

Создайте программу Warp Route 1.Клонируйте Hyperlane Monorepo

git clone https://github.com/hyperlane-xyz/hyperlane-monorepo.git

  1. Установите solana-cli 1.14.20 для создания программ Warp Route. Обратите внимание, что вы должны использовать эту версию, иначе развертывание может не получиться.

sh -c “$(curl -sSfL https://release.solana.com/v1.14.20/install)"

  1. Установите все необходимые программы:

cd hyperlane-monorepo/rust/sealevel/programs cd hyperlane-sealevel-token cargo build-sbf cd ../hyperlane-sealevel-token-collateral cargo build-sbf cd ../hyperlane-sealevel-token-native cargo build-sbf

Эти шаги позволяют скомпилировать Solana программы, необходимые для развертывания.

Чтобы проверить результат сборки, проверьте каталог target/deploy на наличие файлов .so в hyperlane-monorepo/rust/sealevel/target/deploy:

post image

2. Создайте аккаунт в Solana

Сгенерируйте ключи Если у вас еще нет аккаунта в Solana, создать его довольно просто, выполните следующую команду:

solana-keygen new — outfile ./warp-route-deployer-key.json

Команда создаст файл с парой ключей под названием warp-route-deployer-key.json. Сохраните его! Я выполнил эту команду от имени суперпользователя, чтобы упростить задачу. Этот ключ оплачивает развертывание и будет владельцем развернутых программ. Проверьте свой публичный ключ с помощью:

solana-keygen pubkey ./warp-route-deployer-key.json

Проверьте свой баланс с помощью:

solana balance — keypair ./warp-route-deployer-key.json

  1. Пополнение аккаунтов

Вам потребуется:

  • не менее 5 SOL в Solana

  • 0,05 ETH в майнете Eclipse. Эти суммы гарантируют, что у вас будет достаточно средств для развертывания и оплаты транзакций.

post image

3. Настройка Warp Route

Теперь пришло время создать Warp Route. Сначала создайте директорию для Warp Route: mkdir -p rust/sealevel/environments/mainnet3/warp-routes/ Создайте файл с именем token-config.json в новой директории. touch rust/sealevel/environments/mainnet3/warp-routes//token-config.json Добавьте конфигурацию Warp Route в файл token-config.json. Вот как выглядит моя конфигурация: { “solanamainnet”: { “type”: “native”, “decimals”: 9, “interchainGasPaymaster”: “hBHAApi5ZoeCYHqDdCKkCzVKmBdwywdT3hMqe327eZB” }, “eclipsemainnet”: { “type”: “synthetic”, “decimals”: 9, “name”: “Solana (mainnet)”, “symbol”: “SOL”, “interchainGasPaymaster”: “hBHAApi5ZoeCYHqDdCKkCzVKmBdwywdT3hMqe327eZB” } } Что здесь происходит? В Solana мы используем нативный SOL. В Eclipse мы минтим синтетический токен (как обернутую версию SOL). InterchainGasPaymaster(IGP) — это важный компонент, который обрабатывает оплату за доставку сообщений между сетями. При передаче токенов вам необходимо оплатить стоимость газа в сети назначения — IGP управляет этим процессом. Конфигурации Warp Routes, развернутые командой Abacus Works, можно найти здесь, они могут дать вам больше идей о том, какой может быть конфигурация токенов. 🎯 Проверка себя: на этом этапе у вас должны быть: Аккаунт Solana Новая папка с токен-конфигом для вашего Warp Route. SOL в Solana и ETH в Eclipse для оплаты развертывания. 4. Развертывание Warp Route Наконец, давайте развернем контракты в обеих сетях! Здесь вам нужно убедиться, что вы пополнили свои счета в обеих сетях. Чтобы развернуть контракты, установите solana-cli 1.18.20. Обратите внимание, что вы должны использовать именно эту версию, иначе развертывание может завершиться неудачей. sh -c “$(curl -sSfL https://release.solana.com/v1.18.18/install)" Из каталога rust/sealevel/client разверните Warp Route с помощью команды warp-route deploy. Вот как выглядит моя команда, убедитесь, что вы изменили имя для Warp Route и проверили каталоги: cargo run — -k ./warp-route-deployer-key.json \ warp-route deploy \ — warp-route-name eda-solanaeclipse \ — environment mainnet3 \ — environments-dir ../environments \ — built-so-dir ../target/deploy \ — token-config-file ../environments/mainnet3/warp-routes/eda-solanaeclipse/token-config.json \ — chain-config-file ../environments/mainnet3/chain-config.json \ — ata-payer-funding-amount 10000000 В случае успеха вы увидите, что идентификаторы программ для обеих сетей отображаются в терминале и сохраняются в файле program-ids.json. Советы по устранению ошибок Развертывание контрактов в сетях иногда может показаться сложным, особенно если вы новичок. Имейте в виду, что этот алгоритм может не сработать с первой попытки из-за перегруженности сети или размера программы. Но не волнуйтесь — вот несколько распространенных проблем и способы их решения. Повторяйте команды, они не требуют отмены. Это означает, что вы можете смело повторно выполнять те же команды, не опасаясь испортить развертывание или продублировать шаги. Если часть развертывания уже завершена (например, программа была успешно развернута в Solana, но не в Eclipse), утилита пропустит эти шаги и повторит только неудачные. Ошибки типа Error: 11 write transactions failed или Error: Custom: Invalid blockhash всегда можно повторить, выполнив команду заново. Пополняйте свои аккаунты с запасом. В терминале вы увидите сообщение об ошибке о недостаточности средств. (Чтобы легко узнать, сколько средств у вас на счету, вы можете импортировать приватный ключ в предпочитаемый кошелек). Лучше всего, если вы используете приватный RPC; вы можете задать приватный RPC в файле chain-config-file, передаваемом скрипту (например, в solanamainnet.rpcUrls.http). 👉 Ознакомьтесь с документацией для более детального устранения ошибок. 5. Протестируйте Warp Route После развертывания вы можете протестировать Warp Route, передав токены: 1. Из каталога rust/sealevel/client обратитесь к программе: cargo run — -k ./warp-route-deployer-key.json \-u https://api.mainnet-beta.solana.com \token query — program-id 2. Отправьте токены: cargo run — -u https://api.mainnet-beta.solana.com \ -k ./warp-route-deployer-key.json \ token transfer-remote ./warp-route-deployer-key.json \ 1000000000 1234 <RECIPIENT_ADDRESS> <TOKEN_TYPE> \ — program-id <PROGRAM_ID> Вы увидите идентификатор транзакции и детали, отображаемые в вашем терминале. Используйте этот идентификатор транзакции для проверки перевода, проверив свой кошелек или запросив идентификатор в блокчейн-эксплорере сети. Вот как выглядит транзакция в Eclipse Block Explorer: ⚠️ Передача Warp Route в эксплуатацию: при развертывании рабочих систем мы настоятельно рекомендуем избегать использования “горячих” ключей, подобных тем, что используются в этом руководстве. Вместо этого для повышения безопасности передайте право собственности через мультисиг (например, через Squads). Подведение итогов: экспансия SVM Экспансия SVM уже наступила, и это руководство было быстрой демонстрацией того, что возможно. Solana и Eclipse уже используют Hyperlane для бесшовного обмена сообщениями между сетями и мосты, и инструменты готовы к тому, чтобы вы начали создавать. ✨ Подробнее о SVM экспансии читайте здесь. Подробнее о Hyperlane Hyperlane — это открытая система взаимодействия. Она позволяет разработчикам подключаться к сети в любом месте и создавать приложения, которые могут легко и безопасно взаимодействовать между несколькими блокчейнами. Hyperlane — это полностью открытый исходный код и всегда свободное разрешение на создание.