Опубликован: 28.01.2018 | Доступ: свободный | Студентов: 924 / 143 | Длительность: 06:54:00
Лекция 1:

Основы технологии блокчейн

Лекция 1: 123 || Лекция 2 >

Взаимодействие веб-сайтов и блокчейна

Рассмотрим популярные браузеры MetaMask и Mist. Оба они представляют собой связующее звено между обычным браузером для просмотра интернет-страниц и блокчейном С помощью корректно настроенного веб-сайта можно выполнять программы и отправлять команды в блокчейн. Пользователь сможет запустить любой браузер: например, Chrome, Firefox, Internet Explorer или другой браузер, зайти на такой веб-сайт и взаимодействовать с блокчейном. Для этого к блокчейну необходимо подключиться. MetaMask представляет собой надстройку для Chrome и Firefox, облегчающую подключение к блокчейну.


Mist, в свою очередь - это полновесный браузер, оснащенный собственным узлом сети блокчейна.


В случае с Mist, узлом блокчейна является Geth, или Go-Ethereum, непосредственно встроенный в браузер. MetaMask для работы использует сервис под названием Infura. В среде Infura используются узлы Geth и Parity, которые запущены на стороне сервера, а не на компьютере клиента, а Infura реализует подключение к ним. Чтобы познакомиться с надстройкой MetaMask, можно открыть браузер, например, Chrome, найти раздел с иконками надстроек, далее открыть MetaMask и можно начинать работать с блокчейном. Кошелек Mist выглядит так: слева доступ к различным разделам, есть отображение статуса подключения и синхронизации данных, в центре располагается собственно браузер Это позволяет работать с блокчейном и просматривать веб-страницы можно одновременно.

Что такое Solidity

Solidity представляет собой язык программирования высокого уровня. Для ее работы требуется компилятор solc, который формирует байткод для виртуальных машин Ethereum.Встречаются мнения, что Solidity похож на JavaScript. В первых версиях так и было, однако сейчас эти два языка значительно расходятся. Тем не менее, Solidity похож на JavaScript больше, чем любой другой язык программирования.

Remix, веб-среда разработки для Solidity

Remix - это облачная среда разработки, поддерживающая много полезных функций. Доступ к Remix можно получить по адресу http://remix.ethereum.org. Среда Remix позволяет создавать и запускать код на языке Solidity прямо в окне браузера. Remix оснащена встроенным отладчиком и статическим анализатором кода, а также многими другими инструментами.


На текущий момент Remix выглядит так. Слева расположен браузер, с помощью которого можно управлять файлами. В центре располагается окно для создания кода, а справа - управляющие элементы - вкладки для компиляции (Compile), запуска (Run), изменения настроек (Settings), отладки (Debugger), анализа (Analysis) и получения поддержки (Support).На вкладке Run можно выбрать среду запуска кода, например, виртуальную машину Java. Remix предоставляет доступ к нескольким счетам в эмулированной среде Ethereum для апробирования создаваемого кода. С их помощью можно размещать и обсчитывать контракты, а потом анализировать результаты благодаря наличию журнала исполнения кода.

Использование библиотек Web3.js и Eth.js

Библиотеки Web3.js и Eth.js облегчают взаимодействие между браузером и блокчейном и позволяют работать узлами сети Ethereum по протоколу RPC посредством HTTP и кода JavaScript. Если запустить локальный узел блокчейна, он откроет интерфейс HTTP-RPC, что позволит браузеру отправлять узлу команды, чтобы узел, в свою очередь, переправлял данные в блокчейн.

Библиотека Truffle и ее отличие от Web3.js

Truffle и Embark являются инструментариями для среды Solidity и разработки распределенных приложений для работы с блокчейном. Оба они поддерживают управление контрактами, их размещение в блокчейне, или миграцию, оснащены встроенной системой тестирования приложений, а Truffle еще и предлагает решение Truffle Boxes - предварительно настроенные среды разработки распределенных приложений, значительно облегчающие работу, такие как Truffle-React, Truffle-Webpack и так далее. При серьезном подходе к разработке приложений для блокчейна стоит уделить внимание Truffle и Embark и постепенно отходить от использования только библиотеки Web3.js.

Использование Angular, Vue.js, React и Redux в разработке приложений для блокчейна

Такие наборы инструментов, как Angular, Vue.js, React, Redux предназначены для разработки веб-страниц и непосредственно не работают с блокчейном, Truffle, Solidity и другими подобными средами. Для работы с Angular, Vue.js, React, Redux или другими инструментариями для создания веб-страниц обычно достаточно загрузить библиотеку Web3, подключиться к узлу блокчейна и настроить взаимодействие с блокчейном с помощью Web3.

Применение инструментов Browserify и Webpack

Webpack - это упаковщик файлов JavaScript, необходимо использовать тогда, когда программа использует большое количество файлов: Webpack собирает их воедино, разрешает все взаимозависимости между файлами, позволяя коду обращаться только к паре мастер-файлов, что значительно ускоряет загрузку веб-приложения, тк веб-серверу больше не приходится отправлять несколько сотен файлов.

Browserify делает примерно то же самое, но на базовом уровне - ведь Webpack сразу решает спектр задач по упаковке файлов для веб-разработки. Browserify представляет собой только упаковщик, разрешающий файловые взаимозависимости и объединяющий много файлов в один. Node Package Manager, или NPM, загружает и управляет пакетами для узлов сети Ethereum, что облегчает разработку веб-проектов.

Итоги

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

Лекция 1: 123 || Лекция 2 >
Алексей Миронов
Алексей Миронов

Здравствуйте, сколько стоит курс Работа с Ethereum?