Создать собственный живой токен на Ethereum проще, чем вы думаете

Примечание редактора: эта статья предназначена только для информационных и развлекательных целей и не предназначена для финансовых рекомендаций.

Всем привет! Прошло некоторое время с тех пор, как я хотел создать несколько проектов вокруг блокчейна, а в последнее время я играл с Ethereum и с тем, как разрабатывать смарт-контракты с использованием языка программирования Solidity. Сегодня я хочу поделиться с вами своим первым проектом - созданием и развертыванием токена ERC20.

В этой статье мы предоставим код для простой криптовалюты, а также все шаги, необходимые для запуска вашего токена в сети Ethereum. Для тех, кто заинтересован в более визуальном опыте, я записал полную сессию, объясняющую все содержание этой статьи и выполняя программирование и развертывание вживую. Посмотреть вид можно здесь:

Давайте начнем!

Требования

Есть несколько вещей, которые нам нужно подготовить заранее, прежде чем создавать наш токен, и они описаны ниже.

Выберите свою сеть Ethereum

Вы, вероятно, знакомы с Ethereum и его сетью, однако знаете ли вы, что работает несколько экземпляров Ethereum? Большинство людей знакомы с основной сетью Ethereum, в которой выполняются все транзакции и где работают все биржи (или, по крайней мере, должны). Но это еще не все: существуют альтернативные сети, использующие тот же код, что и основной экземпляр, например, для целей тестирования. Примером этого является «Тестовая сеть Ropsten», которую мы будем использовать сегодня для развертывания нашего кода.

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

Если мы находимся в основной сети Ethereum, нам придется использовать реальные деньги, такие как евро или доллары США, чтобы сначала купить Ethereum, а затем создать свой токен. Не очень удобно просто попробовать. Однако прелесть тестовой сети в том, что мы можем получить бесплатный Ethereum с помощью приложений, называемых сборщиками. Теперь это просто поддельные ETH, поэтому мы не можем продать их никому и ничему, но этого достаточно, чтобы развернуть наши тестовые токены.

Кошелек и аккаунт

Теперь, когда мы знаем, какую сеть мы хотим использовать для создания и развертывания нашего токена, нам нужно создать кошелек и учетную запись в этой сети. Я настоятельно рекомендую вам использовать MetaMask для этой задачи.

MetaMask - это расширение, которое запускается как расширение в вашем браузере и позволяет вам создавать учетные записи в нескольких сетях, а также имеет интеграцию с интерфейсами развертывания, которые мы собираемся использовать сегодня, что значительно упрощает работу, чем при использовании любого другого метода. Так что загрузите MetaMask и настройте его в своем браузере, создав учетную запись в Ropsten Test Network. Этот процесс очень простой и управляемый, поэтому я не буду вдаваться в подробности.

Затем вам понадобится немного фальшивого ETH в вашем аккаунте. Для этого вам нужно запустить приложение под названием кран. Вы можете использовать сборщик из самой MetaMask, это очень просто, он автоматически подключит вашу учетную запись и отправит вам один ETH.

Кроме того, вы можете просто погуглить «Ethereum Faucet» и выбрать один из сотен доступных. Обычно они запрашивают у вас номер вашей учетной записи (общедоступный) и, имея только эту информацию, переводят вам X суммы ETH, обычно один, что более чем достаточно для наших целей.

Информация о токене

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

  • Символ токена: это идентификатор токена, например, токен для биткойнов - это BTC. Для выбора можно использовать от трех до пяти буквенно-цифровых символов.
  • Имя токена: например, Биткойн или токен LCS
  • Total Supply: Сколько токенов мы хотим создать в целом.
  • Десятичные дроби: сколько десятичных знаков вы можете использовать для разбиения токена, например Десятичные знаки «0» делают токен двоичным независимо от того, есть ли у вас токен или нет. «2» десятичные дроби позволяют дробить токен, так как меньший размер равен 0,01; и вы можете добавить до «18» десятичных знаков.
  • Учетная запись владельца: учетная запись в той же сети, что и токен, который получит токены при создании. Это может быть та же учетная запись, что и учетная запись, используемая для оплаты комиссии GAS, как мы сделаем в нашем примере ниже.

Код

И последнее, но не менее важное: вам понадобится код, который будет запускать нашу собственную криптовалюту. Я уже подготовил для вас образец кода, который реализует спецификацию ERC20 и предоставит вам базовую функциональность криптовалюты.

Вы можете скачать код здесь:



Обновление кода

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

pragma solidity ^0.4.24;
// ----------------------------------------------------------------------------
// Sample token contract
//
// Symbol        : {{Token Symbol}}
// Name          : {{Token Name}}
// Total supply  : {{Total Supply}}
// Decimals      : {{Decimals}}
// Owner Account : {{Owner Account}}
//
// Enjoy.
//
// (c) by Juan Cruz Martinez 2020. MIT Licence.
// ----------------------------------------------------------------------------

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

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

Итак, как нам его обновить? Для каждой переменной я назначил код, заключенный в {{ }}. Вам нужно найти и заменить все вхождения на каждое из них. Это очень просто сделать в любом редакторе кода.

Давайте начнем с примера, найдем и заменим все вхождения {{Token Symbol}} для вашего символа токена, в моем случае: LCSTK, здесь кавычки не нужны. После замены он должен выглядеть так:

pragma solidity ^0.4.24;
// ----------------------------------------------------------------------------
// Sample token contract
//
// Symbol        : LCSTK
// Name          : {{Token Name}}
// Total supply  : {{Total Supply}}
// Decimals      : {{Decimals}}
// Owner Account : {{Owner Account}}
//
// Enjoy.
//
// (c) by Juan Cruz Martinez 2020. MIT Licence.
// ----------------------------------------------------------------------------

И, пожалуйста, сделайте то же самое с именем токена.

Затем нам нужно указать общее количество и десятичные дроби, которые идут рука об руку. Вам может быть интересно, почему. Давайте рассмотрим пример для объяснения. Допустим, мы хотим создать двоичный токен, либо у меня есть токен, либо у меня нет, но у меня не может быть 0,5 токена, и мы также хотим, чтобы было создано всего 1000 токенов. Тогда наши переменные были бы заменены следующим образом:

Total Supply: 1000
Decimals: 0

Однако, если мы хотим иметь несколько десятичных знаков, скажем, два, нам нужно будет изменить общее предложение, добавив ноль для каждого десятичного знака в конце желаемого числа. Это означает, что если мы хотим, чтобы общий объем предложения составлял 1000, нам нужно обновить наш код до 100000 (1000 + 00), давайте посмотрим, как это выглядит сейчас:

// ----------------------------------------------------------------------------
// Sample token contract
//
// Symbol        : LCSTK
// Name          : Live Code Stream Token
// Total supply  : 100000
// Decimals      : 2
// Owner Account : {{Owner Account}}
//
// Enjoy.
//
// (c) by Juan Cruz Martinez 2020. MIT Licence.
// ----------------------------------------------------------------------------

Отлично, мы почти у цели. Теперь нам нужно только указать учетную запись, которая будет получать все созданные токены. Перейдите в MetaMask и скопируйте номер своей учетной записи, и еще раз найдите и замените переменную во всех случаях. В конце ваш код должен выглядеть так:

// ----------------------------------------------------------------------------
// Sample token contract
//
// Symbol        : LCSTK
// Name          : Live Code Stream Token
// Total supply  : 100000
// Decimals      : 2
// Owner Account : 0x6009f738dcF7194EfddDfc3B13Ce325e21A05175
//
// Enjoy.
//
// (c) by Juan Cruz Martinez 2020. MIT Licence.
// ----------------------------------------------------------------------------

ПРИМЕЧАНИЕ. Очень важно использовать «найти и заменить все вхождения», иначе у вас будут ошибки компиляции позже в процессе. Теперь наш файл готов к развертыванию, это так просто!

Развертывание

Хорошие люди из Ethereum предоставляют нам IDE (интегрированную среду разработки), которая полностью способна обрабатывать весь процесс, от редактирования файлов, сборки и развертывания, среди прочего.

К этой среде IDE под названием Remix можно легко получить доступ через браузер. Оказавшись там, вы увидите следующий экран:

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

Здесь вам нужно будет создать новый файл, нажав кнопку «+» рядом с папкой «браузер» на левой панели. Там уже есть несколько файлов, но вы можете их игнорировать. Вы можете назвать файл так, как вам нравится, это не имеет отношения к процессу.

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

Теперь наш код готов к компиляции. Для этого посмотрите на панель значков в левом углу. Прямо сейчас мы находимся на первом значке «Проводник», но нам нужно открыть вторую вкладку «Компилятор Solidity».

Как только вы нажмете «Скомпилировать», и если все в порядке, вы должны увидеть несколько опций, появляющихся в раскрывающемся поле контракта, одна из которых является вашим токен-контрактом. (Символ жетона + «Жетон»)

Когда все выглядит хорошо, нам просто нужно развернуть код, теперь перейдите на четвертую вкладку в меню «Развертывание и выполнение транзакций».

Есть несколько вещей, которые нам нужно изменить, прежде чем мы на самом деле нажмем «Развернуть». Во-первых, поскольку мы используем MetaMask, нам нужно изменить «Environment» с «JavaScript VM» на «Injected Weg3».

В тот момент, когда вы это сделаете, MetaMask предложит вам подтвердить, что вы хотите подключить свой кошелек MetaMask к Remix, нажмите «Подтвердить». После того, как вы это сделаете, ваша учетная запись автоматически заполнит поле «Учетная запись», указанное ниже, с номером учетной записи и вашим текущим балансом в эфире.

Наконец, нам нужно указать, что мы хотим развернуть, убедитесь, что вы выбрали свой контракт в раскрывающемся поле «Контракт». Ваш токен-контракт - это ваш токен-символ + "Жетон". Наконец, нажмите «Развернуть».

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

Вот и все! Теперь ваш токен активен. Но как вы это видите?

Настройка MetaMask для получения моего токена

До этого момента наш токен уже существует в сети Ethereum и может использоваться для транзакций, однако как получить доступ к своим токенам? Оказывается, MetaMask, как и другие кошельки, уже может работать с вашим токеном, поскольку он соответствует спецификации ERC20.

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

Когда процесс развертывания завершился, мы получили такой экран:

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

С этим кодом откройте MetaMask и нажмите «Добавить токен». Появится всплывающий экран с двумя вкладками, переключитесь на вторую вкладку под названием «Пользовательский токен» и вставьте адрес, который вы скопировали, в поле адреса контракта. Это автоматически заполнит поля символа токена и десятичных знаков.

После этого нажмите «Далее», затем «Добавить», и все готово. Теперь вы можете видеть свои токены в кошельке MetaMask.

Выводы

Сегодня мы узнали, как создать и развернуть вашу собственную криптовалюту, следуя интерфейсу ERC20 и используя Remix и MetaMask. Процесс очень простой, и код, который мы предоставили, хотя и работает, является лишь минимальным примером. Вы можете построить множество замечательных вещей на основе того, что мы сделали сегодня, и я надеюсь, что смогу услышать от вас все замечательные проекты, которые вы создаете, используя мощь блокчейна.

Спасибо за прочтение!