Перейти к основному содержимому

Часто задаваемые вопросы

warning

Эта страница переведена сообществом на русский язык, но нуждается в улучшениях. Если вы хотите принять участие в переводе свяжитесь с @alexgton.

В этом разделе рассматриваются самые популярные вопросы о блокчейне TON.

Общие сведения

Не могли бы вы поделиться кратким обзором TON?

Каковы некоторые из основных сходств и различий с блокчейнами EVM?

Есть ли у TON тестовая среда?

TON и L2

Почему воркчейны лучше, чем L1 → L2?

Воркчейны в TON предлагают ряд преимуществ по сравнению с традиционной архитектурой слоев L1 и L2.

  1. Одним из ключевых преимуществ блокчейна является мгновенная обработка транзакций. В традиционных решениях L2 могут быть задержки при перемещении активов между слоями. Воркчейны устраняют эту проблему, обеспечивая бесперебойные и мгновенные транзакции между различными частями сети. Это особенно важно для приложений, требующих высокой скорости и низкой задержки.
  2. Воркчейны поддерживают кросс-шардовую активность, что означает, что пользователи могут взаимодействовать между различными шард-цепочками или воркчейнами в пределах одной сети. В текущих решениях L2 кросс-шардовые операции часто сложны и требуют дополнительных мостов или решений по обеспечению совместимости. Например, в TON пользователи могут легко обмениваться токенами или выполнять другие транзакции между различными шардчейнами без сложных процедур.
  3. Масштабируемость является одной из основных проблем для современных блокчейн-систем. В традиционных решениях L2 масштабируемость ограничена емкостью секвенсора. Если TPS (транзакций в секунду) на L2 превышает емкость секвенсора, это может привести к проблемам. В воркчейнах в TON эта проблема решается путем разделения шарда. Когда нагрузка на шард превышает его емкость, шард автоматически делится на два или более шардов, что позволяет системе масштабироваться практически без ограничений.

Есть ли необходимость в L2 на TON?

При любой стоимости транзакции всегда будут приложения, которые не смогут выдержать такую ​​плату, но могут работать с гораздо более низкой стоимостью. Аналогично, независимо от достигнутой задержки, всегда будут приложения, которым требуется еще более низкая задержка. Поэтому вполне возможно, что в конечном итоге может возникнуть необходимость в решениях L2 на платформе TON для удовлетворения этих конкретных требований.

Максимальная извлекаемая ценность (MEV - Maximal Extractable Value)

Возможен ли опережающий запуск в TON?

В блокчейне TON детерминированный порядок транзакций играет ключевую роль в предотвращении опережающего запуска. Это означает, что порядок транзакций в блокчейне предопределен и детерминирован. Ни один участник не может изменить этот порядок после того, как транзакции попали в пул. Эта система исключает возможность манипулирования порядком транзакций для получения прибыли, что отличает TON от других блокчейнов, таких как Ethereum, где валидаторы могут изменять порядок транзакций в блоке, создавая возможности для MEV (максимальной извлекаемой ценности).

Кроме того, в текущей архитектуре TON отсутствует рыночный механизм определения комиссий за транзакции. Комиссии фиксированы и не подлежат изменению в зависимости от приоритетов транзакций, что делает опережение менее привлекательным. Из-за фиксированных комиссий и детерминированного порядка транзакций осуществлять опережение в TON нетривиально.

Блок

Какой метод RPC используется для получения информации о блоках?

Блоки, созданные валидаторами. Существующие блоки доступны через Liteservers. Liteservers доступны через Lite Clients. На основе Lite Client созданы сторонние инструменты, такие как кошельки, обозреватели, dapps и т. д.

  • Чтобы получить доступ к ядру Lite Client, ознакомьтесь с этим разделом нашего GitHub: ton-blockchain/tonlib

Кроме того, вот три высокоуровневых сторонних обозревателя блоков:

Подробнее читайте в разделе Обозреватели в TON нашей документации.

Время блока

2-5 сек.

Время до завершения

Менее 6 сек.

Средний размер блока

max block size param 29
max_block_bytes:2097152

:::info:::

Какова структура блоков в TON?

Подробные пояснения по каждому полю макета:

Транзакции

Метод RPC для получения данных транзакций

Является ли транзакция TON асинхронной или синхронной? Можно ли получить доступ к документации, которая показывает, как работает эта система?

Асинхронные сообщения блокчейна TON:

  • отправитель подготавливает тело транзакции (сообщение boc) и транслирует его через Lite Client (или инструмент более высокого уровня)
  • Lite Client возвращает статус трансляции, а не результат выполнения транзакции
  • отправитель проверяет желаемый результат, прослушивая состояние целевого аккаунта (адреса) или состояние всего блокчейна

Объяснение того, как работает асинхронный обмен сообщениями TON, приводится на примере, связанном со смарт-контрактами кошелька:

Пример передачи контракта кошелька (низкоуровневый):

Можно ли определить, завершена ли транзакция на 100%? Достаточно ли запроса данных уровня транзакции для получения этой информации?

Короткий ответ: Чтобы убедиться, что транзакция завершена, необходимо проверить аккаунт получателя.

Чтобы узнать больше о проверке транзакций, см. следующие примеры:

Какова структура транзакции в TON?

Подробные пояснения по каждому полю макета:

Возможна ли пакетная обработка транзакций?

Да, пакетная обработка транзакций в TON может быть выполнена двумя различными способами:

  • Используя асинхронную природу TON, т. е. отправляя независимые транзакции в сеть
  • Используя смарт-контракты, которые получают задачу и выполняют ее как пакет

Пример использования пакетного контракта (high-load wallet):

Кошельки по умолчанию (v3/v4) также поддерживают отправку нескольких сообщений (до 4) в одной транзакции.

Стандарты

Какая точность валют доступна для TON?

9 цифр

к сведению

Количество десятичных знаков, поддерживаемых основной сетью: 9 цифр.

Существуют ли стандартизированные протоколы для выпуска, сжигания и передачи взаимозаменяемых и невзаимозаменяемых токенов в транзакциях?

Невзаимозаменяемые токены (NFT):

Жетоны (токены):

Другие стандарты:

Есть ли примеры разбора событий с Жетонами (токенами) и NFT?

В TON все данные передаются как boc-сообщения. Это означает, что использование NFT в транзакциях не является исключительным событием. Скорее, это обычное сообщение, которое отправляется или принимается из (NFT- или Wallet-)контракта, что очень похоже на транзакцию с использованием стандартного кошелька.

Однако некоторые API индексаторы позволяют просматривать все сообщения, отправленные в контракт или из него, и фильтровать их в соответствии с вашими конкретными требованиями.

Чтобы лучше понять, как работает этот процесс, см. раздел Обработка платежей.

Структура аккаунтов

Каков формат адреса?

Возможно ли владеть именным аккаунтом, похожим на ENS

Да, используйте TON DNS:

Как отличить обычный аккаунт от смарт-контракта?

Как узнать, является ли адрес адресом токена?

Для жетонов контракт должен реализовывать стандартный интерфейс и возвращать данные с помощью методов get_wallet_data() или get_jetton_data().

Существуют ли какие-либо специальные аккаунты (например, аккаунты, принадлежащие сети), которые имеют правила или методы, отличные от остальных?

Внутри TON есть специальный главный блокчейн, называемый Мастерчейн. Он состоит из общесетевых контрактов с сетевой конфигурацией, контрактов, связанных с валидатором, и т. д.:

к сведению

Подробнее о мастерчейне, воркчейнах и шардчейнах читайте в обзорной статье с блокчейне TON: Блокчейн Блокчейнов.

Хорошим примером является смарт-контракт управления, который является частью мастерчейна:

Смарт-контракты

Можно ли обнаружить события развертывания контракта в TON?

Все в TON является смарт-контрактом.

Адрес аккаунта генерируется детерминированн из его начального состояния, которое включает начальный код и начальные данные (для кошельков начальные данные включают открытый ключ среди других параметров). При изменении любого компонента адрес изменяется соответствующим образом.

Смарт-контракт может существовать в неинициализированном состоянии, что означает, что его состояние недоступно в блокчейне, но контракт имеет ненулевой баланс. Первоначальное состояние может быть отправлено в сеть позже с помощью внутреннего или внешнего сообщения, чтобы их можно было отслеживать для обнаружения развертывания контракта.

Чтобы защитить цепочки сообщений от остановки на несуществующих контрактах, TON использует функцию «bounce». Подробнее читайте в этих статьях:

Представляет ли возможность обновления смарт-контракта угрозу для его пользователей?

В настоящее время возможность обновления смарт-контрактов является обычной практикой и широко используется в большинстве современных протоколов. Это связано с тем, что возможность обновления позволяет исправлять ошибки, добавлять новые функции и повышать безопасность.

Как снизить риски:

  1. Обращайте внимание на проекты с хорошей репутацией и известными командами разработчиков.
  2. Авторитетные проекты всегда проводят независимые аудиты кода, чтобы убедиться, что код безопасен и надежен. Ищите проекты, которые прошли несколько аудитов от авторитетных аудиторских фирм.
  3. Активное сообщество и положительные отзывы могут служить дополнительным показателем надежности проекта.
  4. Изучите, как именно проект реализует процесс обновления. Чем прозрачнее и децентрализованнее процесс, тем меньше риск для пользователей.

Как пользователи могут быть уверены, что владелец контракта не изменит определенные условия (через обновление)?

Контракт должен быть проверен, это позволяет вам проверить исходный код и убедиться, что нет логики обновления, чтобы гарантировать, что он останется неизменным. Если в контракте действительно отсутствуют механизмы для изменения кода, условия контракта останутся неизменными после развертывания.

Иногда логика обновления может существовать, но права на изменение кода могут быть перемещены на "нулевой" адрес, что также исключает изменения.

Возможно ли повторно развернуть код на существующий адрес или его нужно развернуть как новый контракт?

Да, это возможно. Если смарт-контракт выполняет определенные инструкции (set_code()), его код может быть обновлен, а адрес останется прежним.

Если контракт изначально не может выполнить set_code() (через свой код или выполнение другого кода, поступающего извне), то его код не может быть изменен никогда. Никто не сможет повторно развернуть контракт с другим кодом по тому же адресу.

Можно ли удалить смарт-контракт?

Да, либо в результате накопления платы за хранение (контракт должен достичь баланса -1 TON, чтобы быть удаленным), либо путем отправки сообщения с режимом 160.

Чувствительны ли адреса смарт-контрактов к регистру?

Да, адреса смарт-контрактов чувствительны к регистру, поскольку они генерируются с использованием алгоритма base64. Узнать больше об адресах смарт-контрактов можно здесь.

Совместима ли Ton Virtual Machin (TVM) с EVM?

TVM несовместима с виртуальной машиной Ethereum (EVM), поскольку TON использует совершенно другую архитектуру (TON асинхронный, а Ethereum синхронный).

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

Можно ли писать на Solidity для TON?

В связи с этим экосистема TON не поддерживает разработку на языке программирования Solidity от Ethereum.

Но если добавить асинхронные сообщения к синтаксису Solidity и возможность взаимодействия с данными на низком уровне, то получится FunC. FunC имеет синтаксис, который является общим для большинства современных языков программирования и разработан специально для разработки на TON.

Удаленные вызовы процедур (RPC)

Рекомендуемые поставщики узлов для извлечения данных включают:

Типы API:

  • Подробнее о различных типах API (индексированные, HTTP и ADNL)

Партнеры-поставщики узлов:

Каталог с проектами сообщества TON:

Ниже приведены два основных ресурса, используемых для получения информации, связанной с конечными точками публичных узлов в блокчейне TON (как для TON Mainnet, так и для TON Testnet).