Шаг 1. Отправка вашего первого портала разработчика транзакций
Первые шаги
Если у вас есть опыт веб-разработчика, многое из того, что вы уже знаете, применимо к разработке блокчейнов. Цель этого руководства – познакомить вас с отличиями, чтобы вы могли начать изучать и строить.
Здесь нет ничего удивительного: самая большая разница заключается в использовании блокчейнов, и в этом руководстве мы в первую очередь будем ссылаться на блокчейн Ethereum, поскольку в нем самое большое сообщество разработчиков. Зачем вам включать разработку блокчейна в свой стек? Блокчейн позволяет делать ряд увлекательных вещей, которые действительно бросают вызов нашим предположениям о том, как люди взаимодействуют в Интернете и с Интернетом..
Что вы можете делать с блокчейном (и никогда не могли раньше)
Цифровые товары, принадлежащие пользователям, которыми можно торговать
С помощью блокчейна вы можете (легко) создавать токенизированные активы, которые пользователи могут хранить и торговать за пределами вашего сайта. Например, Gods Unchained – это коллекционная карточная игра в стиле Magic the gathering, в которой пользователи могут физически владеть своими картами и обменивать их за пределами платформы. Что интересно в этом, так это то, что отдельные карты имеют идентификационные данные и могут использоваться в другом месте или продаваться на сторонних торговых площадках. Вы можете, например, продать карту, которая использовалась в матче чемпионата, как предмет коллекционирования, так же, как и мяч для хоумрана чемпионата MLB..
Платежи и перевод ценностей
Благодаря фундаментальной интеграции криптовалют упрощается прием платежей и упрощение операций с ценными бумагами: банковские переводы, кредитные карты, PayPal – все это требует значительных усилий со стороны разработчиков для интеграции. Эти преимущества особенно актуальны для сообществ с ограниченным доступом к банковским и кредитным услугам: у нас есть тематическое исследование использования Ethereum для облегчения перевода стоимости и выплаты помощи в лагерях беженцев в Иордании..
Личность пользователя и конфиденциальность данных
Существуют уникальные характеристики того, как пользователь устанавливает свою личность через сеть блокчейнов. Используя такое программное обеспечение, как Metamask, пользователи могли иметь единый вход во весь Интернет. Возможно, вам не придется обрабатывать пароли или входить в систему на своем сайте, что означает меньшее количество запросов на потерю пароля. Конфиденциальность данных можно повысить, предоставив пользователю контроль над тем, кто получает доступ к его информации, и предоставив им возможность подписывать транзакции. Когда пользователь покидает сайт, операторы сайта больше не имеют прямого доступа к его данным..
Глобальное постоянное состояние Интернета
Сегодняшний Интернет построен из множества технологий, но нет центральной власти в том, что является правдой. Интернет-гиганты, такие как Facebook, могут владеть ключами к своим королевствам с обширными сетями и базами данных, которые функционируют как постоянное состояние, однако они находятся в частной собственности, и их сфера действия обычно ограничивается их собственными организациями. Блокчейн как сеть, содержащая неизменяемые данные с течением времени, обладающая высокой степенью безопасности и стойкостью к взлому и не имеющая единственного владельца, может служить источником истины для участников сообщества..
Цифровая нехватка
Обмениваемые токены и криптовалюта полагаются на блокчейны, чтобы обеспечить инфраструктуру для дефицитных цифровых активов. В то время как цифровые активы в прошлом были либо бесконечно копируемыми, либо защищены сложными схемами DRM, единый источник истины с постоянным состоянием, такой как блокчейн, позволяет создавать уникальные цифровые активы, которыми можно владеть, но не копировать, что означает эти вещи. может иметь реальную ценность.
Web2 против стека блокчейнов Web3
Существуют разные блокчейны, у каждой из которых есть свои сети, свои правила и свои сообщества участников. Данная платформа блокчейна, такая как Ethereum, может иметь различные сети, к каждой из которых вы можете подключиться со всеми своими данными. Вы можете создать свою собственную сеть, что мы сделаем позже в этом руководстве..
Каждая сеть состоит из отдельных узлов, на которых работают экземпляры программного обеспечения узла цепочки блоков. Вместо стандартной модели сервер-клиент в блокчейнах используются децентрализованные одноранговые протоколы для связи друг с другом и достижения консенсуса в отношении состояния сети..
В типичном стеке веб-разработки вы можете создать интерфейс, используя html, CSS, javascript и фреймворк, например, react. Этот интерфейс взаимодействует с серверной частью, которая включает хранилище файлов, среду выполнения и базу данных. Компоненты хранения, выполнения и базы данных могут находиться на одном сервере или быть частью облачной системы или сети доставки контента..
Единственная разница при создании приложения блокчейн (часто называемого распределенным приложением или dapp) заключается в том, что некоторая часть функциональности вашего приложения предоставляется блокчейном или другим распределенным механизмом. Подключение к блокчейну, например Ethereum, обычно осуществляется путем включения библиотеки javascript, такой как web3.js или ethers.js, в сочетании с программным обеспечением узла или API блокчейна. Библиотеки Web3 доступны на самых разных языках..
Хранение файлов, функциональность базы данных и выполнение могут происходить в цепочке блоков, хотя в настоящее время цепочки блоков не оптимизированы для больших объемов данных или сложного выполнения..
В качестве примера вы можете создать приложение, использующее типичный веб-стек, но создать смарт-контракт, который находится в цепочке блоков, для выполнения распределенных вычислений и взаимодействия с токенами или криптовалютой. Подробнее о смарт-контрактах поговорим позже..
Вы также можете создать приложение, которое в остальном является типичным, но проверка пользователя выполняется с помощью программного обеспечения, такого как Metamask, которое, помимо прочего, является цифровым кошельком и менеджером идентификации..
Отправка вашей первой транзакции
Давайте отправим вашу первую транзакцию в блокчейн как пользователь. Для этого вам понадобится кошелек.
Установка MetaMask
Метамаска является продуктом ConsenSys и включает кошелек и предлагает надежный набор инструментов для взаимодействия с блокчейнами Ethereum. Интересно для разработчиков, он внедряет глобальный API в любой посещаемый веб-сайт, доступный через javascript в window.ethereum; для получения всех подробностей просмотрите полные документы для разработчиков MetaMask на их сайте. Для начала установите расширение для браузера Chrome MetaMask или используйте приложение MetaMask Mobile, доступное в магазине Apple App или Google Play..
После установки пройдите процесс создания учетной записи. Вы можете заметить несколько вещей: во-первых, вам не нужно вводить адрес электронной почты или какую-либо другую личную информацию. Во-вторых, большое внимание уделяется написанию или хранению вашей «исходной фразы»; это важно, потому что это единственный способ получить доступ к своей учетной записи или восстановить его. Подробнее об этом позже.
После запуска Metamask вы увидите баланс своего аккаунта (0 ETH), а в правом верхнем углу вы увидите сеть, к которой вы в данный момент подключены. Разверните меню выбора сети, чтобы открыть список сетей. Выберите тестовую сеть Ropsten.
Основная сеть и тестовые сети
Каждая из этих сетей состоит из наборов компьютеров, на которых запущено программное обеспечение узла. Большинство узлов находятся в Mainnet, которая является основной сетью хранения стоимости для Ethereum. На момент написания этой статьи насчитывалось чуть более 8000 узлов, составляющих основную сеть Ethereum. Вы можете исследовать сетевые узлы на Ethernodes или Etherscan.
Тестовые сети содержат гораздо меньше узлов (сеть Ropsten имеет 3 узла), и в них eth не имеет значения. Эти сети используются в основном разработчиками для тестирования своих децентрализованных приложений и смарт-контрактов перед их запуском в основной сети. Вы также заметите, что MetaMask дает возможность подключиться к localhost или настраиваемому RPC. При разработке приложений Ethereum вы можете использовать метамаску для подключения и взаимодействия с программным обеспечением узла, работающим в вашей собственной системе или любой другой сети..
Получение тестового эфира
В MetaMask скопируйте свой публичный адрес в буфер обмена, щелкнув имя своей учетной записи:
Ваш общедоступный адрес идентифицирует вашу учетную запись и может быть передан другим пользователям: это то, что кто-то другой будет использовать для отправки вам токенов. Это что-то вроде номера банковского счета или адреса электронной почты, которым вы владеете и контролируете, что связано с этим адресом. Вы доказываете, что владеете этим адресом, подписывая транзакции своим закрытым ключом (который может быть сгенерирован из вашей исходной фразы), поэтому вы должны хранить их в секрете. С точки зрения блокчейна, любой, кто знает данный закрытый ключ, является владельцем любых активов, назначенных общедоступным адресам, связанным с закрытым ключом. Ваш публичный адрес будет выглядеть примерно так:
0xDa4A488d8c58D57F4046CAbAc73DA0DB778DC930
Вы можете использовать кран для отправки тестового эфира на свою учетную запись. Попробуйте использовать Смеситель Ropsten: вставьте свой публичный адрес в поле учетной записи и нажмите «Отправить мне тестовый эфир». Скоро вы увидите, что в вашем аккаунте заполнен 1 ETH..
Что здесь случилось? Вы отправили свой публичный адрес в сборщик Ethereum. Faucet выполнил транзакцию, отправив 1 ETH, принадлежащий его собственному смарт-контракту, на указанный вами адрес. Вы могли указать любой адрес, и транзакция была бы выполнена. Узлы в сети перехватили транзакцию и включили ее в добытый блок, который был записан в цепочку блоков и распространился по сети. Затем MetaMask считывает данные с узла в цепочке блоков и сообщает о транзакции и вашем текущем балансе. Нет прямой связи между краном и MetaMask.
Есть еще один способ получить тестовый эфир. Зайдите в кран MetaMask; обратите внимание, что этот сайт не загрузится, если у вас не установлена MetaMask (или другой веб-интерфейс). Этот процесс демонстрирует другой пользовательский поток.
Здесь вы можете видеть, что свойства пользователя не определены. Благодаря этой реализации вам не нужно копировать и вставлять свой адрес из MetaMask. Когда вы нажимаете кнопку «запросить 1 эфир», MetaMask спросит вас, хотите ли вы подключиться к сайту. Принятие этого подключения передаст ваш публичный адрес сайту, отобразит ваш баланс на странице, и транзакция состоится:
Такое подключение аналогично входу на сайт; однако никакой регистрации не потребовалось. Вход через MetaMask предлагает возможности для единого входа, поскольку сайты могут настраивать себя в зависимости от подключенной учетной записи. В этом случае следующий код JavaScript используется для подключения к учетной записи пользователя с использованием объекта ethereum, введенного MetaMask:
ethereum.request ({метод: ‘eth_requestAccounts’});
После завершения транзакции в вашем кошельке в сети Ropsten должно быть 2 ETH..
Отправка тестового эфира
Теперь, вернувшись в поле пользователя MetaMask Ether Faucet, нажмите оранжевую кнопку 1 ether, чтобы пожертвовать 1 ETH обратно в сборщик. Появится новое уведомление:
MetaMask просит вас одобрить эту транзакцию; когда вы подтвердите, MetaMask подпишет транзакцию, используя ваш закрытый ключ, необходимый для проверки узлами блокчейна. Обратите внимание, что есть и другие варианты транзакции: нажмите кнопку «Изменить» в левом верхнем углу, чтобы увидеть более подробную информацию. Плата за газ компенсирует узлам и майнерам расходы, связанные с выполнением транзакции. Каждая транзакция в Ethereum имеет комиссию, связанную с вычислениями, необходимыми для поддержания работы сети. В данном случае 0,000021 ETH.
Поскольку любая транзакция должна пройти конкурентный процесс принятия узлами и включения в блок, прежде чем она будет включена в цепочку блоков, вы можете обеспечить более быстрое выполнение транзакции, увеличив вознаграждение за газ, предоставляемое майнерам за включение вашей транзакции в их следующий блок.
Нажмите «Далее» и подтвердите. Ваша транзакция будет указана как ожидающая, и через несколько минут ваша транзакция станет частью блокчейна, и вы увидите обновленный баланс вашего аккаунта в MetaMask..
Следующие шаги
На этом вводном шаге мы познакомили вас с некоторыми основами транзакций и взаимодействия с блокчейном, в первую очередь с точки зрения пользователя с помощью MetaMask. На шаге 2 этого руководства вы создадите свою собственную сеть блокчейнов, будете взаимодействовать с ней локально и изучите контракт на Remix. На шаге 3 вы лучше познакомитесь с местной разработкой, воспользуетесь Infura, свяжете все вместе с React и подключитесь к тестовой сети Ethereum..
- Подключение разработчиков: шаг 2
Подключение разработчиков: шаг 2
Подключение разработчиков: шаг 3
Подключение разработчиков: шаг 3
10-минутная ориентация на Ethereum