Строительство будущего

Crypto Jam — с банкой

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

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

Посмотрите мой готовый проект здесь!

Язык, который вам нужно знать 🧠

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

Что такое криптовалюты? На базовом уровне

Хотя блокчейн изначально был задуман в начале 1990-х годов, первая реальная, ощутимая реализация появилась только в 2008 году — в знаменитой форме биткойна Сатоши Накамото.

Биткойн произвел фурор в морях мировой торговли и экономики благодаря своим уникальным принципам, связанным с блокчейном. Он был децентрализован, неизменен и имел реальную ценность благодаря системе криптографических доказательств, известной как Proof of Work.

Доказательство работы — это механизм консенсуса, который гарантирует, что Биткойн и другие криптопроекты сохранят свою значимость, обменивая созданную майнерами ценность (в данном случае электричество и вычислительную мощность) на проверку в блокчейне. Сегодня в индустрии блокчейнов используется множество других механизмов проверки, но два основных, которые вы должны понимать, — это Proof of Work (как объяснялось выше) и Proof of Stake, которые экономят электроэнергию, случайным образом выбирая машины для добычи новых блоков из пул пользователей, которые поставили криптовалюту в качестве залога за возможность майнить.

Именно благодаря механизмам проверки криптовалюты могут существовать и сохранять ценность в Интернете; до Блокчейна кто-то мог просто бесконечно копировать jpg до такой степени, что никто не знал происхождения JPG — что вызывает беспокойство, когда мы обсуждаем понятие денег в Интернете. Если бы вы могли бесконечно копировать свои онлайн-деньги, не было бы возможности проверить, законны ли ваши деньги или нет.

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

Обзор проекта

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

Это был один из моих первых блокчейн-проектов, и поначалу прогресс был медленным. Я обнаружил, что часто учусь лучше всего, взламывая свой путь к готовому проекту, поэтому я отказался от использования каких-либо отдельных руководств для своего проекта и вместо этого попытался органично применить навыки, которые я изучил до сих пор, чтобы построить проект без чрезмерных усилий. ссылка на что-либо другое. Исключением из этого правила является то, что я использовал отличный учебник Pixie.js с https://georgefrancis.dev/, чтобы построить эстетику внешнего интерфейса на языке дизайна Glassmorphism (Джордж Фрэнсис невероятно талантлив, я предлагаю проверить его портфолио и предыдущие работы).

Краткая техническая информация

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

Начиная

После создания базы знаний я сразу же приступил к проекту.

Моим первым шагом было создание модели смарт-контракта токена, чтобы изучить основные требования к криптовалюте; по сути, все криптовалюты должны удовлетворять нескольким параметрам, чтобы их можно было использовать в качестве криптовалют. Эти параметры включают в себя трехзначный символ, имя, поставку, функцию, позволяющую дробить токены (номера Solidity не будут делать это автоматически), и адрес, на который контракт отправит первоначальную поставку токенов. Это довольно легко построить в Solidity, после чего вы можете развернуть свой контракт в тестовой сети, создать пользовательский интерфейс React.js для взаимодействия с ним и сразу же начать обмениваться токенами между учетными записями для развлечения.

Однако, несмотря на то, что этот смарт-контракт функционирует в тестовой сети, он не будет содержать необходимого кода для того, чтобы ваша новая криптовалюта могла использоваться в основной сети Ethereum в какой-либо значительной степени, и именно здесь вступает в игру стандарт ERC20. Стандарт ERC-20 гарантирует, что все монеты/токены в основной сети Ethereum совместимы с различными Dapps, которые конечные пользователи захотят использовать для взаимодействия со своими токенами.

Создайте стандартный токен ERC-20

Создание смарт-контракта токенов стандарта ERC20 легко выполняется с помощью OpenZepplin ERC20 Preset, который вы можете вставить в файл на Remix (онлайн-редактор Solidity со встроенным графическим интерфейсом для взаимодействия с токенами ERC20), немного отредактировать а затем развернуть его в блокчейне. После того, как вы разместите свой токен в тестовой сети, Remix передаст адрес контракта во встроенный графический интерфейс, и вы сможете приступить к поиску своего контракта на Etherscan! Последний шаг — отправить токен на адрес вашего кошелька, что проще всего сделать с помощью графического интерфейса Remix.

Веселая часть

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

Если вы используете кошелек, такой как Metamask, функция отправки и получения криптовалюты уже встроена в его пользовательский интерфейс, но знание того, как создать пользовательский интерфейс для взаимодействия с криптопроектом или DAPP, по-прежнему является ценным навыком, поэтому давайте сделаем краткий обзор основы. В Интернете есть множество видеороликов, в которых рассказывается об особенностях создания пользовательского интерфейса для взаимодействия с токеном и проводится от 0 до 100, поэтому я быстро подытожу.

Технический стек и краткое объяснение кода

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

Если ваша настройка среды Hardhat прошла успешно, вы откроете краткое руководство, которое перенаправит вас в папку примера проекта. Пример проекта представляет собой небольшую программу Solidity, которая при подключении к своему App.js и сценариям развертывания console.log записывает предустановленную текстовую строку каждый раз, когда вы загружаете программу. Забавно, но довольно бесполезно. Удалите файл Greeter.sol. Собственно, поскольку мы уже запустили контракт Token в блокчейн через Remix, нам ничего не нужно в папке с контрактами.

удалить этот файл🙄

Создайте свой пользовательский интерфейс

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

В файле App.js вам понадобятся как минимум три основные функции: функция приложения, функция getBalance и функция sendCoins.

  • В функции App все, что вам нужно сделать, это запросить учетную запись Metamask пользователя, а затем создать переменную из ввода текстового поля, чтобы получить адрес кошелька, на который вы отправляете свой токен, а также использовать большой числовая переменная, чтобы установить размер единицы вашего токена равным 1,0.
  • В функции getBalance вы читаете контракт токена и идентифицируете его в кошельке Metamask пользователя, а затем уведомляете пользователя об их текущем балансе.
  • Наконец, функция sendCoins запрашивает учетную запись пользователя, проверяет, что они подписывают контракт, затем использует переменные, которые мы создали выше, в функции и отправляет указанное количество криптовалюты на выбранный адрес.

И толпа сходит с ума 🎉

Виола, теперь вы криптопрофессионал… не совсем; это было невероятно поверхностное объяснение. Моя цель в этом посте заключалась не столько в том, чтобы дать вам все навыки разработчика, которые вам понадобятся, чтобы немедленно приступить к созданию проектов блокчейна, а в том, чтобы познакомить вас на базовом уровне с техническим стеком и различными терминами, которые вам понадобятся для начала создания в блокчейне. . А также объяснить на техническом уровне сложные системы в сети, которые мы идентифицируем как криптовалюты.

Давайте рассмотрим

  1. Криптовалюты содержат принципы, связанные с блокчейном, такие как децентрализация, неизменность и механизмы проверки, которые способствуют их уникальной способности поддерживать ценность в Интернете.
  2. Механизмы проверки — это системы, которые полагаются на разные узлы в сети для передачи транзакций в блокчейне. Двумя наиболее популярными из этих механизмов проверки являются Proof of Work и Proof of Stake.
  3. Процесс создания криптовалюты довольно прост, поэтому важно проводить исследования при инвестировании в криптовалюты. У некоторых монет есть законные команды, работающие за кулисами, чтобы продолжать наращивать ценность своего проекта и окружающего его сообщества, в то время как другие криптовалюты создаются в течение часа в чьем-то подвале и не имеют никакого будущего, если не считать первоначального ажиотажа, который они сумели создать. .
  4. DAPP, созданные для блокчейна, можно легко интегрировать и взаимодействовать в средах разработки Web2, если у вас есть приличный опыт работы с языками интерфейса, такими как React.js и Javascript.

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