比特币核心(Bitcoin Core)作为比特币网络的原生客户端,其源码的编译与理解是深入探索区块链技术的重要一步,本文将详细介绍如何在 Windows 环境下,使用 Visual Studio 2019 (VS2019) 编译比特币核心源码,旨在为开发者提供一份清晰、可操作的实战指南。

准备工作:编译环境的 prerequisites

在开始编译之前,确保你的系统满足以下基本要求:

  1. 操作系统:推荐使用 64 位 Windows 10 或 Windows 11,32 位系统可能无法编译或运行成功。
  2. Visual Studio 2019:必须安装 Visual Studio 2019,建议从 Visual Studio 官网下载 "Community"(社区版,免费)或更高版本。
    • 关键组件:在安装 VS2019 时,务必确保选中以下工作负载和组件:
      • “使用 C++ 的桌面开发” 工作负载:这是核心,包含了 C++ 编译器、标准库、Windows SDK 等。
      • MSBuild:通常包含在上述工作负载中。
      • Windows 10 SDK (10.0.xxxxx.x):建议安装最新的 Windows 10 SDK,或至少是 10.0.17763.0 或更高版本。
      • C++ CMake 工具(可选,但推荐,现代项目构建工具)。
      • Git for Windows:用于从 GitHub 克隆比特币核心源码。
  3. Windows SDK:确保安装了与 Visual Studio 匹配的 Windows SDK,VS2019 通常默认包含。
  4. Git:从 Git for Windows 下载并安装,用于获取源码。
  5. CMake:从 CMake 官网 下载并安装 Windows x64 安装包,虽然比特币核心主要使用 autotools(通过 depends 脚本),但 CMake 在某些辅助工具或未来可能的迁移中可能会用到,提前安装无妨。
  6. Python:比特币核心的构建脚本需要 Python 3.6+,建议从 Python 官网 安装,并在安装时勾选 "Add Python to PATH"。
  7. 硬件要求
    • CPU:64 位 x86 处理器,多核 CPU 能显著加快编译速度。
    • 内存:推荐至少 8GB RAM,16GB 或以上更佳,因为编译过程非常消耗内存。
    • 硬盘空间:至少需要 20GB 以上的可用空间,用于源码、依赖库和编译产物。

获取比特币核心源码

使用 Git 克隆比特币核心的官方仓库:

git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin

克隆完成后,你可以选择切换到特定的标签(tag)来编译某个稳定版本,例如编译 v0.21.2 版本:

git checkout v0.21.2

编译依赖库(depends 脚本)

比特币核心依赖于许多第三方库,如 Boost、Berkeley DB (BDB)、Qt (如果需要 GUI)、MiniUPnPc 等,手动编译这些库繁琐且易出错,幸运的是,比特币项目提供了 depends 脚本来简化这一过程。

  1. 安装 MSYS2depends 脚本在 MSYS2 环境下运行,从 MSYS2 官网 下载并安装,安装完成后,打开 MSYS2 MINGW64 终端(或 MSYS2 UCRT64,根据你的选择和 VS2019 的兼容性,MINGW64 更常见)。
  2. 更新 MSYS2:在 MSYS2 终端中运行以下命令更新系统:
    pacman -Syu
    # 可能需要关闭终端重新打开,然后再次运行
    pacman -Su
  3. 安装依赖工具:在 MSYS2 MINGW64 终端中安装构建所需的工具:
    pacman -S --needed base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja
  4. 随机配图