Electrum

Electrum Часть 1
Electrum Часть 2

Пользователи криптовалюты Bitcoin могут быть все чаще обеспокоены скоростью работы установленной программы-клиента. Ведь иногда даже секунды решают все, а потери времени могут привести к убыткам. Особенно остро встает вопрос с мобильными клиентами, так как их скорость сильно ограничена вычислительной мощностью мобильного устройства. В настоящее время становятся популярными «легкие» клиенты, они в отличие от «тяжелых» не загружают все блоки целиком, а работают лишь с заголовками блоков. Это значительно ускоряет работу, но на мобильных устройствах и этого может быть недостаточно. В данной статье описывается не просто «легкий» клиент, а скорее –«ультралегкий».

Electrum основан на клиент-серверной технологии и обеспечивает лишь минимум клиентской нагрузки: все операции, что могут быть выполнены на сервере, выполняются вне клиента. Сервером служит модифицированный «тяжелый» клиент bitcoind. По умолчанию Electrum соединяется с одним из таких серверов из списка, но при наличии соответствующих навыков можно собрать сервер Electrum из исходного кода самостоятельно. Это значительно повышает надежность: пользователь, подключающий Electrum именно к своей сборке сервера, становится независимым от третьих лиц, так как именно сервер проводит почти все расчеты, а «ультралегкому» клиенту остается лишь подписывать транзакции.

Electrum является проектом с открытым исходным кодом и работает под всеми популярными операционными системами, которые могут выполнять написанные на языке программирования Python программы: Windows, Mac OS X, Linux. Вы сами можете установить его на свой компьютер и попробовать в действии, но речь в статье пойдет об установке и использовании Electrum на одной конкретной операционной системе, а именно – мобильной операционной системе Android, основанной на ядре Linux. Это довольно популярная система для различных устройств, и если у читателя есть такое, то данная статья поможет установить и использовать Electrum на Android.
Надеюсь, готовы?

ZXing Barcode Scanner

Первое, что нам понадобится, это сканер QR кодов. Если он еще не установлен в мобильном устройстве, то следует его поставить. Ставить будем ZXing Barcode Scanner, это проект с открытым исходным кодом, некоторые из его авторов являются сотрудниками Google. Вы без проблем найдете его в поисковой системе Google, в Google Play Market или в репозитории F-Droid.

OI File Manager

Второе, что нам понадобится, это любой файловый менеджер. Если он уже установлен и умеет распаковывать Zip-архивы, то данный пункт можно безболезненно пропустить. Если же ничего подобного на мобильном устройстве еще нет, то можно установить OI File Manager. Как и все рассматриваемые в статье программы, это проект с открытым исходным кодом. Его тоже можно легко найти в Google, Google Play Market или F-Droid. Либо можно сканировать QR код, приведенный рядом.

Scripting Layer for Android

Scripting Layer for Android (SL4A) – программа, которая позволяет использовать на Android интерпретаторы скриптовых языков. Придется сразу огорчить пользователей x86-совместимых мобильных устройств. SL4A на данный момент поддерживает только ARM-архитектуру. На отличных от ARM платформах запуск SL4A на данный момент невозможен. Сам процесс установки SL4A будет ниже.

Python For Android

Так, запускать скрипты мы можем, но какие скрипты? Electrum написан на Python, так что нам требуется что-то для него. На помощь нам идет дочерний для SL4A проект – Python For Android (Py4A). Изначально он был частью SL4A, но со временем развился в самостоятельный проект, хотя и требует установленного SL4A для своей работы. Как именно ставить Py4A, тоже будет описано в статье ниже.

Electrum

Последний файл, который нам понадобится, это собственно сам Electrum. Для его версии под Android пока еще нет репозитория, так что мы будем хитро скачивать с официального сайта проекта файл без расширения – «e4a». Впрочем, мобильный браузер может принудительно дать ему расширение: в моем случае этот файл получил расширение «.bin», так что он скачался как «e4a.bin». На самом деле это Zip-архив, а что с ним нам делать, будет описано далее.

Возможны ситуации, когда более предпочтительным вариантом был бы самостоятельный поиск последних версий SL4A и Py4A, например: Electrum на момент прочтения статьи может потребовать более новых версий этих программ; ссылки в QR кодах устареют; в мобильном устройстве вообще отсутствует или сломана камера. На эти случаи вот описание того, как можно найти, скачать и установить самые свежие версии этих программ прямо с мобильного устройства.

Запускаем мобильный браузер, вводим в строку поиска «sl4a», Google нам выдаст проект «android-scripting» на Google Code, заходим в него и переходим по ссылке «Downloads». Справа от выпадающего меню «Current Downloads» в поле для ввода пишем «sl4a apk» и нажимаем Enter или кнопку «Search» справа. Находим среди появившихся вариантов самую свежую версию, на данный момент это «sl4a_r6.apk», то есть шестая версия SL4A. Делаем клик по значку загрузки слева, либо по самому имени файла, а затем на открывшейся странице еще раз. За ходом загрузки программы можно следить в панели уведомлений Android.

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

По завершении процесса установки система сообщит нам об этом, нажимаем кнопку «Открыть», чтобы убедиться, что программа SL4A работает. Если что-то с ней не так, то пробуем удалить ее и установить другую версию. Не забывайте, что на данный момент она работает только с ARM процессорами (наиболее вероятно, что в мобильном устройстве как раз он и установлен).

Теперь аналогичным образом находим и устанавливаем программу Py4A. В мобильном браузере вводим в строку поиска «py4a», Google нам выдаст проект «python-for-android» на Google Code, заходим в него, переходим по ссылке «Downloads», в поле ввода справа от «Current Downloads» пишем «python apk» и нажимаем Enter или кнопку «Search».

Стоит обратить внимание, что в результате у нас будут как установочные файлы Py4A для Python, так и для Python3. В настоящий момент мобильный Electrum рассчитан на вторую версию Python, так что файлы, начинающиеся на «Python3» просто пропускаем мимо глаз. Последней стабильной версией сейчас является файл «PythonForAndroid_r6.apk», то есть шестая версия Py4A. Есть еще седьмая с надписью «beta» в комментарии, но мы ее трогать не будем. Возможно, что со временем мобильный Electrum будет полностью переписан под третью версию Python, в таком случае нужно будет качать файл «Python3ForAndroid_r6.apk» или новее. Делаем клик по значку загрузки слева от имени нужного файла. Как только программа скачается, устанавливаем ее.
У нас теперь есть SL4A и Py4A, осталось скачать и установить сам Electrum.

Для начала нам нужно зайти на официальный сайт проекта Electrum, а дальше начинается самое интересное. Нужно дописать к «electrum-desktop.com» следующее - «/files/e4a» (разумеется, без кавычек), получаем: «electrum-desktop.com/files/e4a». Нажимаем Enter, если адрес введен верно – начнется загрузка файла. Ищем его в папке со всеми загрузками браузера с помощью файлового менеджера, например - OI File Manager.

В данном случае используется стандартный браузер, так что файл лежит в директории «/mnt/sdcard/downloads/». Теперь нужно переименовать этот файл в «e4a.zip» и распаковать его (как Zip-архив) в директорию «/mnt/sdcard/sl4a/scripts/», которую создает SL4A при первом запуске.

Почти все готово к запуску Electrum (ну, надо же!), остались лишь последние штрихи: запускаем Python-for-Android, нажимаем кнопку «Install» для загрузки и установки самого интерпретатора Python, когда же процесс будет завершен, кнопка «Install» сменится на «Uninstall»

Мы готовы к первому запуску Electrum на Android. Запустив SL4A, мы должны увидеть содержимое директории «/mnt/sdcard/sl4a/scripts/»: список скриптов и директорию «e4a-x.xx» (где x.xx – номер версии Electrum), заходим в эту директорию и делаем клик по файлу «electrum4a.py», в выпадающем меню нажимаем самую первую кнопку.

Если мы все сделали правильно, Electrum порадует нас своим первым сообщением. В данном случае о том, что файл кошелька не найден. Electrum предлагает нам создать кошелек, либо восстановить его. Нажмем кнопку «Create» для создания нового кошелька.

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