Интеграция с Metalayer
Разработчики протоколов могут использовать Metalayer для отправки кросс-чейн сообщений и инициирования кросс-чейн чтений.
Ключевые понятия
Домены
Каждая сеть блокчейна идентифицируется уникальным номером домена в протоколе Metalayer. Этот идентификатор домена используется при указании цепочки назначения для межцепочечных сообщений.
Кросс-чейн операции
Metalayer поддерживает два типа кросс-чейн операций:
Записи: отправка сообщений и выполнение функций между сетями.
Чтения: Запрос данных из контрактов на других сетях.
Компоненты сообщения
Домен назначения: Целевая сеть блокчейна
Адрес получателя: Адрес контракта, который получит сообщение
Операции чтения: Необязательные запросы для выполнения на других сетях.
Данные вызова записи: Вызов функции для выполнения на цепочке назначения
Флаг окончания: Ждать ли завершения сети источника перед передачей
Абстракция газа
Metalayer обрабатывает кросс-чейн платежи за газ, позволяя разработчикам оплачивать выполнение сети назначения с помощью нативного токена сети источника.
Архитектура Системы
Архитектура компонентов
На схеме ниже показаны основные компоненты системы Metalayer и их взаимодействие:
Поток сообщений
Приведенная ниже схема последовательности действий иллюстрирует пошаговый процесс отправки сообщения по сети:
Требования к интеграции
Исходная сеть
Реализуйте протокольный контракт, вызывающий MetalayerRouter
Рассчитайте и включите соответствующую оплату за газ
Правильно кодируйте данные сообщения и операции чтения.
Сеть назначения
Реализация интерфейса IMetalayerRecipient
Обработка входящих сообщений и считывания результатов
Безопасная обработка кросс-чейн операций
Соображения безопасности
MetalayerRouter должен быть настроен на доверие в сети назначения. Не позволяйте вызывать функцию deliver
в вашем протоколе по какому-либо адресу, кроме локального MetalayerRouter.
Учитывайте требования к окончательности для вашего случая использования. Если вашему контракту необходимо дождаться окончательного завершения на сети-источнике перед обработкой сообщения, установите флаг _useFinalized
в значение true в функции диспетчеризации. Это значительно снижает риск перестройки вашего контракта.
Last updated