Выпускаем свой токен (для ICO) на базе TRON и TRC20
Сейчас мы будем создавать свой собственный токен (для выхода на ICO) на базе блокчейна TRON. Ниже автор статьи оставит раздел для навигации, дабы читатель сам выбрал с какого момента начать читать. Для крипто-чайников рекомендуется читать всю статью от начала и до конца.
Навигация:
- Что такое блокчейн, майнинг и криптовалюта;
- Что такое ICO;
- Что такое токен;
- Что такое смарт-контракт;
- Начало инструкции и подготовка;
- Создаем кошелек и получаем TRX;
- “Программируем” смарт-контракт;
- Немного про Solidity;
- Публикуем смарт-контракт;
- TRC20, TRC721 и TRC10: кратко об отличиях;
- Заполняем контактную информацию для токена;
- Добавляем токен в кошелек.
Что такое блокчейн, майнинг и криптовалюта
Очень простое объяснение чтобы понимать что вообще здесь происходит, и ввести читателя в курс дела.
Блокчейн – это цепочка блоков, каждый блок это “хранилище”, которое содержит определенное ограниченное количество информации (записей). Например, в случае с 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:
Зайдите на этот сайт и отправьте себе в тестовых целях TRX (криптовалюта в TRON). Тут у Вас попросят ввести адрес кошелька, его можно скопировать из TronLink (между балансом и именем кошелька). Не удивляйтесь что все так просто, это ведь не реальная криптовалюта, она не имеет цены, поэтому в тестовой сети можно получить ее бесплатно.
Если тестовая криптовалюта не пришла, нажмите обновить (рядом с шестеренкой настроек) внутри TronLink. Ну и проверьте, находитесь ли Вы в тестовой сети Nile.
Создаем смарт-контракт
Скачайте отсюда готовую базу для будущего смарт-контракта.
После, откройте все файлы в редакторе кода и перейдите в файл Token.sol:
Под цифрой 1 указано имя токена. Под цифрой 2 сокращание (Bitcoin – BTC, TRON – TRX, Ethereum – ETH), под цифрой 3 указывается число, которое обозначает максимальное количество точек после запятой (т.е на сколько сильно целую единицу токена можно дробить, 4 означает что 0.0001 минимальное значение токена, которое можно кому-то переслать), под цифрой 4 указывается общее количество выпускаемых токенов. Замените значения в файле на свои.
Зачем нужен Solidity
Если Вы не программист или просто не интересно зачем нужен язык программирования при создании смарт-контракта, просто пропустите этот раздел. Ничего не потеряете.
Смарт-контракт – это, в первую очередь, программа, и не просто программа, это натуральный бекенд (он будет исполняться в блокчейн). Вам никто не мешает внутри объявить свою функцию и обработчик событий, а потом, с помощью JavaScript (или 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”.
Если все прошло успешно, то Вы увидите зеленое уведомление:
Если все так, как на скриншоте выше (есть “Compiled success”), можете нажимать “Deploy”. Далее, у Вас откроется такое модальное окно:
Выберите в выпадающем списке “главный файл” (программисты называют это 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).
Оставьте комментарий