* [关于升级、二进制文件和兼容性的注意事项](notes-on-upgrading-binaries-and-compatibility)

本文档提供了在 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/&lt;tagname>,然后重新运行 如下所述的安装过程。这仅在最新提交或标记的版本号, 实际上比已经存在的版本更新时才有效。

在Linux上安装

警告:此手动过程更加困难;建议使用 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 中所述的方式使用命令行脚本。

在macOS上安装

警告:此手动过程更加困难;建议使用 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

在Windows上安装

在开始之前,请注意你需要 (a) 在 Windows 上安装 Bitcoin Core,或者 (b) 使用在 joinmarket.cfg 中指定的与 Bitcoin Core 的远程连接(在本节末尾说明)。

如果 (a),请注意以下两点:

安装 Bitcoin Core

如果尚未安装,请按照 here 中的说明安装 Bitcoin Core 25.1 或更高版本。首次启动后,它将启动初始区块下载。在完成之前,JoinMarket 无法使用。更多相关信息请参见 here

配置 Bitcoin Core

需要配置 Bitcoin Core 以允许 JoinMarket 连接到它。从“Settings”菜单中选择“Options”,然后单击“Open Configuration File”。添加 server=1,保存并关闭文件。之后,重启 Bitcoin Core。

目前有两种在 Windows 上安装的选择:一种是直接在 Windows 上安装,需要手动添加 libsodium 依赖项;另一种是通过 WSL 机制使用 Ubuntu(这可能需要额外的设置才能使 Qt GUI 工作)。

1) 直接在 Windows 上安装

2) 使用 WSL 安装

直接在Windows上安装

本节介绍如何在 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.pyjoinmarket-clientserver\scripts 子目录中运行)。

从这里开始,转到下面的“配置 Joinmarket”。

使用 WSL 安装

注:以下方法需要 Windows 10 版本 1607 或更高版本。

启用适用于 Linux 的 Windows 子系统

注:更详细的指南可以在 here 中找到。

  1. 打开“控制面板”,然后导航到“程序”、“程序和功能”、“打开或关闭 Windows 功能”。
  2. 选择“适用于 Linux 的 Windows 子系统”,然后单击“确定”。
  3. 出现提示时,选择重新启动。
从 Microsoft Store 安装 Ubuntu
  1. 打开“Microsoft Store”,搜索“Ubuntu 24.04.1 LTS”,然后单击“获取”。

    注:可以使用其他发行版,但是这是唯一经过测试的发行版

  2. 下载完成后,单击“启动”。
  3. 应该会弹出一个窗口,告诉你“正在安装,这可能需要花费几分钟...
  4. 安装完成后,系统将要求你提供“UNIX 用户名”和“UNIX 密码”。这将是 Ubuntu 安装的管理员帐户。
  5. 通过键入命令 sudo apt update && sudo apt upgrade -y 更新 Ubuntu 中的软件来完成安装。出现提示时,键入先前提供的密码。
安装 JoinMarket

此时,你在 Windows 上有一个(几乎)功能齐全的 Linux 安装,你可以使用 readme file 中的说明或此文件的 Installation on Linux 部分来安装 JoinMarket。

通过以上两种 Windows 方法之一完成程序安装后,最后一步是配置 Joinmarket:

配置 JoinMarket

最后,我们必须配置 JoinMarket,以使其可以连接到 Bitcoin Core。请参阅使用指南中的 this 部分,以使用 scripts/wallet-tool.py 生成一个 joinmarket.cfg 文件。

编辑你的 joinmarket.cfg 文件(如果在 Ubuntu 中使用 WSL,则位于 ~/.joinmarket 中,否则位于 C:\Users\&lt;your username>\AppData\Roaming\joinmarket 中),然后替换 [BLOCKCHAIN] 部分中的以下行

rpc_user = bitcoin
rpc_password = password

#rpc_user = bitcoin
#rpc_password = password
rpc_cookie_file = &lt;Bitcoin Core 数据目录的路径>/.cookie

数据目录的位置是首次运行 Bitcoin Core 时选择的。默认值为 C:\Users\&lt;your username>\AppData\Roaming\Bitcoin。在 Ubuntu 中,这将是 /mnt/c/Users/&lt;your username>/AppData/Roaming/Bitcoin。假设你的用户名为 Alice,则完整行将是

rpc_cookie_file = /mnt/c/Users/Alice/AppData/Roaming/Bitcoin/.cookie

运行 JoinMarket-Qt

如果你直接在 Windows 上安装,则按照 usage guide 中的说明,它应该可以正常工作

如果你使用 WSL 安装,则需要以下配置:

注:你需要安装具有 Qt 支持的 JoinMarket(请参阅自述文件中的 this 部分)

  1. 在 Ubuntu 中,安装其他依赖项 sudo apt install libgl1-mesa-glx
  2. 下载并安装 MobaXterm。在启动 JoinMarket-Qt 之前,需要运行此程序。它不需要其他配置。
  3. 在 MobaXTerm 中打开 WSL-Ubuntu 会话。转到 JoinMarket 目录并运行 source jmvenv/bin/activate 以激活 Python 虚拟环境。
  4. 你现在可以按照 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 &lt;端口号>

这样做的原因可能是 (1) 运行此处提供的命令行脚本,但是 在与守护进程分开的进程中;或者,(2) 运行单独的(例如,钱包插件)代码库 来执行比特币操作。

在前一种情况下,你仍然需要安装本地软件包:

python setupall.py --client-bitcoin

然后编辑你的 joinmarket.cfg 部分 DAEMON,设置 no_daemon = 0

后一种情况适用于 Electrum 插件(当前未运行),请参见 here

在那里,你需要安装客户端代码(没有 Joinmarket 的比特币):

python setupall.py --client-only

Docker 安装

提供的 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 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
JoinMarket-Org
JoinMarket-Org
江湖只有他的大名,没有他的介绍。