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

Лог разработки

Хронология разработки ComputeChain


21 января 2026 — Детерминированные слоты и стабильность консенсуса

Критическое обновление системы слотов и производства блоков:

  • genesis_time: Теперь сохраняется в БД и используется как абсолютная точка отсчёта для слотов
  • max_rounds_per_height: Ограничение раундов (devnet=10, testnet=42, mainnet=200) предотвращает бесконечный рост round
  • Детерминированные слоты: Убраны проверки монотонности/дрифта timestamp, slot вычисляется строго от genesis_time
  • missed_blocks guards: Защита от накрутки при больших time gaps + исключение winner из missed
  • blocks_expected: Теперь устанавливается для slot-0 proposers при старте эпохи
  • BlockValidator: Добавлена проверка соответствия slot для входящих блоков

20 января 2026 — Смягчение параметров скоринга валидаторов

Исправлена проблема агрессивного jailing валидаторов:

  • epoch_length_blocks: 10 → 100 (больше времени для накопления статистики)
  • min_uptime_score: 0.75 → 0.5 (допускается 50% пропусков)
  • max_missed_blocks_sequential: 10 → 20 (больше толерантности перед jail)

Эти изменения предотвращают преждевременное исключение валидаторов из-за краткосрочных сетевых задержек.


19 января 2026 — Надежность синхронизации и индексация receipt

Улучшена P2P-синхронизация (диапазон заголовков + чанки снимков), добавлен tx-index для fallback receipt, усилена детерминированность state/tx (tx hash + покрытие state_root).


12 января 2026 — Финальный фикс pending state

Исправлена синхронизация pending_state после создания локального блока. Proposer теперь вызывает update_pending_state() сразу после добавления блока в цепочку. Это гарантирует корректный pending nonce для следующих транзакций.


10 января 2026 — Gap-filling алгоритм для nonce

Переписан get_pending_nonce() с использованием gap-filling алгоритма. Теперь возвращается первый пропущенный nonce в последовательности, а не max+1. Это предотвращает накопление nonce-гэпов и deadlock mempool.


9 января 2026 — Учёт queued TX в pending nonce

Исправлен расчёт pending nonce — теперь учитываются транзакции из pending_queue, а не только из основного пула. Без этого /nonce возвращал 0 при наличии 50+ транзакций в очереди.


8 января 2026 — Ethereum-style pending state

Архитектурное изменение: mempool теперь управляет pending state. Добавлен endpoint /nonce/{address} для получения pending nonce. Упрощён tx_generator — убран клиентский NonceManager, throttling, account locks. Лимит 64 TX в очереди на аккаунт (как в Ethereum).


6 января 2026 — Фикс promotion в proposer

Исправлена логика promotion в proposer: транзакции с future nonce больше не удаляются из pending_queue преждевременно. Теперь promotion корректно переносит TX в основной пул когда blockchain nonce догоняет.


4 января 2026 — Настройки таймаутов для high load

Увеличены таймауты для режима высокой нагрузки. Smart timeout теперь адаптируется к текущему TPS. Поднят лимит throttling для предотвращения искусственного ограничения пропускной способности.


3 января 2026 — Фикс деградации TPS

Исправлена деградация TPS при длительной работе. Добавлены account locks для предотвращения race conditions. Улучшена валидация broadcast и проверки баланса. Тест стабильно держит 50+ TPS.


27 декабря 2025 — Deadlock pending queue

Исправлен критический баг: promotion вызывался только для адресов из обработанных TX. При пустом mempool pending_queue никогда не обрабатывался → deadlock. Теперь promotion вызывается для ВСЕХ адресов в pending_queue.


26 декабря 2025 — Упрощение тестовой инфраструктуры

Убрана зависимость от SSE в tx_generator. SSE queue увеличен до 10000. NonceManager переведён на periodic sync вместо event-driven. Удалено 167 строк кода, система стала надёжнее.


25 декабря 2025 — Межпроцессный EventBus

Исправлена доставка событий между процессами. EventBus импортируется на уровне модуля (singleton). Добавлена JSON-сериализация для SSE. Mempool теперь эмитирует tx_failed при истечении TTL.


23 декабря 2025 — TX TTL и события

Реализована система TTL для транзакций (1 час). SSE endpoint /events/stream для real-time событий. Типы: tx_confirmed, tx_failed, block_created. Устойчивый TPS: ~10-30.


22 декабря 2025 — Метрики Prometheus

Исправлено дублирование метрик из-за множественных импортов. Добавлены метрики: accounts_total, счётчики TX. Улучшено форматирование Grafana. Создан cleanup.sh и start_test.sh.


19 декабря 2025 — NonceManager

Реализован класс NonceManager для потокобезопасного управления nonce. Отслеживание pending TX, автоматическое восстановление при подтверждении, обработка таймаутов.


17 декабря 2025 — Фазы 1.2-1.3

Фаза 1.2: Экономическая модель v2 — централизованная конфигурация, burn/mint tracking, 21-дневный unbonding period, комиссии валидаторов 0-20%.

Фаза 1.3: Снимки состояния — автоматическое создание, gzip сжатие, SHA256 верификация. CLI: cpc-cli snapshot create/list.


17 декабря 2025 — Фаза 1.1: Делегирование

Пропорциональное распределение вознаграждений делегаторам. Формула: (stake / total) × (reward × (1 - commission)). API /delegator/{address}/rewards.


12 декабря 2025 — Фазы 1-3: Валидаторы

Фаза 1: Метаданные валидаторов (имя, сайт, комиссия). TX UPDATE_VALIDATOR.

Фаза 2: Делегирование. TX DELEGATE/UNDELEGATE. Отслеживание total_delegated.

Фаза 3: Градуированный слэшинг (5% → 10% → 100%). Механизм UNJAIL (50k gas + 1000 CPC). Фильтр uptime 75%.


12 декабря 2025 — UNSTAKE механизм

Валидаторы могут выводить стейк. 10% штраф при unstake в jail. Автоматическая деактивация при power=0. TX UNSTAKE (40k gas).


11 декабря 2025 — Фаза 0: Производительность валидаторов

Отслеживание uptime и пропущенных блоков. Автоматический jail после 10 пропусков. 5% slash при заключении. Performance score = 60% uptime + 20% stake + 20% penalties. Dashboard с real-time метриками.


28 ноября 2025 — Genesis

Первый коммит ComputeChain. Ядро: блоки, TX (TRANSFER/STAKE), ECDSA подписи, nonce, gas. Консенсус: multi-validator PoA, round-robin. P2P сеть, CLI кошелёк, RPC API.


Статистика

  • Период: ноябрь 2025 — январь 2026
  • Текущий TPS: 50-60 (стабильно)
  • Время блока: 5 сек
  • Эпоха: 100 блоков (~8 минут)
  • Тесты: 25+ (все проходят)

Последнее обновление: 21 января 2026