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

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Интеграция с Hyperlane
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1056
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

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

Hyperlane — permissionless interoperability protocol. Ключевое отличие от Axelar и LayerZero: любой может деплоить Hyperlane на любой chain без разрешения протокола. Это делает его подходящим для новых L2/L3, appchains и кастомных сред, где другие протоколы ещё не присутствуют.

Архитектура

Hyperlane состоит из:

  • Mailbox — смарт-контракт на каждой цепи, через который отправляются и получаются сообщения
  • Interchain Security Module (ISM) — кастомизируемая верификация сообщений. Можно использовать multisig validators, optimistic security, ZK proofs
  • Relayers — off-chain агенты, которые передают сообщения между цепями
  • Validators — подписывают checkpoint'ы состояния Mailbox

ISM — кастомная безопасность

Уникальность Hyperlane: каждый контракт-получатель определяет свой ISM. Вы сами решаете как верифицировать входящие сообщения.

Варианты ISM:

  • Multisig ISM — M-of-N подписей от валидаторов (по умолчанию)
  • Aggregation ISM — комбинация нескольких ISM (AND/OR логика)
  • Routing ISM — разные ISM для разных source chains
  • Optimistic ISM — оптимистичная верификация с периодом fraud proof
  • ZK ISM — верификация через zero-knowledge proofs (в разработке)

Отправка сообщений

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {IMailbox} from "@hyperlane-xyz/core/contracts/interfaces/IMailbox.sol";

contract HyperlaneMessageSender {
    IMailbox public mailbox;
    
    constructor(address _mailbox) {
        mailbox = IMailbox(_mailbox);
    }
    
    function sendMessage(
        uint32 destinationDomain,    // domain ID целевой цепи
        bytes32 recipientAddress,    // bytes32 адрес контракта-получателя
        bytes calldata messageBody
    ) external payable {
        // Рассчитываем стоимость газа для доставки
        uint256 fee = mailbox.quoteDispatch(destinationDomain, recipientAddress, messageBody);
        require(msg.value >= fee, "Insufficient gas payment");
        
        bytes32 messageId = mailbox.dispatch{value: fee}(
            destinationDomain,
            recipientAddress,
            messageBody
        );
        
        emit MessageSent(messageId, destinationDomain);
    }
}

Получение сообщений

import {IMessageRecipient} from "@hyperlane-xyz/core/contracts/interfaces/IMessageRecipient.sol";

contract HyperlaneMessageReceiver is IMessageRecipient {
    // Маппинг разрешённых отправителей
    mapping(uint32 => bytes32) public enrolledSenders;
    
    function handle(
        uint32 origin,          // domain ID исходной цепи
        bytes32 sender,         // адрес отправителя (bytes32)
        bytes calldata message  // тело сообщения
    ) external payable override {
        // Проверяем что вызов от Mailbox
        require(msg.sender == address(mailbox), "Only mailbox");
        
        // Проверяем что отправитель доверенный
        require(enrolledSenders[origin] == sender, "Unknown sender");
        
        // Обрабатываем сообщение
        (address recipient, uint256 amount) = abi.decode(message, (address, uint256));
        _processMessage(origin, recipient, amount);
    }
}

Domain IDs

Hyperlane использует собственные domain IDs (отличаются от chainId для некоторых цепей):

Chain Domain ID
Ethereum 1
Polygon 137
Arbitrum 42161
Optimism 10
Base 8453
BSC 56

Кастомный ISM с multisig

import {IInterchainSecurityModule} from "@hyperlane-xyz/core/contracts/interfaces/IInterchainSecurityModule.sol";
import {IMultisigIsm} from "@hyperlane-xyz/core/contracts/interfaces/isms/IMultisigIsm.sol";

contract MyCustomISM is IInterchainSecurityModule {
    address[] public validators;
    uint8 public threshold;
    
    function moduleType() external pure override returns (uint8) {
        return uint8(Types.LEGACY_MULTISIG);
    }
    
    function verify(
        bytes calldata metadata,
        bytes calldata message
    ) external override returns (bool) {
        // Кастомная верификация логика
        // Например: проверяем что минимум threshold из validators подписали checkpoint
        return _verifyMultisig(metadata, message);
    }
}

Деплой на новую цепь

Основное преимущество Hyperlane — permissionless deployment. Для деплоя на AppChain:

# Установка Hyperlane CLI
npm install -g @hyperlane-xyz/cli

# Деплой Mailbox и ISM на новую цепь
hyperlane deploy core \
  --chains myappchain \
  --key 0xYourPrivateKey

# Регистрация валидаторов
hyperlane deploy ism multisig \
  --chains myappchain \
  --validators 0xValidator1,0xValidator2,0xValidator3 \
  --threshold 2

Интеграция с Hyperlane — 2-3 недели для базового GMP. Особенно ценен для: кастомных L2/L3 (Orbit chains, OP Stack chains), где нужна быстрая интеграция без ожидания поддержки от других протоколов; приложений, требующих кастомного ISM (специфическая security модель).