Прокачиваем функционал аппаратного кошелька Ledger на примере Signum + BTDEX

Ответить
Аватара пользователя
cemehbl4
Newbie
Сообщения: 14
Зарегистрирован: 10 май 2022, 18:27

Прокачиваем функционал аппаратного кошелька Ledger на примере Signum + BTDEX

Сообщение cemehbl4 »

Изображение
Предыстория сего опуса такова. Когда-то бравые разработчики 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-bu ... b9552a839e

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

Код: Выделить всё

sudo apt install docker.io
sudo usermod -aG docker $(whoami)
sudo service docker restart

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/4ea ... .java#L276
Изображение

Код: Выделить всё

./gradlew release
После сборки готовый btdex-all.jar будет находиться по пути build/libs/
JAR необходимо поместить в отдельную директорию и создать в ней файл config.properties, в который нужно записать строку

Код: Выделить всё

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

Код: Выделить всё

java -jar btdex-all.jar
Изображение
Ответить

Вернуться в «Уголок Семеныча»