Electrum

NSerega

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

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

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

zxing.png


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

fileman.png


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

sl4a.png


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

py4a.png


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

e4a.png


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

NSerega

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

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

По завершении процесса установки система сообщит нам об этом, нажимаем кнопку «Открыть», чтобы убедиться, что программа SL4A работает. Если что-то с ней не так, то пробуем удалить ее и установить другую версию. Не забывайте, что на данный момент она работает только с ARM процессорами (наиболее вероятно, что в мобильном устройстве как раз он и установлен).
Теперь аналогичным образом находим и устанавливаем программу Py4A. В мобильном браузере вводим в строку поиска «py4a», Google нам выдаст проект «python-for-android» на Google Code, заходим в него, переходим по ссылке «Downloads», в поле ввода справа от «Current Downloads» пишем «python apk» и нажимаем Enter или кнопку «Search».
screen10.png
screen11.png
screen12.png
 

NSerega

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

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

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

NSerega

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

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

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

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

NSerega

Администратор
screen31.png
screen32.png
screen33.png

После подготовки кошелька, Electrum начинает генерировать биткоин-адреса из только что созданного сида. Они высвечиваются на экране сразу по ходу их создания. Как только этот процесс будет завершен, Electrum решит сохранить готовый кошелек в файл. Но ведь все закрытые ключи будут в открытом виде? Не волнуйтесь, разработчики все продумали – следующим шагом Electrum запросит пароль, которым все зашифрует, он будет необходим для операций отправки биткоинов из кошелька.
Введите свой пароль дважды в диалоговые окна «Choose a password» («Выберите пароль») и «Confirm new password» («Подтвердите пароль»).
screen34.png
screen35.png
screen36.png

После завершения шифрования кошелька Electrum сообщит, что кошелек был успешно зашифрован. Вам не обязательно точно помнить свой пароль, если сид кошелька сохранен в надежном и доступном только хозяину месте.
После сохранения кошелька Electrum отобразит свой аскетичный интерфейс. Так как это новый кошелек, то кроме надписи «Balance: 0» («Баланс: 0») Electrum не сообщит нам ничего полезного.
Начнем с настроек клиента, для этого выйдем в меню и выберем пункт «Settings» («Настройки»).
screen37.png
screen38.png
screen39.png
 

NSerega

Администратор
Тут можно выбрать IP-адрес сервера и порт, к которым соединяется Electrum, например — заменить на адрес и порт своего собственного сервера Electrum, еще можно выбрать протокол клиент-серверного взаимодействия и размер комиссии. Более того, можно запросить сид, если вдруг потеряли его, но для этого уже потребуется ввести свой пароль.
На скриншотах рядом изображен ввод адреса своего сервера (не делайте этого, если по тому адресу ничего нет), а так же изменение размера комиссии с 0.001 до 0.0001 доли биткоина. Electrum будет периодически ждать от сервера поступления новых транзакций, но не смотря на надпись «Synchronizing...» («Идет синхронизация...»), Electrum не загружает блоки, так как задачу их обработки полностью берет на себя сервер.
screen40.png
screen41.png
screen42.png

Получение биткоинов с помощью мобильной версии Electrum полностью аналогично тому, как это делается в других легких клиентах. Выберите в меню пункт «Receive» («Получить») и в диалоговом окне «Amount» («Сумма») выберите запрашиваемое значение. В ответ Electrum сгенерирует QR-код, который можно будет сканировать другим мобильным устройством с установленным Electrum или иным легким клиентом. Попробуйте сделать это со своим другом по сообществу или партнером по бизнесу.
screen43.png
screen44.png
screen45.png

Теперь ознакомимся с отправкой биткоинов. Выберем в меню пункт «Send» («Отправить»). Electrum предложит нам заполнить форму отправки. Разумеется, мы вводить ничего не будем, потому что нас выручит кнопка «From QR code» («Из QR-кода»). Для ее использования должен стоять сканер QR-кодов, о котором сообщалось в начале статьи. В данном примере сканер считывает QR-код с экрана монитора, но можно таким же образом считать его с другого мобильного устройства.
screen46.png
screen47.png
 

NSerega

Администратор
После считывания QR-кода форма отправки биткоинов заполняется автоматически, нам остается только нажать кнопку «Send» («Отправить»). Отправка биткоинов рассмотрена более подробно далее в статье.
Следующая информация может быть полезна при проблемах с Electrum, Py4A или SL4A. Для остановки процесса Electrum без закрытия SL4A достаточно в панели уведомлений сделать клик по «SL4A Service», запустится Script Monitor со списком выполняемых скриптов, потом кликнуть по «electrum4a.py» и затем по «Stop». После этого можно перезапустить Electrum.
screen48.png
screen49.png
screen50.png

Теперь пара слов о местоположении файла кошелька и о его восстановлении из сида. Файл кошелька называется «electrum.dat» и располагается в директории «/mnt/sdcard/» (обычно это внутренняя или внешняя SD-карта). Как поведет себя клиент, если файла не будет на месте? Все очень просто. Electrum покажет уже знакомое нам диалоговое окно с предложением создать новый кошелек или воссоздать старый из сида. Сейчас узнаете, как происходит восстановление кошелька.
screen51.png
screen52.png
screen53.png

screen54.png
screen55.png
screen56.png
 

NSerega

Администратор
В данном примере будет использован метод восстановления кошелька через QR-код, который был cгенерирован на компьютере, где тоже запущен Electrum. Сразу после сканирования Electrum сообщает нам полученный им сид и мнемонический код. Если восстановление происходит не через QR-код, то вместо кнопки «QR Code» следует выбрать «mnemonic» для ввода мнемонического кода.
screen57.png
screen58.png
screen59.png

Это может показаться удивительным, но Electrum действительно принялся восстанавливать все адреса, что были в кошельке на компьютере. Вскоре Electrum запрашивает новый пароль и все готово.
screen60.png
screen61.png
screen62.png

Перед нами все тот же интерфейс, но уже с кошельком, что был восстановлен из сида. Сразу же, отображается новый баланс. Преимуществом Electrum является моментальная работа и в такие моменты она сильно бросается в глаза. Более того, если зайти в «Contacts» («Адресная книга»), то там высвечиваются те адреса, на которые отправлялись биткоины в нашем случае с компьютера.
screen63.png
screen64.png
screen65.png
 

NSerega

Администратор
Как добавлять новые контакты в адресную книгу Electrum? Очень просто. Если нажать кнопку «New contact» и сканировать QR-код, то данный адрес будет добавлен, что облегчает отправку на него биткоинов в дальнейшем. Достаточно лишь ответить утвердительно на запрос клиента.
screen66.png
screen67.png

Попробуем теперь отправить биткоины, не сканируя QR-код, а выбрав получателя из адресной книги, для этого зайдем в меню «Send», но выберем уже не «From QR code», а «From Contacts». Нам остается лишь выбрать адрес получателя из адресной книги, выбрать сумму отправки и нажать кнопку «Send» («Отправить»).
screen68.png
screen69.png
screen70.png

Разумеется, Electrum не отправит биткоины без ввода пароля, о чем нам сразу же сообщит появившееся диалоговое окно запроса пароля. После ввода пароля, клиент создаст транзакцию, подпишет ее закрытым ключом, отправит на сервер и сообщит нам хеш транзакции, по которому ее можно будет отследить с помощью любого blockexplorer-сервиса в сети Интернет.
screen71.png
screen72.png
screen73.png
 

NSerega

Администратор
Скорее всего, пройдет не более 10 минут, как отправляемая транзакция уже попадет в блок.
screen74.png
screen75.png
screen76.png

Вот и ознакомились с мобильной версией Electrum, подведем итоги. Electrum, вероятно, является самым быстрым клиентом для сети криптовалюты Bitcoin, но пользователь вынужден доверять почти все проверки третьим лицам или собирать свой собственный сервер Electrum. Интересный механизм восстановления ключей по одному лишь seed может подтолкнуть к установке Electrum и на домашний компьютер для быстрой обработки небольших сумм биткоинов. Но, возможно, по настоящему незаменимым он окажется на бюджетных телефонах с Android. Все скриншоты выполнены на LG GT540, уже морально устаревшей модели телефона, где прочие легкие клиенты очень быстро сажают батарею, едят трафик и десятки мегабайт раздела /data под базу блоков, которые можно отдать под нечто более полезное, например - SL4A и Py4A, ведь они могут пригодиться и для других программ.
Источник
 
Верх