Как создать токен ethereum

Как создать свой токен на Эфириум: подробная инструкция

Вопреки ожиданиям, создание своего Ethereum Token – процесс стандартизированный и подробно проработанный разработчиками платформы. Создатели намеренно стремились к тому, чтобы любой желающий, даже не обладающий специальными знаниями по программированию, мог запустить свою монету, пользуясь готовым блокчейном сети. Авторы, по сути, создали цифровой конструктор, в котором в исходнике токена стандарта ERC20 нужно изменить несколько строк и с помощью программы «залить» результат в сеть. Разберемся подробнее, как создать свой токен на Эфириум.

Содержание статьи

Сущность идеи создания токенов на Ethereum

Ethereum – это среда, созданная огромным количеством соединенных между собой узлов (нод). Это объединение работает как единая машина, которую так и называют Ethereum Virtual Machine – виртуальной машиной Эфириума (сокращённо EVM). На базе сети действует система смарт-контрактов («умных контрактов»).

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

Формируя свою систему смарт-контрактов на базе блокчейна Ethereum, можно создавать собственный проект или децентрализованное приложение (dApps), расчетной единицей в котором будет такой токен. Примером внутренней валюты могут служить монеты систем SIA, Library и др. В самой сети Ethereum эти токены не дают каких-либо прав и привилегий, но могут иметь самостоятельную ценность.

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

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

Поэтому, чтобы не «множить сущности», в 2015 году на DevCon 1 был представлен так называемый Initial Standards Token, или стандарт для токенов Ethereum. После принятия его кошельком Mist, тестирования и добавления необходимых требований, был сформирован действующий стандарт ERC-20 (что расшифровывается как Ethereum Request for Comments 20). Стандарт не является обязательным, но следование ему заметно облегчает работу пользователю по формированию своей монеты, и делает ее понятной приложениям и сторонним сервисам.

ERC-20: стандарт Ethereum по созданию своей монеты

Содержательно смарт-контракт токена состоит из двух групп элементов:

  1. Структуры данных, связывающих сетевые адреса с количеством токенов, для чего существует набор публичных переменных.
  2. Набора функций, обеспечивающих пересылку активов между адресами (функции transfer и _transfer), перевод монет с чужих адресов (transferFrom), доступ других пользователей к средствам кошелька (approve), списание токенов (burn) и т.д.
Читайте также:  Текущая доходность объекта недвижимости

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

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

  1. Выбирается стандартная форма смарт-контракта, которую можно скачать по ссылке: github.com/artyomLisovskij/solidity-erc20-token-bootstrap (скачивать нужно оба файла с расширением .sol).

  1. В редактор Ethereum Remix (который доступен по адресу: remix.ethereum.org) с помощью кнопки «Load» или значка «Папка» загружаются оба скачанных файла.

  1. В файле NewToken.sol (открытом в этот момент в редакторе Remix), вместо значений переменных, содержащихся в треугольных скобках, вносятся выбранные ранее значения:
    • общего количества токенов – totalSupply (например, 123 тысячи),
    • названия монеты – name (например, Best Token Ever),
    • величины дробления – количества знаков после запятой – для возможности зачисления нецелого числа токенов – decimal (в примере – «4»),
    • символического обозначения монеты – symbol (BTE по первым буквам наименования).

  1. Данные сохраняются, и код с внесенными изменениями развертывается в сети. Для этого нужно воспользоваться каким-либо клиентом, например, MetaMask, который хоть и не компилирует умные контракты, но компиляцию легко произвести в том же редакторе Remix. Для этого открывается вкладка Compile в правой части экрана и запускается нажатием кнопки «Start to compile». При установке «метки» в соседнем поле, компиляция контракта будет происходить автоматически.
  2. Развёртывание контрактов с помощью установленного в браузер клиента MetaMask производится следующим образом:
  • Там же в редакторе Remix выбирается соседняя вкладка Run и подпункт Injected Web3. Ниже заполняются поля Gas limit и Value и нажимается Create.

  • Account, от которого будет происходить развёртывание при установленном клиенте MetaMask, подгружается автоматически, считывая информацию со страницы.

  • После нажатия «Submit» и внесения записи в блокчейн, контракт считается развернутым. Статут подтверждается в клиенте иконкой с изображением «документа», подписанной «Contract published». При нажатии на неё пользователь переходит на страницу транзакций.

Для осуществления операций с токеном нужны кошелек отправителя (например, создателя контракта) и кошелек получателя. Передавать токен можно, используя страницу Remix.

Розовый цвет обозначает платные операции записи, а голубой – бесплатные операции чтения. Для передачи монет вводится нужное количество токенов и адрес получателя. После проведения транзакции баланс можно проверить запуском операции balanceOf.

Публикация с использованием кошелька

Кроме описанного выше способа, можно осуществить публикацию умного контракта на блокчейне Ethereum с помощью официального кошелька Ethereum Wallet или кошелька MyEtherWallet.

Рассмотрим процедуру на примере Ethereum Wallet.

  1. В открытом приложении нажимается кнопка «Contracts», а затем – «Deploy New Contract».
  2. Для заполнения открывшегося поля «From» выбирается тот кошелёк, с которого будет отправляться транзакция и который будет «закреплён» за владельцем контракта («по умолчанию»).
  3. В «Select Contract To Deploy» (выпадающее меню) из исходного кода выбирается тот контракт, который пользователь планирует опубликовать, и заполняются параметры его конструктора.
  4. Определение комиссии производится прокруткой бегунка «Select Fee». Увеличение комиссии ускоряет проведение транзакции в системе, однако при публикации токенов на этом обычно экономят.
  5. Отправка транзакции осуществляется нажатием «Send Transaction».

Для добавления токена в Ethereum Wallet выбирается строка меню «Add Token», а затем указывается адрес, название токена, его символическое обозначение и количество десятичных. Для подтверждения введения данных нажимается кнопка «Ok».

Читайте также:  Облигация характеризуется ответ доходностью

На страницах ресурса github собрано множество примеров проектов по выпуску своих монет на платформе Ethereum. Найти исходники определённого токена можно по его адресу во вкладке «Source Code» на etherscan.io. Разработчики при запуске своего проекта рекомендуют авторам публиковать исходный код, поскольку предполагается, что прозрачность позволит повысить доверие пользователя к токену.

Источник

Как создать собственный токен на базе ERC20 от Ethereum и запустить ICO за 20 минут

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

Путем наглядного примера по запуску собственного ICO, эта статья нацелена на объяснение основ функционирования смарт-контрактов (англ. smart-contract) в блокчейн-сети Ethereum.

Основы blockchain-сети Ethereum

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

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

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

Solidity : Solidity — это язык для создания смарт-контрактов.

MetaMask/Mist/Кошелек MEW : Все это является цифровой средой, которая хранит ваши Ether-средства и другие токены, на основе Ethereum.

Шаг 1: Код

Откройте ваш любимый текстовый редактор и вставьте следующий код:

Вышеуказанный код для создания простого ERC20 токена написан на языке Solidity. Он хорошо прокомментирован и его можно легко понять. Вставив код в ваш текстовый редактор, найдите надпись «CHANGE THIS». Здесь вам необходимо данные, в зависимости от характеристик вашего токена. В моем случае, я назвал мой токен HashnodeTestCoin (HTCN). Общий объем выпуска ограничен и составляет 1000 токенов HTCN, однако минимально-возможное количество для хранения HTCN равняется 0.000000000000000001, поскольку в строке «decimal» установлено значение 18 — стандартное количество знаков после запятой.

Вдобавок, владелец контракта (тот, кто его исполняет), получает все начальные токены. Я установил ценовое соотношение для ICO по следующим образом:

1 ETH = 10 HTCN

Это значит, что если кто-то отправит нашему смарт-контракту 1 ETH, то в обмен получит 10 HTCN.

Шаг 2

Скачайте MetaMask — расширения для Chrome, чтобы сгенерировать цифровой-кошелек. Владелец этого кошелька является и владельцем смарт-контракта. В качестве альтернативы, можно использовать Mist или My Ether Wallet. Для простоты примера, в нашем проекте мы будем использовать расширение MetaMask.

Скачав и установив расширение, создайте аккаунт, защищенный паролем. Затем, в верхнем левом углу расширения выберите «Ropsten TestNet». Прежде чем запустить контракт в Main-сети Ethereum’а, мы протестируем наш контракт с помощью TestNet, чтобы убедиться, что все работает как было запланировано. Выглядит все это следующим образом:

Теперь перейдите к Remix IDE (онлайн-компилятор и отладчик Solidity) и вставьте код, который вы изменили под свои параметры. Не обращайте внимания на все возможные предупреждения. Затем перейдите в настройки и уберите флажок «Enable optimization», если он установлен.

Читайте также:  Состав работ обоснований инвестиций

Дальше перейдите во вкладку «Run» и нажмите на кнопку «Create», которая расположена под надписью вашего токена. Нажав на кнопку, MetaMask предложить приобрести несколько единиц Ether для теста и отправит транзакцию. Выглядит примерно так:

Убедитесь, что вы используете сеть Ropsten TestNet, а не MainNet и нажмите «Submit». Вас перенаправит на сервис Etherscan, где можно отследить текущую транзакцию. Для верификации транзакции может потребоваться примерно 30 секунд. Как только произойдет подтверждение, выглядеть все будет следующим образом:

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

Теперь пора проверить, работает ли все на самом деле.

Шаг 3

Если ранее все было выполнено в соответствии с инструкцией, вам должны прийти все начальные токены (в моем случае — 1000 HTCN), как только вы добавить их в свой кошелек. Поэтому скопируйте адрес контракта, перейдите в MetaMask – > Add Token и вставьте скопированный адрес. Выглядит все это дело так:

Нажмите на кнопку «Add» и перезагрузите MetaMask. Теперь вы должны увидеть всю начальную поставку (в моем случае — это все те же 1000 HTCN).

Шаг 4

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

Теперь перейдите в Etherscan на адрес ваше смарт-контракта и нажмите вкладку «Contract Code».

Нажмите на ссылку «verify and publish». Перейдя на новую страницу, заполните все детали, начиная с версии компилятора и возможностью оптимизации. Также не забудьте вставить исходный код нашего контракта, который мы скомпилировали в первом шаге.

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

Шаг 5

Чтобы окончательно запустить контракт, остается только переключить с TestNet на MainNet в расширении MetaMask (в верхнем левом углу расширения) и повторить шаги со 2 по 4. Обратите внимание, что для запуска контракта на MainNet понадобится потратить настоящий Ether. Поэтому не запускайте контракт до тех пор, пока не будете уверены на 100% (Смарт-контракты невозможно изменить и нельзя обновить после запуска). В нашем уроке, мы продолжим использовать TestNet.

Покупка токенов за Ether

В вашем ICO, пользователи будут покупать ваши токены за ETH. Помните, что мы установили цену в 1 ETH = 10 HTCN, пока разрабатывали контракт? Так вот, если пользователь захочет на вашем ICO купить 10 HTCN, ему придется заплатить 1 ETH. Давайте проверим это на практике.

Перейдите в MetaMask, создайте новый аккаунт и заполните его для теста несколькими Ether. Как только на аккаунте будут средства, нажмите «Send» и в поле адреса, вставьте адрес вашего смарт-контракта. В поле для количества токенов, введите 2 (ETH).

Отправьте 2 ETH и дождитесь подтверждения транзакции. Перезагрузите MetaMask и проверьте ваши токены через несколько секунд. Новый пробный аккаунт должен получит 20 HTCN (или другую сумму, в зависимости от того характеристик контракта) а у владельца контракта (в нашем случае это вы) должно остаться 980 (или около того) токенов HTCN.

Вдобавок вы должны получить 2 ETH.

Поздравляю с успехом!

Запуск страницы ICO

Чтобы отобразить количество ETH, привлеченное нашим проектом, мы будем использовать а нашем сайте библиотеку JavaScript, под названием Web3.js.

Откройте исходник страницы Hashnode Test Coin ICO и проверьте код в последнем

Источник

Оцените статью