sum-node-start.sh

Обзор

sum-node-start.sh — это скрипт оболочки (shell script), предназначенный для запуска узла приложения sum-node. Основная функция скрипта — ожидание появления файла с конфигурацией контрактов (sum_task_contracts.json), извлечение адресов смарт-контрактов из этого файла и запуск процесса sum-node с соответствующими параметрами. Скрипт обеспечивает корректную инициализацию узла с необходимыми адресами контрактов и настройками подключения к RPC и API.


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

Общая логика

  1. Скрипт выводит сообщение о том, что ожидает файл /deploy-data/sum_task_contracts.json.

  2. В цикле until проверяется наличие файла. Если файл не найден, скрипт делает паузу в 2 секунды и повторяет проверку.

  3. После появления файла с помощью утилиты jq происходит извлечение двух адресов контрактов:

    • SUMTASK_ADDRESS — адрес первого контракта из массива sumTasks.

    • SETTLEMENT_SUMTASK_ADDRESS — адрес второго контракта из массива sumTasks.

  4. Выводятся адреса для подтверждения.

  5. Запускается исполняемый файл /app/sum-node с параметрами:

    • --evm-rpc-urls — список RPC URL для подключения к Ethereum Virtual Machine (EVM).

    • --relay-api-url — URL API ретранслятора, передаваемый первым аргументом скрипта.

    • --contract-addresses — адреса контрактов, извлечённые из JSON.

    • --private-key — приватный ключ пользователя, передаваемый вторым аргументом скрипта.

    • --log-level — уровень логирования, установленный в info.


Детальный разбор

Используемые команды и параметры

Параметры запуска sum-node


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

./sum-node-start.sh https://relay-api.example.com abc123privatekey

Скрипт дождётся появления файла /deploy-data/sum_task_contracts.json, извлечёт адреса контрактов и запустит sum-node с указанными параметрами.


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

Таким образом, скрипт служит мостом между этапом деплоя контрактов и запуском узла приложения с корректными параметрами.


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


Диаграмма структуры и потока выполнения

flowchart TD
    A[Начало скрипта] --> B[Ожидание файла sum_task_contracts.json]
    B -->|Файл найден| C[Извлечение SUMTASK_ADDRESS]
    C --> D[Извлечение SETTLEMENT_SUMTASK_ADDRESS]
    D --> E[Вывод адресов контрактов]
    E --> F[Запуск процесса sum-node с параметрами]
    F --> G[sum-node работает]

Итог

sum-node-start.sh — это вспомогательный скрипт, обеспечивающий корректный старт ноды sum-node после успешного деплоя смарт-контрактов. Он выполняет ожидание конфигурационного файла, парсит необходимые данные и запускает приложение с нужными параметрами, что делает его важной частью запуска инфраструктуры узла в проекте.