Learning Platform
Глоссарий Troubleshooting
Урок 02.01 · 15 мин
Начальный
System DesignBlockchainTONArchitecture

Зачем блокчейн-разработчику System Design

Проблема: контракт работает — система нет

Типичная ситуация: разработчик написал смарт-контракт, который проходит все тесты. Контракт деплоится в mainnet. И через неделю при росте нагрузки:

  • Газ на транзакции стоит в 10 раз больше ожидаемого
  • Операции, которые должны быть атомарными, оказываются разорваны по шардам
  • Контракт хранит слишком много данных — storage fee съедает баланс
  • Пользователи теряют средства из-за race conditions в асинхронных сообщениях

Проблема не в коде контракта. Проблема в архитектуре системы.

WARNING

Блокчейн != обычный бэкенд

В традиционном web-разработке вы можете откатить деплой, сделать hotfix, перезапустить сервер. В блокчейне каждая транзакция необратима, каждый баг стоит реальных денег, а «перезапустить» контракт невозможно. System Design здесь — это не абстракция для собеседования, а инструмент выживания.

Что такое System Design

System Design — это процесс принятия архитектурных решений о том, как компоненты системы взаимодействуют друг с другом для достижения заданных целей при заданных ограничениях.

Ключевые вопросы System Design:

  1. Как разделить систему на компоненты? → В TON: как разделить логику между контрактами?
  2. Как компоненты общаются? → В TON: messages, internal/external, bounce
  3. Как обеспечить надёжность? → В TON: gas management, error handling, replay protection
  4. Как масштабироваться? → В TON: sharding-friendly design
  5. Как обеспечить безопасность? → В TON: attack vectors, access control, upgradeability

Классический SD vs Блокчейн SD

System Design: Web vs Blockchain

Классический Web SD

Client (Browser)
Load Balancer
App Servers (stateless)
Database (ACID)

Блокчейн SD (TON)

User Wallet
Message Router (Shardchain)
Smart Contracts (actors)
On-chain State (immutable)

Ключевые отличия

АспектКлассический WebБлокчейн (TON)
СостояниеЦентрализованная БД, можно изменитьРаспределённый ledger, неизменяемый
Откат ошибокRollback транзакции, hotfixНевозможен — только новая транзакция
МасштабированиеГоризонтальное (добавить серверы)Шардирование (разделить контракты)
СтоимостьCPU/RAM серверовGas за каждую операцию
ЛатентностьМиллисекундыСекунды (5-6с для TON)
КоммуникацияСинхронные вызовы (HTTP/RPC)Асинхронные сообщения
АтомарностьACID-транзакцииОграниченная (в рамках одного контракта)
NOTE

Ключевой инсайт

В классическом web вы проектируете запрос-ответ системы. В TON вы проектируете акторные системы с асинхронным обменом сообщениями. Это фундаментально другая парадигма, требующая других паттернов проектирования.

Почему именно TON требует отличного SD

TON добавляет уникальные сложности, которых нет в других блокчейнах:

1. Асинхронность

В Ethereum все вызовы контрактов синхронны — вы вызвали функцию другого контракта и сразу получили результат. В TON контракты общаются через асинхронные сообщения. Результат придёт в следующей транзакции, возможно в другом блоке.

Ethereum (синхронный):
ContractA.transfer() → ContractB.receive() → return result → ContractA продолжает

TON (асинхронный):
ContractA → отправил message → закончил транзакцию

                           ContractB получил message → обработал → отправил ответ

                                                              ContractA получил ответ

2. Динамическое шардирование

TON автоматически разделяет и объединяет шарды в зависимости от нагрузки. Это значит, что два контракта, которые сейчас в одном шарде, завтра могут оказаться в разных. Это влияет на:

  • Стоимость cross-shard сообщений
  • Время доставки сообщений
  • Гарантии порядка обработки

3. Экономика хранения

В TON вы платите не только за выполнение кода, но и за хранение данных. Контракт с большим состоянием постоянно теряет баланс на storage fee. Если баланс падает до нуля — контракт замораживается.

Проверка знанийKnowledge check
ОтветAnswer

Если на этом этапе чувствуется нехватка криптографического и блокчейн-фундамента (хеш-функции, подписи, эллиптические кривые, AMM-математика, MEV), его удобно добрать в курсе по основам криптографии и блокчейна.

Crypto Fundamentals: о курсе

Проверьте понимание

Результат: 0 из 0
Концептуальный
Вопрос 1 из 3. Какая ключевая разница между web-бэкендом и блокчейном с точки зрения исправления ошибок?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 5