本文档提供了在 Linux、macOS 和 Windows 上安装 JoinMarket 的详细指南,包括从源码安装的步骤、使用 WSL 在 Windows 上安装、以及 Docker 安装和开发环境设置。此外,还包括了升级注意事项和配置 Bitcoin Core 以便 JoinMarket 连接的说明。
JoinMarket 需要 Python >=3.8, <3.13。
(如果从头开始,可以忽略整个部分)。
如果只想在新目录中使用最新版本,请转到 releases 页面。
如果要从旧版本升级,只需使用 git 进行更新:git pull origin master
,
或者对于特定的标记版本,使用 git fetch; git checkout tags/<tagname>
,然后重新运行
如下所述的安装过程。这仅在最新提交或标记的版本号,
实际上比已经存在的版本更新时才有效。
警告:此手动过程更加困难;建议使用 install.sh
脚本,除非你确定需要这样做,否则请返回 README。
要安装所有内容(客户端和服务器),请安装以下软件包:
sudo apt-get install python3-dev python3-pip python3-venv git build-essential automake pkg-config libtool libffi-dev libssl-dev
(如果可以找到 libsodium-dev
,则安装它,否则稍后构建)
(稍后构建 libsodium
):
git clone https://github.com/jedisct1/libsodium.git
cd libsodium
git checkout tags/1.0.18
./autogen.sh
./configure
make check
sudo make install
cd ..
然后安装此仓库:
git clone https://github.com/Joinmarket-Org/joinmarket-clientserver.git
cd joinmarket-clientserver
然后:
python3 -m venv jmvenv
source jmvenv/bin/activate
此时,你应该在命令提示符的开头看到 (jmvenv)
。
然后构建并安装 python-bitcointx 的本地副本 libsecp256k1:
mkdir -p deps
cd deps
git clone https://github.com/bitcoin-core/secp256k1.git
cd secp256k1
git checkout v0.5.0
./autogen.sh
./configure --prefix JM_ROOT --enable-module-recovery --enable-experimental --enable-module-ecdh --enable-benchmark=no
make
make check
make install
cd ../..
注意:JM_ROOT 必须替换为你刚刚创建的 venv 目录,因此如果安装到你的主目录,它将是
~/joinmarket-clientserver/jmvenv
。
注意:在运行此步骤之前激活虚拟环境非常重要。否则,
pip install
将失败,你可能会想使用sudo pip install
重新运行它,这将在未来导致问题。
pip install .[services]
如果你已经安装了此“完整”版本的客户端,你可以按照 usage guide 中所述的方式使用命令行脚本。
警告:此手动过程更加困难;建议使用 install.sh
脚本,除非你确定需要这样做,否则请返回 README。
1) 安装 Apple 命令行工具
xcode-select --install
2) 安装 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
3) 安装 automake、libtool 和 libsodium
brew install automake libtool libsodium
4) 构建 secp256k1
git clone https://github.com/bitcoin-core/secp256k1
cd secp256k1
git checkout v0.5.0
./autogen.sh
./configure --enable-module-recovery --disable-jni --enable-experimental --enable-module-ecdh --enable-benchmark=no
make
make check
sudo make install
cd ..
rm -rf secp256k1
5) 克隆 joinmarket-clientserver 仓库。
git clone https://github.com/Joinmarket-Org/joinmarket-clientserver
cd joinmarket-clientserver
6) 创建虚拟环境 "jmvenv"
python3 -m venv jmvenv
source jmvenv/bin/activate
此时,你应该在命令提示符的开头看到 `(jmvenv)`。
7) 设置 joinmarket-qt
pip install .[gui]
8) 启动 joinmarket-qt
cd scripts
python joinmarket-qt.py
在开始之前,请注意你需要 (a) 在 Windows 上安装 Bitcoin Core,或者 (b) 使用在 joinmarket.cfg
中指定的与 Bitcoin Core 的远程连接(在本节末尾说明)。
如果 (a),请注意以下两点:
如果尚未安装,请按照 here 中的说明安装 Bitcoin Core 25.1 或更高版本。首次启动后,它将启动初始区块下载。在完成之前,JoinMarket 无法使用。更多相关信息请参见 here。
需要配置 Bitcoin Core 以允许 JoinMarket 连接到它。从“Settings
”菜单中选择“Options
”,然后单击“Open Configuration File
”。添加 server=1
,保存并关闭文件。之后,重启 Bitcoin Core。
目前有两种在 Windows 上安装的选择:一种是直接在 Windows 上安装,需要手动添加 libsodium 依赖项;另一种是通过 WSL 机制使用 Ubuntu(这可能需要额外的设置才能使 Qt GUI 工作)。
2) 使用 WSL 安装
本节介绍如何在 Windows 上执行完整的命令行安装。
首先,如果你尚未这样做,请安装 Python - 具体来说,是最新版本的 Python 3。确保在安装过程中选择安装 pip
(它应该会自动包含在内,但是你可以选择自定义安装选项来选择它)。
确保选择允许 python
位于你的 PATH 变量中的选项(在安装结束时会提示你这样做)。
安装 Joinmarket,选择最新 release 的 zip 文件。你应该检查下载的 zip 上的 .asc 签名文件。
在任何适当的位置解压缩 joinmarket-clientserver-x.x.x
(其中 x.x.x
是版本号)。
使用管理员模式下的命令提示符,转到该目录并运行以下命令:
pip install joinmarket[services]
(对于 Joinmarket-Qt,将 services
替换为 gui
)。
最后一步是手动添加 libsodium 依赖项,如前所述。执行以下操作:
下载 https://www.nuget.org/api/v2/package/libsodium
上的文件,并将其重命名为 .zip
,以便你可以解压缩它。解压缩后,在 runtimes\win-x64\native\libsodium.dll
处找到 libsodium.dll
文件,并将其复制到 C:\Windows\System
中(请注意,这将需要管理员权限)。
此时,Joinmarket 应该可以在命令行和 Joinmarket-Qt 形式中运行(使用 joinmarket-qt.py
从 joinmarket-clientserver
的 \scripts
子目录中运行)。
从这里开始,转到下面的“配置 Joinmarket
”。
注:以下方法需要 Windows 10 版本 1607 或更高版本。
注:更详细的指南可以在 here 中找到。
控制面板
”,然后导航到“程序
”、“程序和功能
”、“打开或关闭 Windows 功能
”。适用于 Linux 的 Windows 子系统
”,然后单击“确定
”。Microsoft Store
”,搜索“Ubuntu 24.04.1 LTS
”,然后单击“获取
”。
注:可以使用其他发行版,但是这是唯一经过测试的发行版
启动
”。正在安装,这可能需要花费几分钟...
”UNIX 用户名
”和“UNIX 密码
”。这将是 Ubuntu 安装的管理员帐户。sudo apt update && sudo apt upgrade -y
更新 Ubuntu 中的软件来完成安装。出现提示时,键入先前提供的密码。此时,你在 Windows 上有一个(几乎)功能齐全的 Linux 安装,你可以使用 readme file 中的说明或此文件的 Installation on Linux 部分来安装 JoinMarket。
通过以上两种 Windows 方法之一完成程序安装后,最后一步是配置 Joinmarket:
最后,我们必须配置 JoinMarket,以使其可以连接到 Bitcoin Core。请参阅使用指南中的 this 部分,以使用 scripts/wallet-tool.py
生成一个 joinmarket.cfg
文件。
编辑你的 joinmarket.cfg
文件(如果在 Ubuntu 中使用 WSL,则位于 ~/.joinmarket
中,否则位于 C:\Users\<your username>\AppData\Roaming\joinmarket
中),然后替换 [BLOCKCHAIN]
部分中的以下行
rpc_user = bitcoin
rpc_password = password
用
#rpc_user = bitcoin
#rpc_password = password
rpc_cookie_file = <Bitcoin Core 数据目录的路径>/.cookie
数据目录的位置是首次运行 Bitcoin Core 时选择的。默认值为 C:\Users\<your username>\AppData\Roaming\Bitcoin
。在 Ubuntu 中,这将是 /mnt/c/Users/<your username>/AppData/Roaming/Bitcoin
。假设你的用户名为 Alice
,则完整行将是
rpc_cookie_file = /mnt/c/Users/Alice/AppData/Roaming/Bitcoin/.cookie
如果你直接在 Windows 上安装,则按照 usage guide 中的说明,它应该可以正常工作
如果你使用 WSL 安装,则需要以下配置:
注:你需要安装具有 Qt 支持的 JoinMarket(请参阅自述文件中的 this 部分)
- 在 Ubuntu 中,安装其他依赖项
sudo apt install libgl1-mesa-glx
。- 下载并安装 MobaXterm。在启动 JoinMarket-Qt 之前,需要运行此程序。它不需要其他配置。
- 在 MobaXTerm 中打开 WSL-Ubuntu 会话。转到 JoinMarket 目录并运行
source jmvenv/bin/activate
以激活 Python 虚拟环境。- 你现在可以按照 here 中的说明启动 JoinMarket-Qt。 如果你发现程序崩溃并显示
qt.qpa.plugin: Could not load the Qt platform plugin
,你可以使用sudo apt install qtbase5-dev
添加 Qt5 依赖项,然后重试。
只需执行
python setupall.py --daemon
然后,你可以使用以下命令单独运行守护进程
cd scripts; python joinmarketd.py <端口号>
这样做的原因可能是 (1) 运行此处提供的命令行脚本,但是 在与守护进程分开的进程中;或者,(2) 运行单独的(例如,钱包插件)代码库 来执行比特币操作。
在前一种情况下,你仍然需要安装本地软件包:
python setupall.py --client-bitcoin
然后编辑你的 joinmarket.cfg
部分 DAEMON
,设置 no_daemon = 0
。
后一种情况适用于 Electrum 插件(当前未运行),请参见 here。
在那里,你需要安装客户端代码(没有 Joinmarket 的比特币):
python setupall.py --client-only
提供的 Dockerfile 构建了一个最小的 Docker 镜像,可以帮助你开始使用自定义 Docker 设置。以下是构建和运行 wallet-tool.py 脚本的示例:
docker build -t joinmarket-test ./
docker run --rm -it joinmarket-test bash -c "cd scripts && python3 wallet-tool.py --help"
可以使用 joinmarket-test
作为基础,使用 FROM joinmarket-test
构建新的 Docker 镜像。有关更多详细信息,请参见 Docker documentation。
如果你是开发人员或者计划修改代码(例如,添加自定义项),
请不要运行上面的 python setupall.py
命令。而是运行:
python setupall.py --develop
正常的安装(--daemon
或 --client-bitcoin
)会将 JoinMarket
软件包安装到虚拟环境的 site-packages
目录中。这意味着你对
本地代码所做的任何更改都必须重新安装软件包后才能生效。
使用 --develop
会将每个软件包的 .egg-link
文件添加到 site-packages
。
.egg-link
文件的作用类似于指向本地代码的符号链接。这意味着你
对代码所做的任何更改都将立即生效。
- 原文链接: github.com/JoinMarket-Or...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!