setup-network.sh

Обзор

setup-network.sh — это скрипт на Bash, предназначенный для полной настройки сетевой инфраструктуры игровой платформы. Скрипт автоматизирует развертывание смарт-контрактов, конфигурацию параметров сети, настройку валидаторов, интеграцию с внешними сервисами, генерацию документации и запуск мониторинга состояния сети. Основная цель — обеспечить единый и воспроизводимый процесс запуска игровой сети как в локальной среде, так и в продакшене.


Подробное описание

Основные функциональные блоки скрипта

Скрипт разбит на 7 последовательных шагов, каждый из которых отвечает за определённый этап настройки.


Переменные конфигурации

Пример переопределения переменных при запуске:

NETWORK=production RPC_URL=https://mainnet.infura.io/v3/yourkey PRIVATE_KEY=0x... ./setup-network.sh

Цвета для вывода

Для улучшения читаемости вывод в терминал окрашивается с помощью ANSI-кодов:


Подробный разбор шагов

Шаг 0: Создание необходимых директорий

mkdir -p deployments validators config scripts docs off-chain/abis

Создаются каталоги для хранения контрактов, конфигураций, скриптов, документации и артефактов оффчейн.


Шаг 1: Развёртывание смарт-контрактов

if [ "$NETWORK" = "local" ]; then
    make deploy-local
else
    make deploy-production
fi

Шаг 2: Конфигурация параметров сети

forge script script/ConfigureNetwork.s.sol --broadcast --rpc-url $RPC_URL --private-key $PRIVATE_KEY

Шаг 3: Настройка валидаторов

make setup-validators

Шаг 4: Конфигурация стейкинга токена MANA

make configure-mana-staking

Шаг 5: Интеграция с Symbiotic

if [ -n "$SYMBIOTIC_SETTLEMENT" ]; then
    make integrate-symbiotic
else
    echo -e "${YELLOW}Symbiotic infrastructure not available, using standalone mode${NC}"
fi

Шаг 6: Генерация документации

./scripts/generate-docs.sh

Шаг 7: Запуск мониторинга

./scripts/setup-monitoring.sh

Итог

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


Взаимодействие с другими частями системы


Пример использования

# Для локальной среды с настройками по умолчанию:
./setup-network.sh

# Для продакшен-сети с кастомным RPC и приватным ключом:
NETWORK=production RPC_URL=https://mainnet.infura.io/v3/yourkey PRIVATE_KEY=0x123abc... ./setup-network.sh

# С интеграцией Symbiotic:
SYMBIOTIC_SETTLEMENT=1 ./setup-network.sh

Важные детали реализации


Mermaid диаграмма: поток выполнения скрипта

flowchart TD
    Start([Начало])
    CreateDirs[Создание директорий]
    DeployContracts[Развёртывание контрактов]
    ConfigureNetwork[Конфигурация параметров сети]
    SetupValidators[Настройка валидаторов]
    ConfigureStaking[Конфигурация MANA стейкинга]
    CheckSymbiotic{SYMBIOTIC_SETTLEMENT установлен?}
    IntegrateSymbiotic[Интеграция с Symbiotic]
    StandaloneMode[Запуск в автономном режиме]
    GenerateDocs[Генерация документации]
    SetupMonitoring[Настройка мониторинга]
    Finish([Завершение и рекомендации])

    Start --> CreateDirs --> DeployContracts --> ConfigureNetwork --> SetupValidators --> ConfigureStaking --> CheckSymbiotic
    CheckSymbiotic -- Да --> IntegrateSymbiotic --> GenerateDocs
    CheckSymbiotic -- Нет --> StandaloneMode --> GenerateDocs
    GenerateDocs --> SetupMonitoring --> Finish

Заключение

setup-network.sh — ключевой скрипт для инициализации и запуска игровой сетевой инфраструктуры, упрощающий и стандартизирующий процесс настройки как для локальной разработки, так и для продакшен окружения. Благодаря пошаговой структуре и гибкой конфигурации, скрипт обеспечивает надежный старт и поддержку жизненного цикла игровой сети.