Довідник конфігурації

Сервіси

Запуск екземпляра Private Channels означає керування такими сервісами Docker Compose:

КонтейнерРоль
private-channel-postgres-primaryБаза даних стану вузла запису (PostgreSQL 16)
private-channel-postgres-replicaБаза даних стану вузла читання (потокова репліка)
private-channel-postgres-indexerБаза даних індексатора та оператора
private-channel-write-nodeПриймає та виконує транзакції (порт 8900, лише loopback)
private-channel-read-nodeОбробляє RPC-запити на читання (порт 8901, лише loopback)
private-channel-gatewayМаршрутизує запити між вузлами запису та читання; застосовує RBAC (порт 8899)
private-channel-indexer-solanaВідстежує події Deposit у Solana через Yellowstone gRPC
private-channel-indexer-private-channelВідстежує події Burn у каналі через RPC-опитування
private-channel-operator-solanaКарбує токени каналу після підтвердження депозитів
private-channel-operator-private-channelВикликає ReleaseFunds у Mainnet після підтвердження виведень
private-channel-authНеобов'язковий сервіс JWT/RBAC (профіль Docker: auth)

Також включено контейнери спостережуваності (prometheus, grafana, cadvisor).

Шлюз

Ці параметри мають розумні значення за замовчуванням для налаштування Docker Compose у devnet. Змінюйте їх лише при запуску шлюзу поза Docker або розгортанні у production.

Змінна середовищаЗа замовчуваннямОбов'язковоОпис
GATEWAY_PORT8899 (devnet)НіПорт прослуховування
GATEWAY_WRITE_URLhttp://write-node:8900 (значення з env-файлу devnet; немає вбудованого значення за замовчуванням у бінарнику)ТакURL вузла запису — запити sendTransaction надходять сюди
GATEWAY_READ_URLhttp://read-node:8901 (значення з env-файлу devnet; немає вбудованого значення за замовчуванням у бінарнику)ТакURL вузла читання — всі інші RPC-методи надходять сюди
GATEWAY_CORS_ALLOWED_ORIGIN*НіЗначення заголовка Access-Control-Allow-Origin
JWT_SECRET-НіВмикає RBAC; повинен збігатися з JWT_SECRET сервісу автентифікації
AUTH_DATABASE_URL-Якщо встановлено JWT_SECRETБД автентифікації для перевірки належності гаманців
AUTH_DATABASE_MAX_CONNECTIONS10НіРозмір пулу з'єднань БД автентифікації
METRICS_PORT9101НіПорт метрик Prometheus
RUST_LOGinfoНіРівень логування

GATEWAY_WRITE_URL та GATEWAY_READ_URL використовують імена сервісів Docker Compose (write-node, read-node) при запуску у Docker. Використовуйте еквіваленти localhost лише при запуску бінарника шлюзу безпосередньо поза Docker.

Власне вбудоване значення за замовчуванням для GATEWAY_PORT у бінарнику шлюзу — 8898. .env.example та .env.devnet обидва встановлюють його рівним 8899, що й використовується у налаштуванні Docker Compose (у versions.env зберігаються лише версії інструментального ланцюжка та образів, але не порти сервісів). Значення 8898 за замовчуванням застосовується лише якщо ви запускаєте бінарник безпосередньо без env-файлу.

GATEWAY_CORS_ALLOWED_ORIGIN за замовчуванням має значення *, яке дозволяє будь-якому джерелу викликати шлюз із браузера. Обмежте це значення фактичним джерелом вашого застосунку перед будь-яким розгортанням у production.

Вузол запису та вузол читання

Повний довідник конфігурації вузла запису та вузла читання знаходиться у docs/CONFIG.md у репозиторії.

Сервіс автентифікації

Змінна середовищаОбов'язковоОпис
JWT_SECRETТакСекрет підпису HS256; повинен збігатися з JWT_SECRET шлюзу
AUTH_PORTНі (за замовчуванням 8903)Порт прослуховування
AUTH_DATABASE_URLТакРядок підключення PostgreSQL для бази даних автентифікації
CORS_ALLOWED_ORIGINНі (за замовчуванням *)Значення заголовка Access-Control-Allow-Origin для цього сервісу (незалежно від GATEWAY_CORS_ALLOWED_ORIGIN шлюзу)
AUTH_DATABASE_MAX_CONNECTIONSНі (за замовчуванням 10)Розмір пулу з'єднань БД автентифікації

Довідник портів сервісів

СервісПорт хостаПрив'язка
Шлюз8899Всі інтерфейси
Вузол запису8900Лише loopback
Вузол читання8901Лише loopback
Стример8902Лише внутрішній (expose, не публікується на хост); не входить до стеку devnet
Сервіс автентифікації8903Всі інтерфейси
Метрики оператора9102, 9103Всі інтерфейси
Grafana37429Всі інтерфейси
Prometheus9090Всі інтерфейси
cAdvisor8080Всі інтерфейси

Примітка щодо безпеки: Порти вузла запису та вузла читання прив'язані лише до loopback (127.0.0.1). Шлюз, сервіс автентифікації, метрики оператора, Grafana, Prometheus та cAdvisor — усі публікуються на кожен мережевий інтерфейс у налаштуванні Docker Compose для devnet. Захистіть їх брандмауером на рівні хоста або мережі для будь-якого використання поза локальною розробкою; RBAC покриває лише власні JSON-RPC-методи шлюзу, але не ці інші сервіси. Стример є винятком: це неавтентифікований внутрішній потік, який Docker ніколи не публікує на хост.

Мережеві вимоги

Дивіться docs/TECHNICAL_REQUIREMENTS.md у репозиторії для отримання інформації про правила брандмауера та вимоги до пропускної здатності.

Is this page helpful?

Зміст

Редагувати сторінку