cemehbl4

@cemehbl4

Прокачиваем функционал аппаратного кошелька Ledger на примере Signum + BTDEX
20.10.2022 09:11
Post earned 0.00 UFO

Предыстория сего опуса такова. Когда-то бравые разработчики криптовалюты Burst (ныне Signum) сделали своё приложение для Ledger, но так и не получили одобрения от французов. Не потому что приложение плохое, а потому что там процветает, по всей видимости, бюрократия. Но модульная архитектура позволяет послать бюрократию лесом, писать и запускать любые приложения, коих, я уверен, не мало разбросано по просторам GitHub.

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

Оригинал приложения для аппаратника находится здесь https://github.com/jjos2372/app-ledger-burst. Работает на прошивке 1.6.0 и элементарно собирается в Ubuntu Linux.


# устанавливаем зависимости
wget -q -O - https://raw.githubusercontent.com/LedgerHQ/udev-rules/master/add_udev_rules.sh | sudo bash

sudo apt install python3-venv python3-dev libudev-dev libusb-1.0-0-dev libtinfo5 gcc-multilib g++-multilib

# собираем и устанавливаем приложение
sudo su
git clone https://github.com/jjos2372/app-ledger-burst
cd app-ledger-burst

# x или s, в зависимости от девайса
source prepare-devenv.sh s

# подключаете аппаратник, вводите пин-код, на устройстве должно быть свободно 34 KB
make load

Остаётся только разрешить работу менеджера приложений и дождаться окончания установки.

Чтобы установить приложение на устройство с прошивкой 2.0.0 и выше, можно воспользоваться готовым вариантом приложения https://github.com/e4p1k0/app-ledger-burst, либо внести два небольших измения в код оригинала самостоятельно https://github.com/e4p1k0/app-ledger-burst/commit/59c4f78214486b65ef67f86b39e51ab9552a839e

На этот раз устанавливать будем с помощью Ledger Application Builder.


# устанавливаем Docker
sudo apt install docker.io
sudo usermod -aG docker $(whoami)
sudo service docker restart

# устанавливаем Ledger Application Builder
git clone https://github.com/LedgerHQ/ledger-app-builder
cd ledger-app-builder
sudo docker build -t ledger-app-builder:latest .

# собираем и устанавливаем приложение
cd
git clone https://github.com/e4p1k0/app-ledger-burst
cd app-ledger-burst

sudo docker run --rm -ti -v "/dev/bus/usb:/dev/bus/usb" -v "$(realpath .):/app" --privileged ledger-app-builder:latest

make load

# для Nano X
BOLOS_SDK=$NANOX_SDK make load

Всё то же самое без особых дополнительных усилий можно проделать и на macOS. А вот пользователям Windows проще установить Ubuntu на виртуалку и прокинуть Ledger внутрь, это легко делается, например, в VirtualBox. После установки нужно проделать следующее:


sudo apt update && sudo apt upgrade
sudo apt install virtualbox-guest-utils make git

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


sudo apt install openjdk-11-jdk
git clone https://github.com/btdex/btdex
cd btdex

Перед сборкой необходимо закомментировать 5 строк, начиная с https://github.com/btdex/btdex/blob/4ea9a34f5ab68bd71926276e1db3ede30b8b9cf0/src/main/java/btdex/ui/PlaceOrderDialog.java#L276

./gradlew release

После сборки готовый btdex-all.jar будет находиться по пути build/libs/

JAR необходимо поместить в отдельную директорию и создать в ней файл config.properties, в который нужно записать строку:

ledgerEnabled=true

Всё, теперь можно запускать и пользоваться.

java -jar btdex-all.jar

Post earned 0.00 UFO

Post earned 0.00 UFO

Комментарии

Comments: