1. Введение
Что такое idena можно узнать тут. Но если ты попал сюда, значит все это уже знаешь и возникла задача запустить кошелек на устройстве, которое не официально не поддерживается. Здесь я опишу процесс кросс-платформенной компиляции на компьютере с операционной системой Linux.
2. Компиляция кошелька idena-desktop
Первый шаг - это открытие терминала. Весь процесс компиляции будет происходить через консольные команды.
Подготовка к компиляции. Устанавливаем необходимые пакеты:
sudo apt update
sudo apt install -y nodejs npm git wine
Клонируем ветку гитхаба на компьютер:
git clone
https://github.com/idena-network/idena-desktop.git
cd idena-desktop
Подтягиваем все необходимые бибилиотеки для компиляции:
npm install
npm install yarn
npm install electron --save-dev
node_modules/yarn/bin/yarn add electron-builder --dev
Добавляем скрипт компиляции под необходимую архитектуру, для этого открываем package.json:
nano package.json
И добавляем в секцию "scripts" строку (обязательно соблюдаем отступы и не забываем про запятую в конце):
"dist:win32": "npm run build && electron-builder --win --ia32 --publish onTag",
И меняем номер версии на текущий:
"version": "0.19.2",
Параметры компиляции:
--win - означает, что компилировать будем под систему windows
--ia32 - архитектура процессора 32-битная
Остальные опции для electron-builder можно посмотреть в соответствующей литературе.
Теперь самый важный шаг, ради чего все мы тут собрались - компиляция:
npm run dist:win32
3. Компиляция ноды idena-go
Открываем терминал и устанавливаем необходимые пакеты:
sudo apt update
sudo apt install -y gccgo-go gcc-multilib gcc-mingw-w64 git mingw-w64
После установки компилятора go его нужно обновить до свежей версии, список версий можно посмотреть на сайте:
wget
https://golang.org/dl/go1.15.6.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.15.6.linux-amd64.tar.gz
sudo rm /usr/bin/go
rm go1.15.6.linux-amd64.tar.gz
sudo ln -s /usr/local/go/bin/go /usr/bin/go
Клонируем ветку:
git clone
https://github.com/idena-network/idena-go.git
cd idena-go
Исправляем номер версии, для этого отрываем редактором файл main.go
nano main.go
Находим и исправляем версию:
var (
version = "0.24.1"
)
Перед компиляцией необходимо установить переменные окружения
go env -w GOARCH=386
go env -w GOOS=windows
go env -w CGO_ENABLED=1
go env -w CC=i686-w64-mingw32-gcc-win32
go env -w CXX=x86_64-w64-mingw32-g++
И запустить компиляцию:
go build
Либо все это сделать в одной строке (х32):
GOARCH=386 GOOS=windows CGO_ENABLED=1 CC=i686-w64-mingw32-gcc-win32 CXX=x86_64-w64-mingw32-g++ go build
Для х64 битной системы:
GOARCH=amd64 GOOS=windows CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ go build
Список доступных операционных систем:
OS $GOOS
Linux linux
MacOS X darwin
Windows windows
FreeBSD freebsd
NetBSD netbsd
OpenBSD openbsd
DragonFly BSD dragonfly
Plan 9 plan9
Native Client nacl
Android android
Список доступных архитектур:
Architecture $GOARCH
x386 386
AMD64 amd64
AMD64 с 32-указателями amd64p32
ARM arm