Перейти к содержанию

Архитектура и доверие

Два процесса на ноду

CometBFT отвечает за P2P, предложения блоков/голоса, BFT commits, синхронизацию истории и light-client verification при state sync.

CPC ABCI-приложение проверяет транзакции, детерминированно исполняет изменения и сохраняет balances, nonces, metadata и receipts в SQLite. Движок обращается к нему через привилегированный локальный gRPC. ABCI — не публичный API.

Финализация требует строго больше 2/3 voting power. Безопасность предполагает Byzantine power меньше 1/3; прогресс также требует достаточной честной online-мощности и подходящих сетевых условий. При четырёх равных валидаторах отключение одного допускает прогресс; partition 2+2 останавливает обе половины.

GPU-работа относится к будущему off-chain compute-слою, не к consensus execution.

Текущие правила токена и переводов

  • Chain ID локального стенда: cpc-comet-staking-devnet-1.
  • 1 CPC = 10^18 базовых единиц.
  • Genesis: всего 1 000 000 тестовых CPC; 40 000 в stake, 4 000 на балансах владельцев и 956 000 у faucet. Реальные активы не мигрируются.
  • Подписанные TRANSFER, STAKE/UNSTAKE, DELEGATE/UNDELEGATE, UPDATE_VALIDATOR.
  • Gas перевода — 21 000; другие типы имеют фиксированный gas; minimum price — 1 000.
  • Комиссии сжигаются; block rewards и новая эмиссия не включены.

Это devnet, не окончательная токеномика. Минимумы: self stake — 1 000 CPC, делегация — 10 CPC. Power = floor(bonded CPC), если self stake достиг минимума. Увеличения не могут превышать 20% общей мощности; genesis-доли 25% нельзя увеличивать, пока они выше лимита. Вывод — только после H+2+100 блоков И 60 секунд. Native evidence истекает после ОБОИХ сроков: 20 блоков и 30 секунд. Штраф — 5% ответственных cohorts и постоянное исключение ключа. Комиссия: максимум 20%, шаг +5 процентных пунктов, cooldown 100 блоков, объявление за 20 блоков. Наград пока нет. Consensus key требует Ed25519 proof владения, связанного с owner/chain ID. Короткие сроки — для локальных тестов, не production. Полные правила: core blockchain/comet/ECONOMICS.md.

Подписи переводов — secp256k1 ECDSA; native consensus keys — Ed25519. Подпись фиксирует canonical поля, версию, chain ID и signing domain. Постквантовая защита и настоящая ZK-проверка не заявляются.

Хранение и синхронизация

Application state включает balances, nonces, height, block hash, supply/burn и fee policy, stake cohorts, unbonding, комиссии и историю validator sets. AppHash фиксирует всё canonical состояние. Header блока H+1 содержит application hash после исполнения H.

Proposal/CheckTx-симуляции не меняют committed state. SQLite атомарно записывает state, height, receipts и snapshots; writer lock исключает второго writer. Это защита crash recovery, не разрешение откатывать signing state.

Full sync начинает от genesis. Catch-up догоняет историю после offline. State sync проверяет native headers/AppHash от trusted checkpoint до приёма bounded snapshot. Checksum файла сам по себе не создаёт доверия. Сейчас checkpoints выбираются явно экспортируется из собственных локальных нод. Bootstrap требует этот файл и два различных совпадающих witness. Недоступный источник можно заменить из списка оператора; противоречие, чужой genesis или просроченный anchor останавливают запуск без reset. Совпадение RPC-ответов само по себе не создаёт доверия; распространение checkpoint публичной сети ещё не решено. Фиксированный local trust period — 30 секунд, меньше минимальных 60 секунд unbonding; увеличивать его для обхода expiry нельзя. Проверки жёсткого падения покрывают replay до/после Commit и прерванный snapshot: неполные chunks не публикуются, нужен новый verified offer.

Native RPC на хосте по умолчанию — 127.0.0.1:28601 (/status, /block, /tx, /abci_query). Application queries: /state, /account/<address>, /validators, /unbondings/<address>; query Merkle proofs и historical state пока не реализованы.

Граница legacy

Старые Python consensus, FastAPI API и staking CLI не являются интеграцией v3. Непроверенные PoC submissions/payouts и несогласованные изменения комиссии отключены. Legacy network запускается только с явным unsafe opt-in.

V1/v2-история, balances и ключи не импортируются в v3 автоматически. Для миграции и production deployment нужны отдельная спецификация и проверка.