Введение в Emerald Project

Как многие из наших читателей уже знают, команда ETCDEV работает над проектом Emerald, который станет платформой для будущих децентрализованных приложений (DApp), работающих на блокчейне Эфириума Классик. Одним из первых таких приложений станет Emerald Wallet, но проект не ограничивается созданием только кошелька. В этой статье мы расскажем, что такое Emerald Project и почему он важен для будущего ETC.

Какие проблемы решает Emerald Project?

Первая и самая очевидная проблема, которую решает Emerald Project, заключается в том, что в настоящее время у сообщества Эфириума Классик нет кошелька, который бы верифицировал транзакции для пользователей не требующим доверия образом.

Другие проблемы, которые проект призван решить – это отсутствие общей платформы для разработки DApp на основе Эфириума Классик, отсутствие компонентов пользовательского интерфейса (UI) и стандартных методик для сторонних разработчиков.

В результате, каждому разработчику DApp приходится каждый раз заново изобретать архитектуру и компоненты для новых DApp, реализовывать методы интеграции с аппаратными кошельками и настраивать индивидуальную поддержку для функций и токенов смарт-контрактов Эфириума. Это отнимает много времени и денег, и интегрировать Эфириум в существующие приложения на стороне клиента/сервера тоже непросто, так как RPC API, предоставляемый программами-клиентами Geth и Parity, слишком низкоуровневый для большинства сценариев использования.

Архитектура

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

Emerald состоит из следующих частей:

  • Geth либо другой сервис, предоставляющий стандартный Web3 API
  • UI для настольных компьютеров, мобильных устройств, веб-сайтов или консоли
  • Коннектор – связующее звено между UI и блокчейном, управляющее также всеми приватными данными, такими, как секретные ключи, адресная книга, отслеживаемые контракты и токены и т.д.

Узел RPC может быть локальной полной нодой, как Geth или Parity, либо удалённой конечной точкой API, которая уже предоставляется epool.io и GasTracker. Это позволит пользователям запускать Emerald Wallet в лёгком режиме, без синхронизации с основным блокчейном.

UI тоже может быть заменён. Мы работаем над простым интерпретатором командной строки, который можно было бы использовать для написания скриптов. В дополнение к этому мы ожидаем, что кто-то ещё (вне нашей команды) предложит полнофункциональный текстовый режим интерфейса кошелька для тех, кто не доверяет браузерам – просто потому что интересно сделать какой-нибудь vim-(или emacs?)-подобный кошелёк 🙂

Коннектор, в основном, объединяет эти две стороны. Он работает как отдельное приложение, но будет подразумевать также и возможность встраивания в другие приложения. На этом уровне происходит управление вашими ключами, подписывание транзакций и т.д. Этот слой отвечает также за аппаратные кошельки и может стать для вашего UI упрощённой точкой доступа к Ledger, Trezor и прочим подобным кошелькам. Мы пытаемся сделать коннектор настолько лёгким, насколько это возможно, чтобы его можно было использовать не только на мобильных платформах, но и для Интернета вещей, а также вместе со специализированным программным обеспечением. Возможно, кто-то сделает поверх него аппаратное DApp.

Технологии

  • Rust для соединительного слоя. Очень лёгкий и встраиваемый
  • React + Redux для Javascript UI
    • Material как основной стиль UI
    • ES6 + Babel и Webpack
  • Electron для использования его как настольного приложения

См. https://github.com/ethereumproject/emeraldwallet и https://github.com/ethereumproject/emerald-rs

Что Emerald предложит своим пользователям

  • Компоненты React UI в виде отдельной библиотеки для разработки ваших собственных DApp и даже кошельков
  • Библиотека Javascript для общего использования Эфириума Классик, API доступа, общие утилиты и т.д.
  • Библиотека для интеграции коннектора в другие нативные для языка Rust приложения либо интеграции через FFI в такие языки, как Go, Python и другие
  • Командная строка, пригодная для написания серверных сценариев (позволит подписывать транзакции, считывать баланс, включая токены, контракты и т.д.)
  • Набор графических компонентов и руководство по стилю оформления (шрифты, цвета, иконки)

Пакет средств разработки

Как мы уже сказали, кошелёк – это только первый шаг. Одна из конечных целей разработчиков ETC – создание пакета средств разработки DApp на основе Эфириума Классик. Это означает, что Emerald Project станет платформой для создания и выполнения ряда других DApp. Он предоставит комплект инструментов для построения ваших собственных DApp, включающих средства тестирования и сборки настольных, мобильных и веб-приложений.

Планы

В настоящее время команда ETCDEV и сообщество ETC сосредоточены на разработке Emerald Wallet. Он будет включать в себя все перечисленные выше компоненты. В будущем команда ETCDEV начнёт постепенно разделять Emerald на несколько независимых частей, выделив Emerald SDK и построив второе DApp для разработчиков смарт-контрактов (для цикла их написания/ развёртывания/отладки). В дополнение к этому, ETCDEV будет работать над отдельной утилитой командной строки, чтобы помочь интегрировать в Эфириум Классик сторонние приложения.

Для решения этих задач потребуется время, несколько итераций и релизов, но выход бета-версии Emerald Wallet, первого приложения в этой серии, ожидается уже в течение нескольких недель. У нас уже готов довольно функциональный минимально жизнеспособный продукт (MVP), и теперь мы работаем над приятным и удобным пользовательским интерфейсом.

Источник: блог ETCDEV Team



Рубрики:Важное, Сообщество, ETC, эфир

Метки: , ,

2 replies

Trackbacks

  1. Интервью с ведущим разработчиком Ethereum Classic — EthereumClassic
  2. ETCDEV Team: Новости разработки от 3 ноября — EthereumClassic

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

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

Логотип WordPress.com

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

Фотография Twitter

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

Фотография Facebook

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

Google+ photo

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

Connecting to %s