quick-deploy.sh


Обзор

quick-deploy.sh — это скрипт для быстрого развертывания проекта Symbiotic, автоматизирующий создание и запуск локальной сетевой инфраструктуры с помощью Docker Compose. Основная задача скрипта — упростить процесс настройки тестовой сети с заданным числом операторов, коммитеров и агрегаторов, а также обеспечить удобный мониторинг и управление развернутой сетью.

Скрипт проверяет существование рабочей директории temp-network, при необходимости удаляет её или повторно запускает сеть, генерирует конфигурацию через внешний скрипт generate_network.sh, запускает сервисы и выводит полезные рекомендации по работе с сетью.


Подробное описание компонентов

Переменные

Значения параметров можно передавать при запуске скрипта, иначе используются значения по умолчанию.


Функции

print_status()

Выводит информационное сообщение в зелёном цвете.

Параметры:

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

print_status "Запуск процесса..."

print_warning()

Выводит предупреждение в жёлтом цвете.

Параметры:

Пример:

print_warning "Папка temp-network уже существует"

print_error()

Выводит сообщение об ошибке красным цветом.

Параметры:

Пример:

print_error "Не удалось сгенерировать сеть"

print_header()

Выводит заголовок с разделителями синим цветом.

Параметры:

Пример:

print_header "Symbiotic Quick Deploy"

main()

Основная функция скрипта, выполняющая полный цикл развертывания сети:

  1. Выводит заголовок и конфигурацию (число операторов, коммитеров, агрегаторов).

  2. Проверяет наличие директории temp-network:

    • Если директория существует, предлагает удалить её или повторно запустить сеть.

    • Если выбран повторный запуск, выполняет docker compose up -d и показывает статус.

  3. Если директории нет, вызывает внешний скрипт generate_network.sh с параметрами для генерации конфигурации.

  4. Запускает сеть через docker compose up -d в папке temp-network.

  5. Ожидает 10 секунд для запуска сервисов.

  6. Выводит статус запущенных контейнеров.

  7. Показывает рекомендации по управлению сетью и адреса основных сервисов (RPC и другие).

  8. Предлагает пример команды для создания тестового задания с использованием cast send.

Параметры функции:

Возвращаемые значения:


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

Если передан параметр --help или -h, скрипт выведет справочную информацию по использованию с описанием аргументов и примером запуска, после чего завершится.


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


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


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

# Запуск с конфигурацией по умолчанию (4 оператора, 1 коммитер, 1 агрегатор)
./quick-deploy.sh

# Запуск с 6 операторами, 2 коммитерами, 2 агрегаторами
./quick-deploy.sh 6 2 2

# Получить справку
./quick-deploy.sh --help

Визуальное представление структуры и потоков выполнения

flowchart TD
    A[Запуск скрипта] -->|Параметры? --help|-H[Вывод справки и выход]
    A -->|Иначе| B[main()]

    B --> C{Папка temp-network существует?}
    C -->|Да| D[Предложить удалить или использовать существующую]
    D -->|Удалить| E[Удалить temp-network и продолжить]
    D -->|Использовать| F[cd temp-network и docker compose up -d]
    F --> G[Показать статус сети и завершить]

    E --> H[Вызов generate_network.sh]
    C -->|Нет| H

    H --> I{Успех генерации?}
    I -->|Нет| J[Вывести ошибку и завершить]
    I -->|Да| K[cd temp-network и docker compose up -d]
    K --> L[Ожидание 10 секунд]
    L --> M[Показать статус сети]
    M --> N[Вывести инструкции и адреса сервисов]
    N --> O[Завершение]

    style H fill:#aaf,stroke:#333,stroke-width:2px
    style K fill:#afa,stroke:#333,stroke-width:2px

Итог

quick-deploy.sh — удобный и надёжный bash-скрипт для быстрого локального развертывания сетевой инфраструктуры проекта Symbiotic с возможностью гибкой настройки числа компонентов, контроля состояния и получения рекомендаций по работе с сетью. Скрипт значительно упрощает подготовку тестовой среды и взаимодействие с ней.