1359 подписчиков
Адрес контракта - это криптографический хэш первоначальных данных и исходного кода контракта.
Все данные контракта полностью инкапсулированы, и с точки зрения программного кода он видит только хранение самого контракта и его баланс.
Токен в TON, который вы можете перенести, на самом деле является отдельным контрактом, который имеет свое собственное состояние, которое определяет некоторые атрибуты этого токена.
Контракты - это действительно низкоуровневые строительные блоки, которые вы можете создавать учетные записи кошельков, протоколы с несколькими подписями, большие децентрализованные приложения, отдельные токены или даже коллекции токенов.
TON гарантирует, что для каждого бита данных и за каждую секунду срока действия контракта существует назначенный платеж, называемый арендной платой, который вычитается из остатка контракта.
📚Ноты к лекции
Давайте углубимся в счета и контракты.
Контракты
На предыдущем уроке мы узнали следующее о контрактах:
Счет и контракт на низком уровне в TON являются взаимозаменяемыми условиями.
Контракт - это данные, код и баланс Toncoin.
Контракты получают входящие сообщения, обрабатывают их и издают исходящие сообщения, а также изменяют свое внутреннее состояние.
Но давайте погрузимся немного глубже. 🐳
📬 Контракт также имеет идентификатор или адрес. Этот адрес является криптографическим хэшом исходных данных контракта и исходного кода. ❓ Почему? ☑️ Вы не хотите менять адрес всякий раз, когда меняется состояние контракта, и именно поэтому адрес однозначно идентифицирует самое первоначальное состояние, с которым был создан контракт.
⛺ Вторым важным аспектом контрактов является их местность.
Все эти данные полностью инкапсулированы, и с точки зрения программного кода он видит только хранение самого контракта и его баланса. Он не может видеть состояние всех других контрактов. Это означает, что любые изменения, происходящие с контрактом в одной транзакции, полностью независимы от изменений в другом контракте в другой транзакции где-то еще в блокчейне. Это ключ к бесконечной масштабируемости блокчейна TON.
Что можно сделать с контрактами?
❓ Что вы можете построить с помощью контрактов?
Прежде всего, контракты позволяют создавать учетные записи пользователей. В TON учетная запись каждого пользователя на самом деле является пользовательским контрактом кошелька.
Во-вторых, контракт с несколькими подписями, который управляется несколькими пользовательскими кошельками.
В-третьих, контракты используются для создания некоторых вещей, которые вы обычно не считаете контрактом. Например, токены.
Токены в TON
В TON токен, который вы можете передать, на самом деле является отдельным контрактом, который имеет свое собственное состояние, которое определяет некоторые атрибуты этого токена.
💰 Одним из этих атрибутов является владелец.
Всякий раз, когда вы хотите изменить право собственности на токен, вы должны отправить сообщение на этот токен, в котором указан новый владелец. Затем токен проверит, что сообщение отправлено соответствующим владельцем, изменит его владельца на новый и закончит с ним.
Защита TON
Чтобы защитить сеть от атак типа "отказ в обслуживании", все контракты должны оплачивать их работу.
Этот платеж (также называемый сборами) состоит из многих, многих параметров, которые покрывают арендную плату, расходы на исполнение, маршрутизацию сообщений и некоторые другие вещи. Давайте погрузимся в самые важные. 🐳
❗ Каждый раз, когда вы выполняете код по контракту, вы вызываете затраты на газ - каждая инструкция в виртуальной машине, TVM, имеет назначенную стоимость в абстрактных единицах, называемых газом.
💎 На сетевом уровне существует параметр, который называется ценой газа, который определяет, сколько тонн вы должны заплатить за каждую инструкцию.
⏳ Чем дольше ваша программа работает, тем больше расходов на газ она понесет, и эта стоимость вычитается из баланса контракта.
❌ Всякий раз, когда баланс опускается до нуля, исполнение пррывается, и транзакция завершается неудачей.
💲 Стоимость газа гарантирует, что вы не сможете наложить неограниченные затраты на выполнение всей сети,
3 минуты
3 мая 2024