基于 Win10 和 VS2013-VS2019 的
比特币源码(v0.01)编译
2020 年 3 月
目录
前言................................................................................................................................ 4
一、准备工作................................................................................................................ 5
1.1 源码下载......................................................................................................... 5
1.2 文件构成......................................................................................................... 5
1.3 源码构成......................................................................................................... 6
二、编译项目搭建........................................................................................................ 8
2.1 新建项目......................................................................................................... 8
2.2 源码添加......................................................................................................... 8
三、第三方依赖编译.................................................................................................. 11
3.1 wxWidgets ..................................................................................................... 11
3.1.1 文件下载............................................................................................ 11
3.1.2 编译过程............................................................................................ 11
3.2 Openssl ........................................................................................................... 13
3.2.1 文件下载............................................................................................ 14
3.2.2 编译过程............................................................................................ 14
3.3 Berkeley DB................................................................................................... 19
3.3.1 文件下载............................................................................................ 19
3.3.2 编译过程............................................................................................ 20
3.4 Boost .............................................................................................................. 21
3.4.1 文件下载............................................................................................ 21
3.4.2 编译过程............................................................................................ 22
四、源码编译.............................................................................................................. 23
4.1 集成第三方依赖........................................................................................... 23
4.1.1 wxWidgets .......................................................................................... 23
4.1.2 Openssl ................................................................................................ 24
4.1.3 Berkeley DB........................................................................................ 24
4.1.4 Boost ................................................................................................... 25
4.2 配置第三方库............................................................................................... 26
4.3 编译项目....................................................................................................... 31
后记.............................................................................................................................. 34
前言
比特币第一版源码(v0.01),是对照比特币白皮书研究区块链的最佳选择,
因此搭建比特币开发环境是研究区块链技术的第一步。在 Win10 环境下通过
VS2013/VS2019 搭建比特币环境,能快速有效地帮助我们学习区块链知识。本文
将从 bitcoin- v0.01 源码作为切入点,详尽展示比特币编译过程,为自主编译、学
习、理解区块链技术提供坚实的实践基础。
比特币 v0.01 源码中包含编译好的 bitcoin.exe,可在 Win7 中可直接运行,在
Win10 环境下需要重新编译生成新的 bitcoin.exe 文件才可以运行。文本主要讲述
如何在 Win10 中使用 VS2013 编译比特币 v0.01 源码(VS2015/VS2017/VS2019
也可编译成功,见下图)。
一、准备工作
1.1 源码下载
首先,获取比特币第一版内测源码 BitCoin-v0.01-ALPHA,作为参照学
习。下载地址:https://github.com/livegnik/BitCoin-v0.01-ALPHA。
1.2 文件构成
拿到源码,首先需要了解源码的文件结构、软件功能、软件定位以及运行环
境等信息,进而从整体上把握比特币源码的结构。源码文件结构如下图所示:
根据编程经验和查阅资料,得知文件构成如下:
➢ src:源码文件夹
➢ bitcoin.exe:比特币钱包客户端运行程序(Win7 可直接运行)
➢
libeay32.dll:Openssl 动态链接库
➢ LICENSE:MIT 许可证
➢
license.txt:版权说明
➢ mingwm10.dll:mingw 动态链接库
➢
readme.txt:了解软件定位、基本功能、运行环境等的指引文件
通过对整体文件结构的理解和 readme.txt 所提供的信息,我们可以初步得出
以下信息:
✓ 比特币是一种电子现金系统,它使用点对点网络来防止双花。它完全是
分布式的,没有中心化服务器或中心权威。
✓ 此版本为测试版本(ALPHA 版本),可在文件解压目录中直接运行
bitcoin.exe,为连接其他节点需将端口绑定为 8333。
✓ 通过 Generate Coins 选项可解决一个计算难题,成功解决一个难题将创
建一个新区块并得到比特币作为报酬。
1.3 源码构成
src 中包含编译比特币客户端需要的头文件、源文件、资源文件等。src 中的
文件结构如下:
整体了解源码的相关信息可以从 readme.txt 文件开始。作为源码的说明文件,
readme 提供了源码编译环境和第三方依赖的版本、编译的说明,为我们编译源码
提供了诸多有用的信息。通过阅读 readme 文件,可以得到以下信息:
✓ 编译源码所用的 IDE 为 Microsoft Visual C++ 6.0,编译器为 MinGW。
而本文将使用目前较为主流的 IDE:VS2013 或 VS2019 进行编译,操作系统为
Win10 家庭版(专业版也可)64 位。
✓ 编译过程应用了四个第三方依赖库: wxWidgets、Openssl、Berkeley
DB、Boost。
✓ 文件提供了所需库文件的版本信息与编译方法,因此需要我们提前编译
第三方依赖库文件,以获得第三方依赖。
二、编译项目搭建
2.1 新建项目
在整体了解了比特币源码后,开始搭建比特币源码编译项目。使用 VS2013
新建一个空项目 bitcoin2013:
在项目文件中,为了集中存储第三方依赖库和源码,分别添加 3rdparty 和 src
文件夹,其中 3rdparty 用于存放第三方依赖,src 用于存放 bitcoin 源码文件:
2.2 源码添加
将源码文件 bitcoin-0.1.0-vs 中 src 文件夹和所有的.cpp/.h/.rc 文件拷贝至