Конфигурация Ноды¶
Параметры сети и конфигурация ноды ComputeChain.
Параметры Сети¶
NetworkConfig¶
Расположение: protocol/config/params.py
Структура:
class NetworkConfig:
network_id: str # "devnet", "testnet", "mainnet"
chain_id: str # "cpc-devnet-1", etc.
block_time_sec: int # Время между блоками (сек)
min_gas_price: int # Минимальная цена газа (wei)
block_gas_limit: int # Максимум газа на блок
max_tx_per_block: int # Максимум транзакций
genesis_premine: int # Премайн в генезисе (wei)
bech32_prefix_acc: str # Префикс адреса аккаунта
bech32_prefix_val: str # Префикс адреса валидатора (future)
bech32_prefix_cons: str # Префикс адреса консенсуса
epoch_length_blocks: int # Длительность эпохи (блоки)
min_validator_stake: int # Минимальный стейк (wei)
max_validators: int # Максимум валидаторов
Сети¶
Devnet¶
Параметры:
NetworkConfig(
network_id="devnet",
chain_id="cpc-devnet-1",
block_time_sec=10,
min_gas_price=1000,
block_gas_limit=10_000_000,
max_tx_per_block=100,
genesis_premine=1_000_000_000 * 10**18, # 1B CPC
epoch_length_blocks=10,
min_validator_stake=1000 * 10**18, # 1,000 CPC
max_validators=5
)
Использование: - Локальная разработка - Тестирование - Детерминированный ключ faucet
Testnet¶
Параметры:
NetworkConfig(
network_id="testnet",
chain_id="cpc-testnet-1",
block_time_sec=30,
min_gas_price=5000,
block_gas_limit=15_000_000,
max_tx_per_block=1000,
genesis_premine=100_000_000 * 10**18, # 100M CPC
epoch_length_blocks=100,
min_validator_stake=100_000 * 10**18, # 100,000 CPC
max_validators=21
)
Использование: - Публичный тестнет - Интеграционное тестирование - Подготовка к mainnet
Mainnet¶
Параметры:
NetworkConfig(
network_id="mainnet",
chain_id="cpc-mainnet-1",
block_time_sec=60,
min_gas_price=1_000_000_000, # 1 Gwei
block_gas_limit=30_000_000,
max_tx_per_block=5000,
genesis_premine=0, # Fair launch
epoch_length_blocks=72, # ~72 минуты
min_validator_stake=100_000 * 10**18, # 100,000 CPC
max_validators=100
)
Использование: - Продакшн сеть - Реальные транзакции и токены
Стоимость Газа¶
Базовая стоимость¶
Расположение: protocol/config/params.py
Расчет комиссии:
Примеры:
| Тип транзакции | Gas Used | Gas Price (Devnet) | Fee (wei) | Fee (CPC) |
|---|---|---|---|---|
| TRANSFER | 21,000 | 1,000 | 21,000,000 | 0.000021 |
| STAKE | 40,000 | 1,000 | 40,000,000 | 0.00004 |
| SUBMIT_RESULT | 80,000 | 1,000 | 80,000,000 | 0.00008 |
Переключение сети¶
Текущая сеть¶
По умолчанию: Devnet
Изменение сети¶
В коде:
from computechain.protocol.config.params import NETWORKS, CURRENT_NETWORK
# Переключиться на testnet
CURRENT_NETWORK = NETWORKS["testnet"]
Через переменную окружения (Future):
Параметры Ноды¶
RPC Сервер¶
Параметры запуска:
По умолчанию:
- Host: 0.0.0.0 (все интерфейсы)
- Port: 8000
Безопасность:
- В продакшене используйте 127.0.0.1 или файрвол
- Настройте HTTPS через reverse proxy (nginx)
P2P Сервер¶
Параметры запуска:
По умолчанию:
- Host: 0.0.0.0
- Port: 9000
Файрвол: - Откройте порт для входящих соединений - Рекомендуется использовать статический IP
Пиры¶
При запуске:
Автоматическое сохранение:
- Пиры сохраняются в
peers.json - Автоматически подключаются при следующем запуске
Пересборка стейта (Rebuild State)¶
Когда нужно¶
Случаи:
- Повреждение стейта
- Изменение логики стейта
- Отладка
Как выполнить¶
Процесс:
- Загрузка всех блоков из базы данных
- Повторное применение транзакций
- Пересчет стейта
- Сохранение нового стейта
Переменные окружения¶
CPC_NODE¶
Использование: URL ноды для CLI
CPC_NETWORK (Future)¶
Использование: Выбор сети
Примеры конфигурации¶
Локальная разработка¶
# Node A
./run_node.py --datadir .node_a run \
--port 8000 \
--p2p-port 9000
# Node B
./run_node.py --datadir .node_b run \
--port 8001 \
--p2p-port 9001 \
--peers 127.0.0.1:9000
Testnet Валидатор¶
./run_node.py --datadir .testnet_node run \
--host 0.0.0.0 \
--port 8000 \
--p2p-host 0.0.0.0 \
--p2p-port 9000 \
--peers testnet-peer-1:9000,testnet-peer-2:9000
Продакшн Нода¶
./run_node.py --datadir .mainnet_node run \
--host 127.0.0.1 \
--port 8000 \
--p2p-host 0.0.0.0 \
--p2p-port 9000 \
--peers mainnet-peer-1:9000,mainnet-peer-2:9000
Рекомендации:
- Используйте reverse proxy (nginx) для HTTPS
- Настройте мониторинг (Prometheus, Grafana)
- Настройте логирование в файл
- Используйте systemd для автозапуска
Следующие шаги¶
- Запуск локально — Запуск локальной ноды
- P2P синхронизация — Синхронизация сети
- Руководство CLI — Использование CLI