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

Как начать

Добро пожаловать в руководство для быстрого старта в TON-разработке! Здесь вы найдёте отправную точку для погружения в концепции TON, а также получите базовый опыт разработки приложений в экосистеме TON.

Что требуется для прохождения

  • Базовые знания о программировании.
  • Около 30 минут времени.

Примечание: Мы будем кратко объяснять ключевые концепции по мере их появления, но если вы предпочитаете более теоретический подход, можете сначала ознакомиться с ключевыми понятиями блокчейна TON.

Чему вы научитесь

  • Поймёте ключевые понятия блокчейна TON, включая сообщения, смарт-контракты и адреса.
  • Научитесь взаимодействовать с экосистемой TON, включая кошельки и эксплореры блокчейна.
  • Научитесь взаимодействовать с блокчейном TON: читать и записывать данные.
  • Настроите окружение разработчика, используя Blueprint для разработки смарт-контрактов.
  • Начнёте писать смарт-контракты, используя языки программирования FunC, Tolkи Tact.

Концепция смарт-контрактов

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

к сведению

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

Каждая обработка сообщения контрактом-получателем считается транзакцией, и может приводить к следующим действиям:

  • Отправка новых сообщений.
  • Изменение внутренних данных смарт-контракта или даже его кода.
  • Изменение его баланса.

У смарт-контракта есть следующие интерфейсы для взаимодействия:

  • Получение внутренних сообщений от другого смарт-контракта.
  • Получение внешних сообщений извне блокчейна.
  • Получение запросов к get-методам извне блокчейна.

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

к сведению

Это может показаться контринтуитивным, но обращение к get-методам из других контрактов невозможно.

Взаимодействие с экосистемой TON

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

Шаг 1: создайте новый кошелёк с помощью приложения

Самый простой способ создать кошелёк — открыть страницу https://ton.org/wallets и выбрать одно из перечисленных приложений. Они довольно похожи, мы в данном случае выберем Tonkeeper. Вперёд, установите его и запустите.

Шаг 2: мейннет и тестнет

В TON есть две разных сети с названиями мейннет и тестнет, их задачи различаются:

  • Мейннет — это основная сеть, где происходят реальные транзакции с использованием настоящей криптовалюты и экономической ценностью.
  • Тестнет — тестовая версия блокчейна TON. Это безопасная площадка, где разработчики могут тестировать свой код без финансового риска. Она в основном используется для разработки, тестирования смарт-контрактов и экспериментов с новой функциональностью.

Получение средств

Транзакции в TON всегда требуют определённого количества средств, поскольку исполнение кода смарт-контракта требует оплаты комиссии. Базовые транзакции в TON очень дешёвые — около 1 цента за транзакцию. Суммы в Toncoin, эквивалентной $5, хватит на сотни таких транзакций. Вот как можно обзавестись Toncoin:

  • В случае с мейннетом получить настоящие Toncoin можно либо с помощью простой кнопки «Купить» в интерфейсе кошелька, либо попросив кого-то прислать их на ваш адрес. Вы можете скопировать адрес из приложения кошелька, обычно он расположен рядом с вашим балансом.
к сведению

Не беспокойтесь, делиться своим адресом совершенно безопасно, если только вы не хотите сохранить в тайне свою связь с ним.

  • Для тестнета вы можете запросить тестовые средства в боте Testgiver Ton Bot полностью бесплатно! После небольшого ожидания вы получите 2 Toncoin, которые появятся в вашем приложении кошелька.

Шаг 3: создание кошелька в тестнете

Если вы решите использовать тестнет, можете сделать это следующим образом.

Создание мнемонической фразы

Чтобы создать ваш первый тестнет-кошелёк в Tonkeeper, можете получить мнемоническую фразу с помощью кнопки ниже. Не забудьте сохранить эту фразу!

Your mnemonic:
s

Создание кошелька

Для создания кошелька в тестнете нажмите Кошелёк -> Добавить кошелёк -> Аккаунт в Testnet. Затем импортируйте сид-фразу, созданную на предыдущем шаге.



Шаг 4: исследование блокчейна TON

Поздравляем! Мы создали наш первый кошелёк и впервые получили средства. Теперь давайте посмотрим, как наши действия отражены в блокчейне. Мы можем сделать это с помощью различных эксплореров.

Эксплорер — это инструмент, позволяющий вам запрашивать данные из блокчейна, исследовать смарт-контракты в TON, и просматривать транзакции. Для наших примеров мы будем использовать Tonviewer.

подсказка

Обратите внимание, что при использовании тестнета вам следует вручную изменить режим работы эксплорера на вариант Testnet. Не забудьте, что это разные сети, которые не обмениваются информацией о транзакциях или смарт-контрактах. Следовательно, ваш созданный в тестнете кошелёк не будет отображаться в режиме Mainnet, и наоборот.

Посмотрим на наш свежесозданный кошелёк с помощью эксплорера: скопируйте адрес кошелька из приложения и вставьте его в поисковую строку эксплорера, как на примере:

Скриншот поискового интерфейса эксплорера

Состояние адреса

Для начала посмотрим, какое состояние адреса у нашего смарт-контракта:

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

Это может ощущаться контринтуитивным: почему ваш кошелёк находится в состоянии неинициализирован (uninit), если вы его уже создали? Тут есть важный нюанс: разница между приложением кошелька и смарт-контрактом кошелька:

  • Приложение кошелька — это ваш офчейн-клиент для смарт-контракта кошелька.

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

  • Active: Это состояние развёрнутого смарт-контракта с положительным балансом. Для развёртывания нашего кошелька давайте отправим первую транзакцию особо важному человеку — самому себе — и посмотрим, как она выглядит в блокчейне. Откройте меню отправки в вашем приложении кошелька и переведите немного средств на свой собственный адрес, который вы скопировали ранее. В эксплорере наш контракт должен начать выглядеть примерно так:
Скриншот кошелька в активном состоянии
к сведению

Есть также четвёртое состояние «frozen». Оно означает, что расходы смарт-контракта на хранение данных превысили его баланс. В этом состоянии смарт-контракт не может осуществлять никакие операции.

Теперь наш контракт кошелька развёрнут и готов к использованию. Давайте изучим, что показывает пользовательский интерфейс:

Раздел с метаданными

  • Address: Уникальный идентификатор вашего аккаунта (например, QQB...1g6VdFEg).
  • Balance: Текущее количество TON.
  • Type: Версия контракта (например, wallet_v51r1 — определяется автоматически по коду).
  • State: Состояние адреса. Есть четыре варианта: nonexisting, uninit, active и frozen.

Навигационные панели

  • History/Transactions: Показывает недавнюю активность (например, получение средств или развёртывание контракта).
  • Code: Показывает код смарт-контракта в «сыром» виде, скомпилированный из кода на языке FunC, Tolk или Tact.
  • Methods: Позволяет выполнять get-методы, чтобы получать данные из постоянного хранилища контракта.

Следующие шаги

  • Теперь, когда вы освоились с приложением кошелька, сделайте следующий шаг. Создайте ещё один аккаунт, попробуйте переводить TON между ними, и посмотрите на получившиеся транзакции в эксплорере.
  • Когда будете готовы, переходите к следующему шагу:

Чтение из сети

Was this article useful?