22 ноября 2022

⛓️ Пошаговая инструкция: создаем свой токен на базе блокчейна TRON

Технический директор компании vverh.digital. JavaScript программист, любитель Kotlin и Swift.
Наверное, многие из вас слышали о таких вещах как USDT, BUSD, WETH. Возможно, кто-то из вас даже покупал эти монеты на криптобиржах. Сегодня мы предлагаем всем желающим окунуться в мир блокчейна и разработки криптоактивов: мы сделаем свою монету, которую можно будет добавить к себе в криптовалютный кошелек.
⛓️ Пошаговая инструкция: создаем свой токен на базе блокчейна TRON

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

Что такое блокчейн

Блокчейн – это цепочка блоков. В каждом блоке хранится какая-то информация. Каждый блок – это некое хранилище, которое может содержать в себе какое-то ограниченное количество информации: обычно это транзакции (история операций криптовалюты).

Также в каждом блоке, кроме транзакций криптовалюты, может быть еще дополнительная информация: время создания блока, идентификатор майнера (кто создал блок) и транзакции токенов.

Токены (монеты) есть не во всех блокчейнах, например, в Bitcoin и Litecoin нельзя создавать свои токены. Токены можно создавать только в тех блокчейнах, которые реализовали идею смарт-контрактов (об этом через минуту). Например, Ethereum и TRON.

Что такое криптовалюта, майнинг и стейкинг

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

Например, когда майнер «майнит» внутри какого-то блокчейна, допустим, в Bitcoin, он просто создает новые блоки в цепочке блоков (блокчейне). То есть, он расширяет сеть. За это он получает вознаграждение в виде криптовалюты. До недавнего времени в Ethereum тоже была такая система, но сейчас криптовалюту дают за другие действия, и майнинг там ушел в небытие. В TRON криптовалюту тоже не майнят, а выдают за стейкинг.

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

И да, для тех, кто еще не понял, у каждой криптовалюты своя блокчейн-сеть и своя валюта. У Bitcoin – BTC, Ethereum – ETH, TRON – TRX.

Что такое смарт-контракт

Все очень просто. Смарт-контракт – это обычный алгоритм, код. Его часто называют «цифровой договор», поэтому многих людей это вводит в огромное заблуждение.

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

Смарт-контракты впервые были добавлены Виталием Бутыриным в блокчейн Ethereum. После этого некоторые современные блокчейны последовали его примеру, например: TRON, Smart Chain, Solana.

Особенность написания смарт-контрактов в том, что сами «цифровые договоры» программируются на языке программирования Solidity. После публикации смарт-контракта изменить его исходный код нельзя. Поэтому его нужно проверять очень дотошно, иначе его могут взломать. Если вносятся изменения в смарт-контракт, то нужно заново публиковать «договор» и заново просить людей «вписаться» в него. За публикацию смарт-контракта блокчейн берет комиссию в криптовалюте. Смарт-контракт публикуется только в одной сети, хотя ничто не мешает вам опубликовать его копию и в другой.

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека программиста»

Примеры смарт-контрактов

Как первый пример смарт-контракта можно рассмотреть популярный токен USDT. Да, для многих будет сейчас шок, но USDT – это не криптовалюта, а именно токен, созданный на базе блокчейна TRON. Если упрощенно: смысл этого смарт-контракта в том, чтобы выпустить N-ое количество монет после публикации смарт-контракта в блокчейне (мы чуть позже чем-то подобным займемся). А дальше эти монеты попадают на биржи и в кошельки людей, а как… это уже тема для другой статьи.

Если вы пользовались Binance и пытались с него вывести USDT на свой личный кошелек, то, возможно, обратили внимание, что нас просят выбрать сеть для вывода:

Пример выбора сети при переводе средств в другой кошелёк.
Пример выбора сети при переводе средств в другой кошелёк.

Если на данный момент ничего не изменилось, то мы можем выбрать либо сеть Ethereum, либо TRON. А все потому, что копии этого смарт-контракта были опубликованы в обеих сетях. Вот ссылка на смарт-контракт USDT для Ethereum, а вот для TRON. Сайт etherscan и tronscan позволяют просмотреть существующий смарт-контракт и информацию о нем.

Все это позволяет бирже легко конвертировать Tether (USDT) внутри кошелька с одной сети на другую без лишних проблем. В итоге, пользователю с этим получается очень удобно работать.

Ну и если развивать эту тему дальше, можно сказать, что BUSD, Dogecoin, WETH – это все тоже не криптовалюта, это все смарт-контракты. Вообще, половина монет на криптобиржах – это все токены, порожденные смарт-контрактами.

Как второй пример, можно рассмотреть проекты, которые чеканят NFT. Например, тут можно создать свой NFT (в правом верхнем углу, если авторизовались).

Пример маркетплейса с возможностью создать свой NFT токен.
Пример маркетплейса с возможностью создать свой NFT токен.
NFT – это единичный токен, который используют для подтверждения правом владения на какую-то цифровую вещь: картинку, звук и даже код. NFT создают с помощью смарт-контрактов. И да, не во всех блокчейнах, где есть смарт-контракты есть поддержка NFT… так бывает.

Работает все очень просто: вы заходите на сайт, связываете свой кошек и сайт, запускаете смарт-контракт, который создает вам NFT. И естественно, он предварительно забирает у вас за это какую-то комиссию в криптовалюте.

Стоп, стоп, стоп. Какой сайт? Какой запуск смарт-контракта через сайт? Это как? Мы надеемся, что в голове у вас появились именно такие вопросы. И это нормально. Чтобы это понять, пора переходить к Solidity.

Что такое Solidity

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

Solidity – это полноценный язык программирования, с помощью которого пишется смарт-контракт. Смарт-контракты пишутся в объектно-ориентированном стиле, на классах.

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

Принцип работы смарт-контракта легко представить бэкенд-разработчику. Загруженный смарт-контракт в блокчейн – это целое миниприложение, это бекенд, живущий своей жизнью. При написании своего кода на Solidity (уже скоро будем это делать), никто программисту не запрещает объявлять свои функции и переменные. А потом их можно вызывать даже из своего сайта. Посмотрите на скриншот ниже:

Пример связи смарт-контракта на Solidity и Node.js на сервере.
Пример связи смарт-контракта на Solidity и Node.js на сервере.

Программист объявил функцию name() в смарт-контракте. Функция возвращает имя контракта, которое он указал в другом месте. Далее, этот код был загружен в блокчейн. А на картинке справа, с помощью Node.js и специальной библиотеки от разработчиков блокчейна TRON – tronweb, программист соединяется с блокчейном и вызывает функцию name() из смарт-контракта. И да, он получает результат в свой Node.js код прямо из блокчейна. К слову, есть версия и для Python, правда, написанная энтузиастом.

Для справки
Многие блокчейны имеют подобные библиотеки, в основном на Node.js, например, у Ethereum есть библиотека web3. Да, можно найти версии web3 для PHP и Python тоже, просто они появились заметно позже и написаны кем-то на чистом энтузиазме.

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

Никто не мешает сделать сайт, куда пользователь будет загружать свою картинку. Картинка будет превращаться в base64-строку. Этот код мы будем (условно) отправлять в смарт-контракт в блокчейне, передавая аргументом код картинки в base64. В итоге получаем NFT. Монетизацию прикручивайте по желанию – никто вам не мешает в процессе получить за это свою комиссию в криптовалюте. Прямо в Solidity есть нужные для этого методы, просто надо их вызвать в правильном порядке.

Создание своего смарт-контракта и выпуск токена

Наконец-то переходим к самому вкусному. Но перед началом нам все равно нужно кое-что сделать.

Подготовка

Вам нужен браузер, который поддерживает плагины Google Chrome. Еще потребуется обычный офисный компьютер, любой удобный редактор кода и криптокошелек. Хотелось бы сказать любой… но нет, нам потребуется особенный, который поддерживает тестовую сеть – Tronlink. Скачайте его, он нужен лишь для разработки.

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

Создаем кошелек и получаем криптовалюту

В скачанном и установленном Tronlink нужно создать новый кошелек. Надеемся, тут вы справитесь сами. Как все будет готово, переключите кошелек на работу в тестовой сети Nile:

⛓️ Пошаговая инструкция: создаем свой токен на базе блокчейна TRON

После этого зайдите на этот сайт и попросите немного тестовой криптовалюты:

⛓️ Пошаговая инструкция: создаем свой токен на базе блокчейна TRON

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

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

Стандарты TRC20, TRC721

Через пару мгновений мы зайдем на GitHub и скачаем оттуда «базу» для создания токена. Сразу хотелось бы сказать, что мы будем создавать с вами токен на базе стандарта TRC20. Кратко хотелось бы ввести вас в курс дела, чтобы вы понимали разницу между стандартами.

TRC20 – это чеканка монет на базе самописного смарт-контракта. Что мы начали с вами делать.

TRC721 – это стандарт для создания своего NFT. То есть, если хотите сделать смарт-контракт, который создает NFT, то вам сюда.

Программируем смарт-контракт

Скачиваем базу для создания токена отсюда.

Скачиваем базу смарт-контракта стандарта TRC20.
Скачиваем базу смарт-контракта стандарта TRC20.

Открываем проект в любимом редакторе кода и идем в файл Token.sol. Тут меняем стандартные значения на свои:

⛓️ Пошаговая инструкция: создаем свой токен на базе блокчейна TRON
  1. Имя токена;
  2. Сокращение, например: BTC – Bitcoin, LTC – Litecoin, TRX – TRON;
  3. Максимальное число после точки с запятой. В нашем случае – 4. Это значит нашу монету можно будет дробить до 0.0001.
  4. Общее количество токенов, которое мы выпустим.

Публикуем смарт-контракт

TRON публикует смарт-контракты через сайт – это его основное отличие от Ethereum. В Ethereum публикация происходит через командную строку. Предварительно вам нужно синхронизировать свой компьютер с блокчейном, скачав килотонны данных о транзакциях: а это, на момент написания статьи, 520 ГБ.

По этой ссылке можно опубликовать свой смарт-контракт, но в боевую сеть. Вам это пока не надо. Поэтому идем сюда, тут располагается тестовая сеть Nile.

Нам надо авторизоваться, а потом загрузить наш код со смарт-контрактом. После нажатия на кнопку Upload Contract File(s), выберите все наши файлы (их 5) и загрузите:

⛓️ Пошаговая инструкция: создаем свой токен на базе блокчейна TRON

Далее, нажимайте на зеленую кнопку Compile, выбирайте версию Solidity 0.5.10, потом Confirm:

⛓️ Пошаговая инструкция: создаем свой токен на базе блокчейна TRON

Надо подождать какое-то время.

Если все собралось без ошибок и светится зеленым – можете продолжать. Нажмите Deploy:

⛓️ Пошаговая инструкция: создаем свой токен на базе блокчейна TRON

У вас должно открыться модальное окно, в котором надо сделать еще некоторые действия:

⛓️ Пошаговая инструкция: создаем свой токен на базе блокчейна TRON

В выпадающем списке Contract name нужно выбрать главный файл, в нашем случае это Token.sol (тут просто Token). Затем нажмите Confirm.

Через какое-то время вас попросят подтвердить операцию в кошельке, сделайте это. Также с вас возьмут комиссию. На момент написания статьи 4 TRX в тестовой сети.

Когда все будет готово, перейдите в свой профиль:

⛓️ Пошаговая инструкция: создаем свой токен на базе блокчейна TRON

А там в раздел Record a Token, после этого найдите свой смарт-контракт и нажмите Update Token Information:

⛓️ Пошаговая инструкция: создаем свой токен на базе блокчейна TRON

У вас откроется страница, где нужно заполнить информацию о токене максимально подробно, иначе у него будет статус Scum и его заблокируют:

⛓️ Пошаговая инструкция: создаем свой токен на базе блокчейна TRON

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

Добавляем токен в кошелек

Теперь вам должны предложить перейти на страницу с выпущенными токенами.

К слову, в кошельке у вас должно появиться уведомление в разделе Asset, рядом с кнопкой плюс. Вы можете нажать туда и добавить свой токен. Если этого не произошло, посмотрите на позапрошлый скриншот и вернитесь на страницу Record a Token. Теперь нажмите на имя токена, и вас перебросит на его страницу со смарт-контрактом.

Тут надо нажать на кнопку, которая автоматически добавит токен в кошелек:

⛓️ Пошаговая инструкция: создаем свой токен на базе блокчейна TRON

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

⛓️ Пошаговая инструкция: создаем свой токен на базе блокчейна TRON

В рамках тестовой сети Nile можете отправлять его кому угодно и вообще делайте что хотите. Если загруженная картинка не появилась, не беспокойтесь. Тут просто надо подождать.

***

Итог

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

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

Материалы по теме

МЕРОПРИЯТИЯ

Комментарии

 
 

ВАКАНСИИ

Добавить вакансию
Senior Software Engineer (Java)
от 4500 USD до 6000 USD
Senior DevOps Engineer
по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

LIVE >

Подпишись

на push-уведомления