T
TON Pro
@tonproru196 подп.
138просмотров
70.4%от подписчиков
25 июля 2025 г.
Score: 152
📦 Базовые понятия, без которых не написать смарт-контракт в TON Сохрани пост — пригодится, когда утонешь в доках. 1. Как устроена сеть • Workchain / Shardchain — уровни горизонтального шардинга; адрес контракта включает ID workchain’а и hash. • Masterchain — «главная» цепочка: хранит глобальный корневой хеш состояния всех шардов и ключевые сервис-контракты. • Block → State — после каждого блока пересчитывается глобальное состояние. 2. Модель данных • Cell — минимальная единица хранения: до 1023 бит данных + ссылки на дочерние ячейки (от 0 до 4 ссылок). • BOC (Bag of Cells) — сериализованный набор ячеек; формат для хранения/передачи кода, сообщений и состояния. • Slice / Builder — «читалка» и «писалка» для работы с битами/референсами внутри ячейки. • TL-B (Type Language – Binary) — декларативный способ описывать структуры, которые автоматически сериализуются в ячейки. 3. Виртуальная машина TVM • TVM-стек – стековый процессор; почти все инструкции берут/кладут данные в стек. • TVM-опкоды — 8-битные коды инструкций (аналог ассемблера). • Gas — топливо на каждую операцию; каждая инструкция имеет цену, превышение лимита = revert. • Storage Fee — арендная плата за хранение состояния контракта; списывается каждые 256 блоков. 4. Языки и инструменты • FunC — низкоуровневый C-like язык; почти прямое отображение на TVM. • Tact — «TypeScript для TON»; высокоуровневый, с генерацией ABI, тестами и кодогенерацией. • Tolk — «сборщик + дизассемблер» уровня TVM: удобно смотреть сырой байткод, писать инлайн-ассемблер. Недавно получил статус "рекомендованный" вместо FunC и Tact. • Fift — стековый скриптовый язык и CLI (сборка, деплой, утилиты). • TonCLI / Tact CLI / Blueprint — наборы инструментов для компиляции, тестов и деплоя. 5. Деплой и адреса • StateInit — ячейка с кодом и начальным хранилищем; хеш StateInit = часть адреса контракта. • Bounceable / Non-bounceable — адрес с/без автоматического возврата TON при ошибке. • seqno — каждое внешнее сообщение увеличивает счётчик seqno, защищая от реплея. 6. Сообщения и взаимодействие • External vs Internal — внешние приходят от кошелька, внутренние идут контракт↔контракт. • op-код сообщения - первые 32 бита тела сообщения, определяющие «команду» (transfer, burn, mint и т.д.). • forward_payload / callback — данные, которые пересылаются дальше (префиксуй для безопасности!). • Bounce flag — вернуть сообщение и TON отправителю, если контракта нет или он упал. 7. Стандарты (TEP) • TEP-74 — Jetton (Fungible Token) — базовый стандарт токенов; включает Transfer, Burn, Mint, JettonWallet. • TEP-62 (NFT) - стандарт невзаимозаменяемых токенов; коллекция, item и т. д. • Wallet v3/v4 — эталонные кошельки; хороший пример «правильного» кода подписей и seqno. • DEX-пулы, DAO-голосовалки — практические шаблоны: мульти-хоп, опкод-роутинг, safe-math. 8. Безопасность • Replay-Protection — проверяем msg.pubkey + seqno или query_id. • Opcode-whitelist — обрабатываем только известные op, остальное — игнор. • Re-entrancy через forward_payload — классический баг (см. пост TheOpenDevBlog). • Formal Verifier / TVM-profile — статический анализ газ-стоимости и ошибок. 🏷 Как прокачаться быстро 🏷 Пройдите «official TON course» (FunC+Fift) — поймёте Cell/TL-B/TVM. 🏷 Соберите минимальный кошелёк на Tact/Tolk — освоите StateInit, op, seqno. 🏷 Поднимите lite-ноду и гоняйте контракты на тестнете — практический опыт бесценен. Освоив эти блоки, сможешь читать любую TON-спеку и писать контракты, которые не стыдно аудировать. Удачи!
138
просмотров
3531
символов
Нет
эмодзи
Нет
медиа

Другие посты @tonproru

Все посты канала →
📦 Базовые понятия, без которых не написать смарт-контракт в — @tonproru | PostSniper