montana/Формальная Документация/11 Тестовая Сеть/Запуск-узла-для-всех.md

206 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Как запустить узел Монтаны — для не-программиста
**Версия:** 1.0
**Аудитория:** человек который умеет открыть терминал и копировать команды.
## Что это даёт
Запустив узел, вы:
- Становитесь оператором сети Монтана.
- Участвуете в лотерее каждое окно (≈ 60 секунд).
- Если ваш узел выигрывает — получаете эмиссию TC за это окно.
- Помогаете сети существовать (любая дополнительная нода = независимая реплика канона).
Никакой регистрации, KYC, депозита не требуется. Sybil-защита через время — порода узла = ≈ 10 часов работы CPU на регистрацию.
## Что вам понадобится
### Железо
Минимум:
- Любой компьютер с x86_64 или ARM CPU 2017 года или новее.
- 2 ГБ RAM свободно.
- 50 ГБ диска свободно.
- Постоянное интернет-соединение (10+ Мбит/с).
Рекомендуется:
- Современный CPU с SHA-NI (Intel 11+ Gen / AMD Ryzen 5+) или Apple Silicon — окно крутится за 1020 секунд, потом простой.
- Стационарный компьютер или мини-ПК (а не ноутбук — ноутбук будет постоянно греться).
- Стационарный IP или хотя бы стабильный за NAT.
### Что НЕ нужно
- ❌ ASIC.
- ❌ Стейк (ваших монет на депозите).
- ❌ KYC.
- ❌ Платная подписка.
## Установка (10 минут)
### Шаг 1. Откройте терминал
- **macOS:** Cmd+Space → введите "Terminal" → Enter.
- **Linux:** Ctrl+Alt+T.
- **Windows:** установите WSL2 (Ubuntu) и откройте Ubuntu из меню Пуск.
### Шаг 2. Скачайте бинарь
```
curl -L https://montana.quest/efir369999/montana/releases/latest/download/montana-node -o montana-node
chmod +x montana-node
sudo mv montana-node /usr/local/bin/
```
(Если ссылка не работает, она появится после M9 — public testnet milestone. До этого — соберите из исходников: см. [Код/](../../Монтана-Протокол/Код/)).
### Шаг 3. Создайте папку для данных
```
sudo mkdir -p /var/lib/montana
sudo chown $(whoami) /var/lib/montana
```
### Шаг 4. Сгенерируйте свою identity (один раз)
```
montana-node init --data-dir /var/lib/montana
```
Команда напечатает 24 слова — это ваша мнемоника. **Запишите её на бумаге и храните как ключ от квартиры.** Если потеряете — теряете доступ к узлу и всем его TC. Если кто-то узнает — он становится вами в сети.
### Шаг 5. Скачайте манифест генезиса
```
sudo mkdir -p /etc/montana
sudo curl -L https://montana.quest/efir369999/montana/raw/branch/main/Монтана-Протокол/genesis-manifest.json -o /etc/montana/genesis-manifest.json
```
(До M9 манифест в репо может отсутствовать — попросите автора прислать.)
### Шаг 6. Запустите узел
```
montana-node start \
--data-dir /var/lib/montana \
--listen /ip4/0.0.0.0/tcp/8444 \
--genesis-manifest /etc/montana/genesis-manifest.json
```
Узел начнёт крутить VDF, синхронизироваться с 3 genesis-узлами, и через ~10 часов станет полноценным candidate-оператором.
### Шаг 7 (опционально). Сделайте узел сервисом
Чтобы узел крутился сам после перезагрузки:
**Linux (systemd):**
```
sudo tee /etc/systemd/system/montana-node.service > /dev/null <<'UNIT'
[Unit]
Description=Montana Node
After=network.target
[Service]
ExecStart=/usr/local/bin/montana-node start --data-dir /var/lib/montana --listen /ip4/0.0.0.0/tcp/8444 --genesis-manifest /etc/montana/genesis-manifest.json
Restart=on-failure
User=montana
Group=montana
[Install]
WantedBy=multi-user.target
UNIT
sudo systemctl daemon-reload
sudo systemctl enable --now montana-node
```
**macOS (launchd):** см. [Код/macOS/](../../macOS/) для готового plist'а `org.montana.node.plist`.
## Проверка работы
### Статус узла
```
montana-node status --data-dir /var/lib/montana
```
Вы увидите:
- `current_window` — текущее окно. Должно расти.
- `phase``Bootstrapping``CandidateVdf``Active`. Active = вы полноправный оператор.
- `D (current)` — текущая сложность VDF.
- `узел в Node Table : ДА` — вы зарегистрированы.
- `chain_length` — длина вашей NodeChain.
### Сетевая связь
```
journalctl -u montana-node -n 20 --no-pager # Linux
log show --predicate 'process == "montana-node"' --last 1m # macOS
```
Должны видеть строки:
- `[network] heartbeat OK peer=12D3KooW…` — связь с другими узлами есть.
- `[consensus] broadcast Proposal window=…` — вы участвуете в консенсусе.
## Часто задаваемые вопросы
### Сколько времени до получения первой TC?
После того как ваша фаза стала `Active` (~10 часов после старта), вы участвуете в лотерее каждое окно. Шанс победы ≈ 1 / N где N = число активных узлов. На 3 узлах — ≈ 33% за окно. На 100 узлах — 1%.
### Сколько электричества потребляет узел?
Один CPU-ядро под нагрузкой = 515 Вт = 0.120.36 кВт·ч в сутки. В РФ ≈ 13 ₽/сутки. В EU ≈ 0.10.3 €/сутки.
### Можно ли запустить на ноутбуке?
Технически — да. Практически — нет: ноутбук будет постоянно греться, вентилятор шуметь, батарея сядет за 12 часа без зарядки. Лучше мини-ПК или Raspberry Pi 5 (с SHA-NI) или старый стационарный.
### Что если интернет пропадёт?
Узел переходит в локальный режим, продолжает крутить VDF. Когда интернет вернётся — узел синхронизируется с актуальным каноном. Если за время offline сеть сильно ушла вперёд — может быть момент когда ваш fork отбрасывается. Это нормально.
### Можно ли участвовать без публичного IP?
Да. Узел может быть за NAT, но ему нужно установить outbound-соединения с другими узлами. Поведение worse чем со статическим IP, но работает.
### Что если я хочу остановить узел?
```
sudo systemctl stop montana-node # Linux
sudo launchctl unload … # macOS
```
Ваши ключи (`/var/lib/montana/identity.bin`) сохранятся. Если потом снова запустите — продолжите с того же узла.
### Как удалить узел и все данные?
```
sudo rm -rf /var/lib/montana
sudo rm -f /etc/montana/genesis-manifest.json
sudo systemctl disable --now montana-node
sudo rm /etc/systemd/system/montana-node.service
```
**Внимание:** это удалит и ваши ключи. Если у вас был баланс TC — он останется в сети, но вы не сможете подписать операции его расходования без мнемоники.
## Безопасность
1. **Бэкап мнемоники.** Запишите 24 слова на бумаге. Храните в сейфе. Никогда не вводите в онлайн-сервисах. Никогда не фотографируйте. Никогда не отправляйте через мессенджер/почту.
2. **Полный доступ к узлу.** Кто имеет SSH к вашему узлу — имеет ваши ключи в `/var/lib/montana/identity.bin`. Защитите SSH ключом, не паролем.
3. **Файрвол.** Открывайте только порт 8444 для p2p. Закройте всё остальное.
4. **Регулярные обновления.** Когда выходит новый релиз `montana-node` — обновляйтесь.
## Поддержка
- Спецификация: [Montana Protocol v35.25.0](../../Монтана-Протокол/Montana%20Protocol%20v35.25.0.md)
- Сетевой слой: [05 Сетевой слой](../05%20Сетевой%20Слой/)
- Модель угроз: [07 Модель угроз](../07%20Модель%20Угроз/)
- Внутренний аудит: [09 Внешний аудит](../09%20Внешний%20Аудит/Internal-Audit-2026-05-04.md)
- Связь с автором: efir369999@gmail.com (только для security disclosures)
## Тестовая сеть vs «настоящая»
Сеть `montana` — это уже production-grade имя, не testnet. Однако network в pre-launch фазе (см. [Mainnet Readiness](../Mainnet-Readiness.md)) — это значит TC которые вы заработаете сейчас являются **частью каноничной истории**, но также подпадают под breaking changes если они потребуются до launched-mainnet объявления.
Если вам важна абсолютная финальность TC — дождитесь G1-G6 закрытия. Если вам интересно участвовать в M9-M10 как ранний оператор — запускайте сейчас.