Запуск стенда¶
Каталоги и зависимости¶
Репозитории должны лежать рядом в одном workspace, например:
computechain/
computechain/ # блокчейн
monitoring/ # Prometheus + Grafana
docs/ # эта документация
Для полного стека нужны Linux, Python 3.12, pip, работающий Docker Engine и Compose. Локальные инструменты блокчейна устанавливаются один раз:
cd /root/computechain/computechain
python3 scripts/setup_comet.py
Установка идёт в .tools/ родительского workspace, не глобально.
На текущем хосте разработки инструменты уже установлены.
Запуск и остановка¶
./start_test.sh
./start_test.sh status
./cleanup.sh
Запускаются 4 валидатора равной мощности + 1 full node и мониторинг. Повторный запуск сохраняет исправный работающий стенд. Остановка сохраняет ключи, историю, signing state, логи и monitoring volumes. При частичном старте сначала проверьте состояние, затем выполните safe stop/start; чужие процессы не заменяются.
Данные по умолчанию: /root/computechain/.runtime/comet-staking-devnet/.
Для restart нельзя удалять или откатывать validator signing state.
Отдельный эксперимент создавайте с новым --dir.
Без Docker: ./start_test.sh up --no-monitoring --no-docs --no-web.
Мониторинг можно добавить позже: ./start_test.sh monitoring-up.
Мониторинг по локальной сети¶
На текущем хосте:
SSH-туннель не нужен. Launcher определяет и сохраняет private LAN IPv4;
можно указать его явно: --monitoring-host 192.168.0.100.
Логин Grafana — admin; случайный пароль хранится в
/root/computechain/.runtime/comet-staking-devnet/monitoring/monitoring.env (0600).
Grafana/Prometheus привязаны к выбранному LAN-адресу для доверенной локальной сети. Grafana требует входа; у Prometheus нет LAN-аутентификации. Не пробрасывайте эти HTTP-сервисы в Интернет. NAT не делает клиентов локальной сети доверенными. ABCI, node RPC, P2P и exporters метрик остаются на loopback.
Нагрузка подписанными переводами¶
./start_test.sh load --mode medium --duration 60
./start_test.sh load-stop
Цели low/medium/high — 3/25/100 TPS. Свой режим:
./start_test.sh load --tps 50 --duration 600 --accounts 16 --window 8.
Цель не гарантирует throughput: короткий локальный high-прогон показал около
36 confirmed TPS; это не тест предельной мощности или 24-часовой стабильности.
Генератор отправляет только TRANSFER. Отдельные кошельки — в <devnet>/load-wallets/;
личный keystore не используется. Funding идёт до sending duration; при остановке
даётся до 30 секунд на drain. Одновременно разрешён один generator/faucet writer.
После завершения нагрузки ноды продолжают работать.
Состояние и диагностика¶
./start_test.sh status
./start_test.sh monitoring-status
tail -f ../.runtime/comet-staking-devnet/load.log
В load-latest.json отдельно считаются отправленные, подтверждённые, отклонённые,
ошибки исполнения/RPC и unresolved. Приём в mempool не считается успехом.
Логи: appN.log, engineN.log, exporter.log, load.log.
В мониторинге должно быть 7 healthy targets: 5 Comet-нод, exporter, Prometheus.
Другой стенд настраивается через --dir, --base-port, --grafana-port,
--prometheus-port; нужен свободный диапазон блокчейна от base до base+145.
Существующий каталог использует сохранённые network/monitoring settings.
Подробности реализации — в COMETBFT.md репозитория блокчейна.
Локальные интерфейсы¶
- Сайт: EN/RU обзор и наблюдаемый статус сети.
- Explorer: native blocks/TX, аккаунты, валидаторы и поиск.
- Документация / русская версия.
Обычный up включает все три. Команды: docs-up, website-up, explorer-up
и варианты -down, -status, -logs; они не перезапускают цепь. После правки
Markdown повторите docs-up. cleanup.sh останавливает интерфейсы, сохраняя
данные. --no-docs / --no-web пропускают запуск; --docs-port, --website-port,
--explorer-port выбирают UI-порты. В LAN открыты только read-only UI gateways;
explorer backend/frontend и native RPC остаются loopback.
Explorer — наблюдатель, не независимое доказательство: высота индекса и текущего
account state могут различаться и явно показаны в интерфейсе.
Новый follower через state sync¶
Из core repository, при работающей собственной локальной сети:
./start_test.sh checkpoint --checkpoint ../.runtime/comet-staking-devnet/checkpoint-01.json --witnesses 0 1 2
./start_test.sh state-sync --node 5 --checkpoint ../.runtime/comet-staking-devnet/checkpoint-01.json --witnesses 0 1 2
Выбирайте новое имя: export не перезаписывает anchor. Тестовый trust window —
всего 30 секунд; после expiry нужен свежий доверенный файл, не увеличение срока.
Допускаются только свежие non-genesis followers; история/signing state сохраняются.
Неудачный partial bootstrap требует инспекции, не автоматического reset.
Обычные offline-ноды используют restart/catch-up. Отчёт —
<devnet>/state-sync-nodeN.json; совпадение RPC-ответов не удостоверяет checkpoint.
Stake и делегирование тестовых средств¶
./start_test.sh stake --validator-node 4 --amount 6000000000000000000000
./start_test.sh delegate --validator-node 4 --amount 100000000000000000000
./start_test.sh undelegate --validator-node 4 --amount 100000000000000000000
./start_test.sh unstake --validator-node 4 --amount 6000000000000000000000
Суммы — базовые единицы: здесь 6 000 и 100 CPC. Stake подписывается локальным
owner-ключом ноды, funding автоматически идёт из devnet faucet. Делегирует faucet.
Перед командами остановите load. Native updates действуют с H+2; вывод требует
H+2+100 блоков И 60 секунд. V2 не мигрируется: перед v3 на тех же портах
остановите старый стенд явно:
./cleanup.sh --dir /root/computechain/.runtime/comet-devnet.
Ключи, данные и старые monitoring volumes сохраняются.