Запустить свой узел-исполнитель (worker)
Playground TrustLang работает по трёхуровневой схеме: статический сайт → балансировщик (playground) → множество исполнительных VPS (worker). Воркеры сами подключаются к балансировщику (исходящее соединение — двойной NAT не мешает), регистрируются и выполняют транспиляцию Trust → C++. Когда свободных воркеров нет, playground отвечает «нет воркеров» со ссылкой на эту инструкцию.
Вы можете помочь проекту и запустить свой узел-исполнитель за несколько минут.
Требования
- Linux-сервер (VPS) с
systemdи возможностью исходящего TCP-соединения к балансировщику (обычный интернет). - Дистрибутив
trust-lang-*.tar.gz(содержитtrust-playgroundиtrust-lsp). - Токен воркера (64 hex-символа) и URL балансировщика — выдаются администратором.
Шаги
-
Получите токен у администратора playground (
label+ токен). Воркер аутентифицируется этим токеном; при отзыве токена доступ прекращается. -
Скопируйте и соберите дистрибутив (или запросите у администратора):
cmake -B _build && cmake --build _build --target trust-playground trust-lsp cmake --build _build --target package -
Запустите воркер напрямую (без root и без скрипта установки). Он читает настройки из
trust-playground.confрядом с бинарником; если файла нет — укажите обязательные опции в командной строке, и они сохранятся в файл как настройки по умолчанию:./trust-playground --playground-url https://playground.trust-lang.net \ --token <ТОКЕН> --max-parallel "$(nproc)" --lsp /path/to/trust-lspВ консоли появится сообщение
settings saved to ./trust-playground.conf as defaultsи запустится воркер (статистика в реальном времени). В следующий раз достаточно:./trust-playgroundИли в фоне:
nohup ./trust-playground >> trust-playground-worker.log 2>&1 &Остановка в фоне:
pkill -x trust-playground. systemd/root не используются.В консоли воркер периодически выводит статистику:
uptime, занятые слоты, число выполненных/упавших задач, состояние соединения с балансировщиком (connected=yes/no).
Настройка и лимиты
Параметры воркера редактируются в trust-playground.conf рядом с бинарником
(или через CLI, затем --save-config), секция worker.:
worker.playground_url=https://playground.trust-lang.net
worker.token=<ТОКЕН>
worker.lsp_bin=/opt/trust-playground/bin/trust-lsp
worker.max_parallel=8 # параллельных задач (обычно = число ядер)
worker.max_memory_mb=512 # лимит памяти на задачу
worker.max_output_kb=2048 # лимит результата
worker.job_timeout=30 # таймаут одной транспиляции
worker.stats_interval_ms=10000 # период вывода статистики
worker.project_name=my-project # имя проекта — в имени скачиваемого build-архива (default: trust-project)
worker.lsp_opts=-Wsigil=ignore # доп. опции, всегда передаваемые в trust-lsp (--json), пробрасываются в pipeline
Имя скачиваемого build-архива (<project>.tar.gz) берётся из worker.project_name:
если опция не задана — используется trust-project.tar.gz.
После правки конфига — перезапустите воркер (Ctrl+C / перезапуск в фоне).
Безопасность
- Воркер подключается к балансировщику по HTTPS (
worker.playground_url); для этого на хосте должен быть установленcurl(используется системный TLS-стек). - Токен аутентифицирует воркера; без токена балансировщик отклоняет запросы.
- Транспиляция выполняется в изолированном субпроцессе с ограничениями памяти, времени и размера вывода.