Интеграция с Metalayer

Разработчики протоколов могут использовать Metalayer для отправки кросс-чейн сообщений и инициирования кросс-чейн чтений.

Ключевые понятия

Домены

Каждая сеть блокчейна идентифицируется уникальным номером домена в протоколе Metalayer. Этот идентификатор домена используется при указании цепочки назначения для межцепочечных сообщений.

Кросс-чейн операции

Metalayer поддерживает два типа кросс-чейн операций:

  • Записи: отправка сообщений и выполнение функций между сетями.

  • Чтения: Запрос данных из контрактов на других сетях.

Компоненты сообщения

  • Домен назначения: Целевая сеть блокчейна

  • Адрес получателя: Адрес контракта, который получит сообщение

  • Операции чтения: Необязательные запросы для выполнения на других сетях.

  • Данные вызова записи: Вызов функции для выполнения на цепочке назначения

  • Флаг окончания: Ждать ли завершения сети источника перед передачей

Абстракция газа

Metalayer обрабатывает кросс-чейн платежи за газ, позволяя разработчикам оплачивать выполнение сети назначения с помощью нативного токена сети источника.

Архитектура Системы

Архитектура компонентов

На схеме ниже показаны основные компоненты системы Metalayer и их взаимодействие:

Поток сообщений

Приведенная ниже схема последовательности действий иллюстрирует пошаговый процесс отправки сообщения по сети:

Требования к интеграции

Исходная сеть

  • Реализуйте протокольный контракт, вызывающий MetalayerRouter

  • Рассчитайте и включите соответствующую оплату за газ

  • Правильно кодируйте данные сообщения и операции чтения.

Сеть назначения

  • Реализация интерфейса IMetalayerRecipient

  • Обработка входящих сообщений и считывания результатов

  • Безопасная обработка кросс-чейн операций

Соображения безопасности

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

Учитывайте требования к окончательности для вашего случая использования. Если вашему контракту необходимо дождаться окончательного завершения на сети-источнике перед обработкой сообщения, установите флаг _useFinalized в значение true в функции диспетчеризации. Это значительно снижает риск перестройки вашего контракта.

Last updated