BTC/USD 26488.81 0.52%
ETH/USD 1838.80 0.12%
LTC/USD 87.88 -0.05%
BRENT/USD 73.55 0.86%
GOLD/USD 0.00 0.00%
RUB/USD 82.09 0.78%
Tokyo
Moscow
New-York
146

Как использовать платформу эфириум

0
Автор материала: Евгения Лиходей

Данный материал рассчитывает на некоторый уровень начальных знаний о платформе ethereum. Мы не будем здесь объяснять базовые понятия и сразу перейдём к раскрытию темы статьи. Детали разработки в рамках данной статьи рассматривать мы также не будем. Только общее поверхностное описание принципов работы с приложениями подобного класса.

Для разработчиков

Платформа ethereum была разработана совсем недавно, и отсюда следуют такие её характеристики, как неразвитость инфраструктуры для разработки, незаконченность основного языка разработки, отсутствие нормальной документации, очень малое количество специалистов, способных проконсультировать, помочь в случае нестандартных проблем при разработке. Всё ещё хотите стать разработчиком?

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

Запуск ноды

Архитектура децентрализованных приложений такова, что для работы необходимо подключение к какой-либо из копий программы. Почти всегда это будут ваша собственная копия. Когда вы скачиваете кошелёк эфириума и весь блокчейн, вы тем самым поднимаете свою рабочую ноду на своём компьютере.  Для разработки нужно сделать почти тоже самое, только не нужно скачивать весь блокчейн. Можно и достаточно скачать geth (ПО для ноды без блокчейна) и запустить на нём тестовый блокчейн (пустой). Geth – это официальный терминал с поддержкой командной строки с возможностью разработки и запуска децентрализованных приложений эфириум. Сейчас существует много аналогов, способных заменить geth для целей разработки. Например, самым популярным будет testrpc. Проще всего смотреть на такие программы как на программы-сервера, которые необходимо запустить и оставить в памяти компьютера, что позволит вам вести разрабатывать свои приложения – компилировать их и выгружать в блокчейн для проверки.

Инструменты для разработки

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

Основы разработки

Сейчас все контракты программируются на solidity. Это язык, имеющий много общего с JS, но отличающийся объектно-ориентированным подходом. Каждый контракт это по своей сути класс с параметрами и методами доступа к ним. По завершению разработки и выгрузке контракта в сеть, только методы являются интерфейсом для вашей программы. Вся дальнейшая работа с вашим смарт контрактом будет вестись через методы вашего класса-контракта. Это не совсем классический подход в программировании, когда вы подготавливаете программу, которую можно запускать.

Далее, после выгрузки контракта в сеть, вы разрабатываете интерфейс пользователя на клиентском JS, который вызывает данные методы и передаёт результат вызова пользователю. Для пользователя это будет простой сайт, на котором крутятся ваши js dspjds методов смартконтракта.

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

Для пользователей

С другой стороны провода находятся пользователи, с определёнными ожиданиями от вашей программы. И ждут они гарантированного и безопасного приложения, которое выполняет заранее оговоренные процедуры. Достоверность вашего приложения они имеют возможность увидеть в открытых кодах, выложенных на github. Таковы правила разработки смартконтрактов, и в этом ценность данного приложения.

Работа с эфириум приложениями

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

Однако есть одна особенность всего направления, позволяющая оставить пользователя без клиентской интерфейсной части на html. Всё дело в том, что пользователями системы пока ещё являются в основном элитные it разработчики и продвинутые в области интернет технологий лица. К внедрённому в сеть смартконтракту для них всегда есть возможность доступа через стандартное программное обеспечение сети эфириума. Когда вы устанавливаете на компьютер кошелёк-браузер mist от ethereum, вы тем самым получаете интерфейсную часть доступа к любому смартконтракту сети. Эта интерфейсная часть состоит из следующих простых и не очень удобных шагов:

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

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


Стоит отметить ещё один нюанс умных контрактов с позиции пользовательского доверия. Если вы сами не разбираетесь в программировании и не можете проверить код, то это не значит, что программе нельзя доверять. За вас это могут сделать эксперты. Вот почему при внедрении контрактов часто используют сторонние аудиты кода. Особенно часто это практикуется перед проведением ICO на базе платформы Ethereum.

 

Преимущества и недостатки:

  • Популярность технологии обеспечена её полезными возможностями, среди которых:
  • Открытый код приложений – все написанное всегда выкладывают на github в свободный доступ. Это основа доверия подобным приложениям.
  • Отсутствие посредников – если у вас перед глазами правила работы смартконтракта, и они заменяют вам работу посредника, то для чего нужен посредник с его платными услугами, если можно обойтись без него и всем будет хорошо?
  • Неподконтрольность регуляторам и отсутствие цензуры – очень сложно повлиять, заставить убрать код или изменить его у приложения, которое раскопировалось по всему миру и при этом не подлежит изменению… Именно так, после того, как приложение попадает в блокчейн его код изменить нельзя. Даже разработчик не сможет такое сделать, и из этого вытекает следующее преимущество.
  • Условия не изменяются – если смартконтракт изначально не расчитан на изменение условий и в таком виде попал в блокчейн эфириума, то уже никто не сможет его изменить. В таком виде он будет в сети всегда. Повторю, что это при условии, что изначально в него не заложен механизм по уничтожению или изменению.
     

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

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

Примеры умных контрактов

Самый популярный способ использования умных контрактов, это проведение на их базе ICO (сбор средств под проект с выпуском нового токена). В данном случае делается один-два простых контракта для монеты и краудсейла, которые завязаны между собой и принадлежат проводящему ICO. Все в этом случае могут купить токены за эфир по указанному курсу, переведя эфир на адрес контракта. И только владелец может потом забрать этот эфир. Конечно, это очень упрощённая схема, но так оно работает.

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

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

Совместные фонды и системы вкладов для целей извлечения прибыли; системы расчёта и мера стоимости в различных играх; онлайн казино – это всё типовые примеры применения смартконтрактов. А сколько нетиповых?

Оценить возможность применения смартконтрактов можно очень просто. Для этого достаточно найти листинг всевозможных проведённых и ещё планируемых ICO, например www.tokendata.io. Там очень много предложений вложить деньги в развитие проектов, большинство из которых опираются на токены, которые в дальнейшем планируется использовать в качестве основной единицы расчёта в сложных сервисах, разработанных на базе смартконтрактов.

Заключение

Как видите, сейчас зарождается новая прослойка в программном обеспечении. Это чем-то напоминает появление протоколов http для использования браузерами в сёрфинге интернета. Всё конечно ещё впереди, но перспектива у направления определённо есть. Потому, несмотря на сложности разработки, на неразвитость инструментов для разработки, всё же стоит понемногу приобщаться к данной технологии, если вы являетесь разработчиком программного обеспечения. И с другой стороны, если вы хотите выступить в роли инвестора, то блокчейн проекты будут неплохим материалом для вашего анализа.

 

Теги:
Автор материала: