Обзор ComputeChain¶
Архитектура¶
ComputeChain состоит из двух основных слоёв:
L1 (Layer 1) — Слой блокчейна¶
Назначение: Обеспечивает детерминированный консенсус, стейт, стейкинг и безопасность.
Компоненты:
- Consensus Engine: PoA (Proof-of-Authority) с механизмом Round-Robin
- State Management: Аккаунтная модель с балансами, nonce и стейками
- Post-Quantum Security: Архитектура готова к переходу на квантово-устойчивые подписи (Dilithium, Falcon)
- Gas & Fees: Экономическая защита от спама через модель комиссий
- P2P Network: Децентрализованная синхронизация блоков и транзакций
PoC (Proof-of-Compute) — Слой вычислений¶
Назначение: Распределяет, выполняет и проверяет вычислительные задачи.
Компоненты:
- ComputeTask: Структура данных для задач к выполнению
- ComputeResult: Результат выполнения задачи с доказательством
- L1 Integration:
compute_rootв заголовках блоков (Merkle root результатов) - Future: ZK-Proofs для верификации (
zk_state_proof,zk_compute_proof)
Роли участников¶
1. Пользователи¶
Функции: - Создают задачи через маркетплейс (веб или API) - Плачят CPC за выполнение задач - Получают результаты вычислений
Инструменты:
- CLI кошелёк (cpc-cli)
- Task Market API (в разработке)
2. GPU Workers (Майнеры)¶
Функции:
- Имеют L1 адрес cpc1... и ключ
- Выполняют задачи на GPU (RTX 4090/5090 и далее)
- Подключаются к PoC валидатору (оркестратору) через WebSocket/HTTP
- Отправляют результаты через транзакцию SUBMIT_RESULT
Требования: - GPU с поддержкой CUDA/ROCm - L1 нода для отправки транзакций - Подключение к PoC валидатору
3. Валидаторы¶
Функции: - Производят блоки строго по очереди (Round-Robin) - Проверяют транзакции и вычисления - Поддерживают консенсус сети - Получают комиссии за транзакции и награды за блоки
Требования: - Минимальный стейк: 1,000 CPC (devnet) - Активный валидатор входит в набор каждые 10 блоков (эпоха) - Максимум валидаторов: 5 (devnet), 21 (testnet), 100 (mainnet)
4. PoC Validator / Orchestrator (off-chain)¶
Функции:
- Получает задачи из маркетплейса
- Разбивает их на вычислительные задания
- Распределяет задания между воркерами
- Проверяет результаты и доказательства
- Отправляет (или проверяет) SUBMIT_RESULT от имени воркера в L1
Статус: В разработке (Stage 5)
Консенсус¶
PoA (Proof-of-Authority)¶
Механизм: Round-Robin (по очереди)
- Валидаторы производят блоки строго по очереди
- Если валидатор пропустил слот, сеть ждёт следующего раунда
- Набор валидаторов пересчитывается каждые 10 блоков (эпоха)
Post-Quantum Security¶
Текущая реализация:
- Блоки подписываются через абстракцию PQ-Scheme
- Devnet использует обёртку secp256k1
- Структура данных (pq_signature, pq_pub_key) готова для интеграции Dilithium/Falcon
Разрешение форков¶
Механизм: Автоматический откат
- Если нода обнаруживает более длинную валидную цепь, выполняет
rollbackлокальных блоков - Загружает правильную ветку от пиров
- Режим
SYNCINGпредотвращает производство новых блоков до синхронизации
Экономика¶
Gas Model¶
Защита от спама: Аналогично Ethereum
- Каждая транзакция имеет
gas_limitиgas_price - Комиссия
fee = gas_used * gas_priceидёт валидатору
Базовые стоимости газа: - Transfer: 21,000 gas - Stake: 40,000 gas - Submit Result: 80,000 gas
Параметры сети:
- BLOCK_GAS_LIMIT: 10,000,000 (devnet)
- MIN_GAS_PRICE: 1,000 (devnet)
Награды¶
Награда за блок: - Начальная награда: 10 CPC - Халвинг каждые 1,000,000 блоков
Распределение:
- Валидатор получает block_reward + fees_total
- Комиссии собираются со всех транзакций в блоке
- Награда отправляется на reward_address валидатора
Хранилище¶
База данных: SQLite
- Блоки хранятся в
chain.db - Стейт (аккаунты, валидаторы) в памяти с периодическим сохранением
- Защита от race condition через транзакции БД
Сеть¶
P2P Протокол:
- TCP-протокол для синхронизации
- Handshake при подключении
- Распространение блоков и транзакций
- Автоматическое сохранение пиров в peers.json
RPC API:
- FastAPI сервер на порту 8000 (по умолчанию)
- Endpoints: /status, /block/{height}, /balance/{address}, /validators, /tx/send
Следующие шаги¶
- Proof-of-Compute — Детали слоя PoC
- Токеномика — Экономическая модель
- Настройка ноды — Запуск ноды