5.7 KiB
Точка входа — Генезис 2026-05-09 00:00 UTC
Bootstrap-пакет Montana-сети. Любой клиент с этим пакетом подключается к сети через гарантированно живой узел и далее получает peer-list для работы в mesh.
Корень доверия
Алгоритм: ed25519
Публичный: MtE485L/O87feImV8XjSdPPskgestVd7mqJvKo9MRas=
Отпечаток: e4eb11c9d198ab80
Создан: 2026-05-09 00:00 UTC
Ротация: запрещена (часть Генезиса)
Приватный: macOS Keychain, service=montana-genesis-root, account=rootkey
Этот ключ подписывает: HEAD-коммит репозитория Ничто, peer-announcements в mesh, любые Genesis-обновления (которых не должно быть).
Точка входа VPN (eternal entry)
Протокол: VLESS + Reality + XTLS-Vision
Маска SNI: www.googletagmanager.com
Порт: 443
Public key: EkTs2aGKnFNgFZ0f7wgft2sJp3VjwFQqIrwkZKM4gD8
Short ID: 302805bc0c25e504
UUID: e6d355e2-2d79-4c96-a373-3b0e6b6f4b0d
Адресация (каскад резолвинга)
- DNS —
cdn.montana.quest→ IP-пул узлов. - TON DNS —
cdn.junomoneta.ton→ IP-пул узлов (когда блокчейн-запись прописана). - IP-fallback — клиент берёт IP из локального пула, минуя резолвинг.
IP-пул (реплицируемые узлы)
Helsinki 91.132.142.42 AS24940 (Hetzner)
Frankfurt 89.19.208.158 AS9123 (Timeweb)
Moscow 176.124.208.93 AS9123 (Timeweb)
Все узлы держат идентичный xray-конфиг с тем же UUID + Reality keypair. Падение любого узла не выводит сеть из строя — DNS round-robin или клиентский fallback переключают на следующий.
Готовые ссылки
vless://e6d355e2-2d79-4c96-a373-3b0e6b6f4b0d@cdn.montana.quest:443?flow=xtls-rprx-vision&type=tcp&headerType=none&security=reality&fp=chrome&sni=www.googletagmanager.com&pbk=EkTs2aGKnFNgFZ0f7wgft2sJp3VjwFQqIrwkZKM4gD8&sid=302805bc0c25e504#Montana-FIN
vless://e6d355e2-2d79-4c96-a373-3b0e6b6f4b0d@cdn.junomoneta.ton:443?flow=xtls-rprx-vision&type=tcp&headerType=none&security=reality&fp=chrome&sni=www.googletagmanager.com&pbk=EkTs2aGKnFNgFZ0f7wgft2sJp3VjwFQqIrwkZKM4gD8&sid=302805bc0c25e504#Montana-TON
Источник Genesis (зеркала репозитория Ничто)
Репозиторий проекта реплицируется на всех Genesis-узлах. Любой узел = полноценный источник для bootstrap нового узла.
Master https://hub.montana.quest/efir369999/montana (Gitea, Moscow)
Mirror-1 https://91.132.142.42/ничто.git (git-http-backend, Helsinki)
Mirror-2 https://89.19.208.158/ничто.git (git-http-backend, Frankfurt)
TON https://junomoneta.ton/ничто.git (через TON-резолвер)
Реплика синхронизируется с master через post-receive hook на Gitea: каждый push на master triggers git push --mirror на оба mirror-узла.
Bootstrap нового узла
# 1. Резолвинг живого источника
SOURCE=$(montana-resolve junomoneta.ton || echo "91.132.142.42")
# 2. Клонирование репозитория
git clone "https://${SOURCE}/ничто.git" /opt/montana
# 3. Верификация HEAD-подписи против Genesis root pubkey
montana-verify-head /opt/montana \
--pubkey "MtE485L/O87feImV8XjSdPPskgestVd7mqJvKo9MRas=" \
|| { echo "Genesis verification FAILED"; exit 1; }
# 4. Инициализация узла из проверенной папки
montana-node init --from-folder /opt/montana \
--genesis "Montana/Russian/Genesis/ГЕНЕЗИС_2026-05-09_00-00_UTC"
# 5. Получение peer-list и переход на mesh-операции
montana-node peers fetch --bootstrap-via VLESS
Договорённости (часть Генезиса)
- Один Reality-приватник на все реплики. Компрометация любого узла = публикация ВПН для всех. Это сознательный выбор: VPN — публичный сервис, не приватный канал.
- Genesis root pubkey не ротируется. Если когда-либо потребуется — это новый Генезис (новая дата, новая папка), не апдейт текущего.
- Bootstrap-пакет append-only. Содержимое
ГЕНЕЗИС_2026-05-09_00-00_UTC/неизменно после публикации. Новые поля (новые узлы, новые домены) добавляются как отдельные документы рядом с этим, со ссылкой обратно на корень.
Масштабирование
Текущая схема (DNS round-robin + 3 узла) работает до ~10K активных клиентов. При росте:
- 10K → 100K: anycast IP, BGP-объявления своего префикса, узлы по континентам.
- 100K → 1M: federated
/vpn/subс автоматической агрегацией всех узлов сети. - 1M+: DHT peer-discovery поверх Genesis bootstrap. Genesis остаётся как «первый звонок», DHT берёт на себя routing.