Выпускаем свой токен (для ICO) на базе TRON и TRC20

Введение

Сейчас мы будем создавать свой собственный токен (для выхода на ICO) на базе блокчейна TRON. Ниже автор статьи оставит раздел для навигации, дабы читатель сам выбрал с какого момента начать читать. Для крипто-чайников рекомендуется читать всю статью от начала и до конца.

Навигация:

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

Очень простое объяснение чтобы понимать что вообще здесь происходит, и ввести читателя в курс дела.

Блокчейн – это цепочка блоков, каждый блок это “хранилище”, которое содержит определенное ограниченное количество информации (записей). Например, в случае с Bitcoin, TRON, Ethereum там хранятся транзакции (операции переводов) внутренней валюты (криптовалюты).

блокчейн пример

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

Когда майнер “майнит” внутри какого-то блокчейна (например, в Bitcoin, Ethereum) он просто создает новые блоки в цепочке блоков (блокчейне). Иными словами, расширяет сеть. И да, у каждой криптовалюты своя блокчейн сеть. За каждый новый созданный блок майнер получает вознаграждение – криптовалюту.

Что такое ICO

ICO – (c анг. Initial Coin Offering) форма привлечения инвестиций через криптовалюту. В мире фиатной валюты (деньги бумажные) есть такая штука, как IPO, это первая публичная продажа акций. Вот IPO это то же самое, что и ICO, только вместо акций продают крипто-токены.

Что такое токен

Токен – это инвестиционное предложение (как ценная бумага) внутри какой-то криптовалюты. Токен под капотом имеет “смарт-контракт”- это некий программный код, который помещается в блокчейн и описывает, что должно произойти, когда токен купили, переслали кому-то и т.д.

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

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

Смарт-контракт – это цифровой договор, как юридический (бумажный), только составляется он в виде программного кода. Обычно используется язык программирования Solidity.

На Solidity описывается какая-то логика присущая конкретному смарт-контракту (программисты называют это бизнес-логика), например: выпустить N-количество токенов и прислать их к нам на кошелек, далее брать с каждой транзакции (при пересылке токенов между пользователями) комиссию в 1$ (в криптовалюте). Сегодня мы как раз напишем подобный смарт-контракт, который выпустит N-количество токенов и пришлет их в наш кошелек.

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

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

Работаем с TRON, выпускаем свой токен

Сейчас мы выпустим свой смарт-контракт, который создаст нам много токенов и отправит их к нам на кошелек.

Перед началом

Нам потребуется браузер Google Chrome, любимый редактор кода (автор использует Visual Code Studio) и обычный офисный персональный компьютер. Да, мы будем программировать, но очень мало, поэтому справится любой внимательный человек (даже кто раньше никогда не писал код).

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

Visual Code Studio скачать можно отсюда, компьютером обеспечьте себя сами, а использовать как кошелек мы будем TronLink, официальный крипто-кошелек от TRON, поддерживающий тестовые сети, он идет в виде расширения для браузера Google Chrome.

Создаем кошелек и получаем TRX

Скачайте и установите TronLink в свой браузер. Создайте кошелек и перейдите в тестовую сеть TRON Nile Testnet:

переходим в тестовую сеть nile в tron

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

получаем бесплатную криптовалюту в тестовой сети Nile

Если тестовая криптовалюта не пришла, нажмите обновить (рядом с шестеренкой настроек) внутри TronLink. Ну и проверьте, находитесь ли Вы в тестовой сети Nile.

Создаем смарт-контракт

Скачайте отсюда готовую базу для будущего смарт-контракта.

скачиваем базу для смарт-контракта

После, откройте все файлы в редакторе кода и перейдите в файл Token.sol:

редактируем базовый смарт-контракт

Под цифрой 1 указано имя токена. Под цифрой 2 сокращание (Bitcoin – BTC, TRON – TRX, Ethereum – ETH), под цифрой 3 указывается число, которое обозначает максимальное количество точек после запятой (т.е на сколько сильно целую единицу токена можно дробить, 4 означает что 0.0001 минимальное значение токена, которое можно кому-то переслать), под цифрой 4 указывается общее количество выпускаемых токенов. Замените значения в файле на свои.

Зачем нужен Solidity

Если Вы не программист или просто не интересно зачем нужен язык программирования при создании смарт-контракта, просто пропустите этот раздел. Ничего не потеряете.

Смарт-контракт – это, в первую очередь, программа, и не просто программа, это натуральный бекенд (он будет исполняться в блокчейн). Вам никто не мешает внутри объявить свою функцию и обработчик событий, а потом, с помощью JavaScript (или Node.js), работать с этим. В рамках этой статьи мы не будем подробно останавливаться на этом, но ради примера можно продемонстрировать это:

пример активации кода из смарт-контракта через node.js

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

Не скажем что Solidity супер сложный язык программирования, наоборот, он очень простой. Хотя взять и быстро на нем что-то писать все равно не выйдет, как ни как у него есть интерфейсы, модификаторы функций, наследование классов, типы данных и даже работа с памятью. Поэтому, все равно программисту придется почитать о джентельменском наборе языка и потратить пару дней.

Плюс он работает в связке с Node.js, все библиотеки из примера выше официальные. Если у Ethereum есть библиотека чтоб связаться с блокчейн сетью через PHP, то у TRON такого нет.

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

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

По этой ссылке располагаются инструменты сборки для основной сети. Но нам это не нужно (просто на будущее запомните).

А по этой тоже самое, но для тестовой сети Nile. Нам как раз нужно именно сюда. Прежде чем загружать смарт-контракт, нужно соединить кошелек и сайт, для этого нажмите “Connect Wallet” и выберите TronLink в модальном окне.

пример соединения кошелька и сайта

Сначала соединитесь, потом загружайте файлы с кодом.

Потом, когда соединились, нажимайте на большую красную кнопку в центре экрана “Upload contract file(s)”. Выбирайте все 5 файлов и загружайте. После, нажмите на зеленую кнопку “Compile”, выберите версию компилятора “0.5.10” и нажмите “Confirm”.

компиляция смарт-контракта

Если все прошло успешно, то Вы увидите зеленое уведомление:

deploy (публикация) смарт-контракта часть 1

Если все так, как на скриншоте выше (есть “Compiled success”), можете нажимать “Deploy”. Далее, у Вас откроется такое модальное окно:

deploy (публикация) смарт-контракта часть 2

Выберите в выпадающем списке “главный файл” (программисты называют это entry point). В данном случае это Token.sol. После нажмите “Confirm” и подтвердите операцию в кошельке (модальное окно автоматически вылезет). Придется подождать от 30 секунд до 5 минут.

Через какое-то время Вы получите ссылку и адрес смарт-контракта. Сохраните его, он нам скоро пригодится. Можете перейти по ссылке и скопировать оттуда, так даже удобней будет. После, подождите пару минут (налейте чай, пока идет синхронизация на серверах) и переходите на страницу выпуска токена: Blockchain -> Record Token.

переходим на страницу выпуска токена

Вы попадаете на такую страницу:

выбираем тип (стандарт) токена

Здесь Вас попросят выбрать нужный тип токена, выбирайте TRC20.

TRC20, TRC721 и TRC10: кратко об отличиях

Лирическое отступление, расскажем про типы стандартов токенов. Если не интересно, просто пропустите…

TRC20 – это токен на базе самописного смарт-контракта. К слову, мы сейчас и занимались тем, что создавали смарт-контракт для него. Его основное преимущество в том, что немного “поигравшись” с Solidity мы можем создавать свои собственные функции, события (грубо говоря программируем смарт-контракт) и почти что бесплатно выпускаем свой токен (будет лишь небольшая комиссия за публикацию смарт-контракта).

TRC10 – это создание токена без возни с Solidity. В сравнении с TRC20 у него нет никаких плюсов… Ну, может только один, если кого-то напугал этот очень “сложный” туториал с Solidity. Но по итогу Вы получите самый обычный токен, еще и заплатите за это 1000 TRX.

Мы сейчас делаем обычный токен, по функционалу прям как токен типа TRC10, но из-за того что мы сделали смарт-контракт сами, мы сэкономим 1000 TRX. И если Вы прочитали раздел “Зачем нужен Solidity”, то еще и увидели (очень надеемся) потенциальную возможность создать приложения на базе смарт-контракта. Например, можно выпустить свой токен и в Solidity запрограммировать функцию, чтобы люди могли купить токен сами с Вашего сайта (а не вручную его всем пересылать).

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

Заполняем контактную информацию для токена

Продолжаем выпускать смарт-контракт для создания кучи токенов.

Так вот, выбираем TRC20 и вставляем адрес нашего смарт-контракта (выше мы просили сохранить его). В конце мы получим ошибку, мол токен уже выпущен, поэтому нажмите на ссылку в ошибке. Вас должно перекинуть в личный кабинет, там нужно выбрать наш токен и нажать “Update Token Information”.

заполняем контактную информацию

У Вас откроется страница, где нужно максимально подробно заполнить контактную информацию (это важно, ибо иначе токен будет помечен в блокчейн как “Scum” и будет заблокирован). Страница будет выглядеть как левое изображение на скриншоте выше, только там будет уже заполнена часть информации.

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

Позже, когда Вы все сделаете и сохраните контактную информацию токена, он появится в Assets в TronLink, и Вы сможете его добавить к себе в кошелек.

добавляем свой токен в кошелек

Если не появилась иконка, не расстраивайтесь, в течении часа все будет.

Если этого не произошло (в assets его нет), то сделайте это самостоятельно через личный кабинет на сайте tronscan (не забываем, мы в тестовой сети Nile). Выше, где раньше была кнопка “Connect Wallet”, появился идентификатор Вашего кошелька. Вы должны были это заметить когда соединили сайт и кошелек.

Перейдите в личный кабинет, в раздел “Record Token”, и нажмите на название своего токена. Вас переправит на персональную страницу смарт-контракта.

заходим в личный кабинет

И если в разделе “Reputation” нет надписи “Scum”, получится добавить токен в кошелек через специальную кнопку (смотрите скриншот ниже):

добавляем токен через адрес смарт-контракта (альтернатива)

В целом, на этом все. Можете делать с токеном все что хотите. Если повторите все описанные здесь действия в основной сети, то токен появится во всех крипто-кошельках поддерживающих сеть TRON (например Trust Wallet).


Создадим токен под ключ


Поможем выйти на ICO, создадим смарт-контракт и поможем выпустить собственный токен на базе TRON и Ethereum.

Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c
политикой конфиденциальности