DeployDVNISM.s.sol
Обзор
Данный файл представляет собой скрипт для развертывания основных компонентов системы DVN/ISM в блокчейн-среде Ethereum (и совместимых сетях). Скрипт автоматизирует процесс деплоя нескольких смарт-контрактов — SymbioticDVN, SymbioticISM, Settlement и CrossChainVerificationManager — а также осуществляется базовая настройка их взаимодействия и прав доступа.
Основная задача файла — упростить и стандартизировать процесс развертывания комплексного кроссчейн-решения для верификации и управления проверками в распределённых системах с несколькими блокчейнами.
Подробное описание
Контракт: DeployDVNISM
Контракт DeployDVNISM наследует от Script (из Forge-Std) и содержит единственную функцию run(), которая инициирует процесс деплоя и настройки компонентов.
Метод: run()
Описание: Основная функция скрипта, запускающая процедуру развертывания и конфигурации.
Параметры: отсутствуют.
Возвращаемое значение: отсутствует.
Логика работы:
Получение приватного ключа деплоя из переменных окружения (
PRIVATE_KEY) и вычисление адреса деплоя.Логирование адреса и баланса деплоя.
Начало широковещательной трансляции транзакций с использованием
vm.startBroadcast.Последовательное развертывание контрактов:
SymbioticDVN— основной контракт системы DVN.SymbioticISM— контракт для межцепочечной безопасности (Interchain Security Module).Settlement— имитационный (mock) контракт для системы расчетов (в продакшне предполагается использовать существующий контракт).CrossChainVerificationManager— менеджер верификаций, объединяющий адреса вышеуказанных контрактов и контролирующий их взаимодействие.
Предоставление
CrossChainVerificationManagerадминистративных и паузерских ролей в контрактах DVN и ISM, что позволяет менеджеру управлять этими контрактами.Добавление в контракты DVN и ISM поддерживаемых цепочек/доменов (Ethereum, Polygon, Arbitrum), задающих области действия кроссчейн-взаимодействия.
Вывод рекомендаций по дальнейшей настройке (добавление валидаторов, настройка кворума, расширение поддерживаемых сетей).
Завершение широковещательной передачи транзакций (
vm.stopBroadcast).
Пример использования:
forge script DeployDVNISM.s.sol --broadcast --private-key $PRIVATE_KEY
Импортируемые сущности
Script — базовый класс для скриптов, предоставляемый Forge.
console — утилита для логирования в консоль во время исполнения.
SymbioticDVN, SymbioticISM, CrossChainVerificationManager, Settlement — основные смарт-контракты системы, отвечающие за разные функциональные области: DVN (Distributed Verification Network), ISM (Interchain Security Module), менеджмент верификаций и расчёты.
Важные детали реализации
Используется приватный ключ из переменных окружения для обеспечения безопасности доступа к аккаунту, осуществляющему деплой.
Роли безопасности (
DEFAULT_ADMIN_ROLE,PAUSER_ROLE) назначаются менеджеру, что централизует контроль и управление.Добавление поддерживаемых цепочек/доменов в DVN и ISM задаёт базовую конфигурацию для кроссчейн-операций.
В качестве примера используется "mock" контракт Settlement, который в реальной сети должен быть заменён на существующий контракт.
Логирование каждого этапа помогает отследить успешность операций и адреса развернутых контрактов.
Взаимодействие с другими частями системы
SymbioticDVN и SymbioticISM — ядро кроссчейн-инфраструктуры, взаимодействуют с Chain Verification Manager для координации проверок.
CrossChainVerificationManager — агрегатор и контроллер, управляющий ролями и обеспечивающий синхронизацию между DVN, ISM и Settlement.
Settlement — компонент расчётов, с которым взаимодействуют для обеспечения финализации и подтверждения операций.
Скрипт служит точкой старта и конфигурации всей системы, обеспечивая корректную инициализацию и предоставляя рекомендации по дальнейшей настройке.
Диаграмма структуры файла
classDiagram
class DeployDVNISM {
+run()
}
DeployDVNISM ..> SymbioticDVN : deploys
DeployDVNISM ..> SymbioticISM : deploys
DeployDVNISM ..> Settlement : deploys
DeployDVNISM ..> CrossChainVerificationManager : deploys
class SymbioticDVN {
+grantRole(bytes32 role, address account)
+addSupportedChain(uint256 chainId)
+DEFAULT_ADMIN_ROLE: bytes32
+PAUSER_ROLE: bytes32
}
class SymbioticISM {
+grantRole(bytes32 role, address account)
+addSupportedDomain(uint256 domainId)
+DEFAULT_ADMIN_ROLE: bytes32
+PAUSER_ROLE: bytes32
}
class Settlement {
<<mock>>
}
class CrossChainVerificationManager {
<<constructor(address dvn, address ism, address settlement, address deployer)>>
}
Итоги
Файл DeployDVNISM.s.sol — это ключевой скрипт для автоматизированного развертывания и базовой конфигурации кроссчейн-системы DVN/ISM. Он гарантирует корректное создание контрактов, назначение ролей и начальную настройку поддерживаемых сетей. Скрипт упрощает запуск комплексной инфраструктуры для безопасной и управляемой межцепочечной верификации и взаимодействия.
Для успешного использования рекомендуется после запуска дополнительно настроить валидаторов и параметры кворума через методы manager.addValidator() и соответствующие функции, а также расширять список поддерживаемых цепочек в зависимости от задач проекта.