VSCodeにメモを書いていたが消えやがったので思い出補正しながら書く。
動機
- electrum-monaというツールで取引できるらしい
- ライトニングネットワークなるもので取引手数料ゼロまたは安価にできるらしい
- mpurseはブラウザ拡張であり安定性に不安がある(ブラウザ更新で使えなくなる恐れ)
調査
electrum mona raspberry pi
でググってもまったく情報がない。モナコインのライトニングネットワークに関する情報も少ない。嫌な予感がする。
- ラズパイにインストールできるのか?
- 本当に手数料減らせるのか? それで成立するのか?
一応以下で、
Raspberry Piのような容量の苦しいデバイスにも入ります。
という記事をみたが、私のラズパイにインストールすることはできなかった。容量とは別問題。CPUアーキテクチャが違うせいでコンパイル済みバイナリが用意されていない。
electrum-monaのインストールを試みる
メモが消えてしまったので、記憶をたぐりよせながら書く。
結論からいうと、インストールできなかった。私がわかったのは次のとおり。
- ビルド済みバイナリにラズパイで動作するARM 32bit用のものはなかった(
x86-64
のみ) - やむなくソースコードからインストールしようと試みた tar.gz
- Python 3.8.0以上が必要
- Pythonをビルドする前に
libffi-dev
が必要だった - ラズパイ4にデフォルトでインストールされているのはPython 3.7.3 だった
- anyenvでpyenvを入れ、pyenvでPythonを入れて3.8以上にした
- electrum-monaのインストールはQtのところで失敗した
anyenvをインストールする
git clone https://github.com/anyenv/anyenv ~/.anyenv
echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(anyenv init -)"' >> ~/.bash_profile
anyenv install --init
Manifest directory doesn't exist: /home/pi/.config/anyenv/anyenv-install
Do you want to checkout https://github.com/anyenv/anyenv-install.git? [y/N]:
y
を入力しEnter
キー押下。すると以下のように出力された。
...
Completed!
pyenvをインストールする
anyenv install pyenv
exec $SHELL -l
pythonをインストールする
一度失敗してわかったことだが、Pythonをビルドする前に以下をインストールする必要がある。
sudo apt install -y libffi-dev
バージョンを一覧する。
pyenv install --list
3.8.0以上の適当なバージョンを選んでインストールする
pyenv install 3.9.13
electrum-monaをインストールする(失敗)
ソースコードをダウンロードする。展開してディレクトリ移動する。
wget https://github.com/wakiyamap/electrum-mona/releases/download/4.2.1/Electrum-MONA-4.2.1.tar.gz
tar -zxvf Electrum-MONA-4.2.1.tar.gz
cd Electrum-MONA-4.2.1
electrum-mona - githubにある手順を踏む。が、インストールでエラー発生。
sudo apt-get install libsecp256k1-0
$ python3 -m pip install --user .[gui,crypto]
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Processing /tmp/work/Electrum-MONA-4.2.1
Preparing metadata (setup.py) ... done
Collecting qrcode
Downloading https://www.piwheels.org/simple/qrcode/qrcode-7.3.1-py3-none-any.whl (40 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.4/40.4 KB 108.5 kB/s eta 0:00:00
Collecting protobuf>=3.12
Downloading https://www.piwheels.org/simple/protobuf/protobuf-4.21.2-py2.py3-none-any.whl (164 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 165.0/165.0 KB 251.7 kB/s eta 0:00:00
Collecting qdarkstyle>=2.7
Downloading https://www.piwheels.org/simple/qdarkstyle/QDarkStyle-3.1-py2.py3-none-any.whl (864 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 864.8/864.8 KB 303.6 kB/s eta 0:00:00
Collecting aiorpcx<0.23,>=0.22.0
Downloading https://www.piwheels.org/simple/aiorpcx/aiorpcX-0.22.1-py3-none-any.whl (35 kB)
Collecting aiohttp<4.0.0,>=3.3.0
Downloading https://www.piwheels.org/simple/aiohttp/aiohttp-3.8.1-cp39-cp39-linux_armv7l.whl (1.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 422.7 kB/s eta 0:00:00
Collecting aiohttp_socks>=0.3
Downloading https://www.piwheels.org/simple/aiohttp-socks/aiohttp_socks-0.7.1-py3-none-any.whl (9.3 kB)
Requirement already satisfied: certifi in /home/pi/.anyenv/envs/pyenv/versions/3.9.13/lib/python3.9/site-packages (from Electrum-MONA==4.2.1) (2022.6.15)
Collecting bitstring
Downloading https://www.piwheels.org/simple/bitstring/bitstring-3.1.9-py3-none-any.whl (39 kB)
Collecting attrs>=19.2.0
Downloading https://www.piwheels.org/simple/attrs/attrs-21.4.0-py2.py3-none-any.whl (60 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.5/60.5 KB 839.4 kB/s eta 0:00:00
Collecting lyra2re2_hash>=1.1.2
Downloading https://www.piwheels.org/simple/lyra2re2-hash/lyra2re2_hash-1.2.0-cp39-cp39-linux_armv7l.whl (773 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 773.7/773.7 KB 621.8 kB/s eta 0:00:00
Collecting dnspython>=2.0
Downloading https://www.piwheels.org/simple/dnspython/dnspython-2.2.1-py3-none-any.whl (269 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 269.1/269.1 KB 440.1 kB/s eta 0:00:00
Collecting pyqt5
Downloading PyQt5-5.15.7.tar.gz (3.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2/3.2 MB 1.7 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... error
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [34 lines of output]
Querying qmake about your Qt installation...
Traceback (most recent call last):
File "/home/pi/.anyenv/envs/pyenv/versions/3.9.13/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 156, in prepare_metadata_for_build_wheel
hook = backend.prepare_metadata_for_build_wheel
AttributeError: module 'sipbuild.api' has no attribute 'prepare_metadata_for_build_wheel'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/pi/.anyenv/envs/pyenv/versions/3.9.13/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>
main()
File "/home/pi/.anyenv/envs/pyenv/versions/3.9.13/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/home/pi/.anyenv/envs/pyenv/versions/3.9.13/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 160, in prepare_metadata_for_build_wheel
whl_basename = backend.build_wheel(metadata_directory, config_settings)
File "/tmp/pip-build-env-o2vfuttr/overlay/lib/python3.9/site-packages/sipbuild/api.py", line 46, in build_wheel
project = AbstractProject.bootstrap('wheel',
File "/tmp/pip-build-env-o2vfuttr/overlay/lib/python3.9/site-packages/sipbuild/abstract_project.py", line 87, in bootstrap
project.setup(pyproject, tool, tool_description)
File "/tmp/pip-build-env-o2vfuttr/overlay/lib/python3.9/site-packages/sipbuild/project.py", line 584, in setup
self.apply_user_defaults(tool)
File "project.py", line 69, in apply_user_defaults
super().apply_user_defaults(tool)
File "/tmp/pip-build-env-o2vfuttr/overlay/lib/python3.9/site-packages/pyqtbuild/project.py", line 70, in apply_user_defaults
super().apply_user_defaults(tool)
File "/tmp/pip-build-env-o2vfuttr/overlay/lib/python3.9/site-packages/sipbuild/project.py", line 236, in apply_user_defaults
self.builder.apply_user_defaults(tool)
File "/tmp/pip-build-env-o2vfuttr/overlay/lib/python3.9/site-packages/pyqtbuild/builder.py", line 76, in apply_user_defaults
self._get_qt_configuration()
File "/tmp/pip-build-env-o2vfuttr/overlay/lib/python3.9/site-packages/pyqtbuild/builder.py", line 490, in _get_qt_configuration
for line in project.read_command_pipe([self.qmake, '-query']):
File "/tmp/pip-build-env-o2vfuttr/overlay/lib/python3.9/site-packages/sipbuild/project.py", line 552, in read_command_pipe
raise UserException(
sipbuild.exceptions.UserException
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
WARNING: You are using pip version 22.0.4; however, version 22.1.2 is available.
You should consider upgrading via the '/home/pi/.anyenv/envs/pyenv/versions/3.9.13/bin/python3 -m pip install --upgrade pip' command.
どうやらQtのインストールでエラーになったらしい。
そういえば、ラズパイはpipからQtラッパをインストールすることができなかった記憶がある。Qt自体はもともとそうだが、ラズパイではそのラッパもapt
で専用パッケージを入れることで、どうにか使えた。が、pipパッケージとして連携することができない不便な代物だった気がする。あと、QtのPython用ラッパもいくつかあって紛らわしかったような。
というか、前回ログが消えたときと違うエラーのような気がする。どういうこっちゃ。
とにかく、ラズパイ4にelectrum-monaをインストールすることはできなかった。
もうCUIでいいからインストールさせてほしい。
mpurseが使えなくなったらどうしよう。ほかの選択肢を持っていないのが不安だ。