Эфириум для веб-разработчиков

2

В течение некоторого времени я изучал платформу Эфириум. И чем больше я узнавал, тем перспективнее она казалась.

Есть много ресурсов (статьи, видео, документация платформы) об Эфириуме, и сложно их все рассмотреть. Но многие из них устарели, так как платформа по-прежнему развивается быстрыми темпами. Мне потребовалось время, чтобы собрать всю необходимую информацию и, наконец, понять, что такое Эфириум и как он работает. В беседах с разработчиками на встречах групп и онлайн-сообществ создается впечатление, что многие из них хотят опробовать эту новую технологию, но сталкиваются с той же проблемой. Эта статья — моя попытка объяснить Эфириум с точки зрения веб-разработчика.

Если вы веб-разработчик, то знаете, как работает веб-приложение с его клиент-серверной архитектурой.

1

 

У вас есть веб-приложение, размещенное у провайдера хостинга, например AWS, Heroku или VPS. Все клиенты взаимодействуют с этим центральным приложением. Клиентами могут быть браузеры, другие API, использующие ваш сервис, и т. д. Когда клиент отправляет запрос на сервер, последний обрабатывает его, обращается к базе данных и/или кэшу, считывает/обновляет/записывает информацию и обслуживает клиент.

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

Рассмотрим eBay. Вы надежный продавец, который заработал сотни хороших отзывов. И по каким-либо причинам руководство eBay блокирует вашу учетную запись. Это может серьезно повлиять на ваш бизнес. Было бы неплохо иметь возможность забрать все эти отзывы и данные о рейтинге и перенести их на другую платформу (например, к конкуренту eBay). Площадка eBay выступает в роли надежного посредника между покупателями и продавцами. Но она также берет комиссию с каждой продажи. А что если есть способ исключить eBay из взаимодействия между покупателем и продавцом, чтобы не платить комиссию и сохранить доступ ко всем своим данным? Именно для этого и нужны децентрализованные приложения. И Эфириум позволяет с легкостью их создавать.

Вот так примерно выглядит Dapp (децентрализованное приложение) на базе Эфириума:

2

Как видите, каждый клиент (браузер) связан с собственным экземпляром приложения. Здесь нет центрального сервера, к которому обращаются все клиенты. Это значит, что каждому человеку, который хочет взаимодействовать с децентрализованным приложением, нужна полная копия блокчейна, запущенная на его/ее компьютере/телефоне и т. д. То есть, прежде чем вы сможете использовать приложение, вам необходимо загрузить весь блокчейн. Это может звучать нелепо, но у такого подхода есть преимущество: не нужно полагаться на один центральный сервер, который однажды может выйти из строя.

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

А теперь, что же такое блокчейн? У него есть:

  1. База данных. Каждые несколько транзакций, которые осуществляются в сети Эфириума, упаковываются в блоки. Каждый блок связан со следующим блоком. Этот связанный ряд блоков, который хранит данные обо всех транзакциях, и есть блокчейн. Если вернуться к примеру с eBay, то каждая транзакция между покупателями и продавцами, будь то продажа, возврат или диспут, будут зафиксированы в блокчейне и доступны всем. Чтобы все ноды в сети хранили одинаковую копию данных и в базу не попала неверная информация, Эфириум использует алгоритм «Доказательство выполнения работы».
  2. Код. С аспектом хранения данных в блокчейне все ясно. Но где же логика, которая отвечает за покупку, продажу, отмену, возврат и т. д.? В мире Эфириума код приложений (их называют контрактами) пишут на языке Solidity. Затем его компилируют в байт-код Эфириума, а последний развертывают в блокчейне. Есть и альтернативы, но Solidity служит самым популярным языком для разработки контрактов.

То есть блокчейн хранит ваши данные, хранит код и запускает этот код в EVM (виртуальной машине Эфириума).

Для создания децентрализованных веб-приложений платформа Эфириума предоставляет полезную библиотеку javascript под названием web3.js, которая связана с блокчейном вашей ноды. И вы можете включить эту библиотеку в любимый фреймворк js, например react.js, angular.js и т. д., и создавать приложения.

Еще одна важная особенность — финансовые возможности платформы. Как только вы начинаете использовать децентрализованное приложение, вы получаете встроенный банковский счет. И не один, а столько, сколько захотите. Эти счета называют кошельками, где вы можете хранить деньги (эфир — валюту в экосистеме Эфириума) и совершать транзакции.

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

Источник: medium.com



Рубрики:DApps, Новичкам, Ethereum

Метки: , ,

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s