主页 > imtoken钱包下载官网 > 白话区块链之13——比特币源码手把手编译

白话区块链之13——比特币源码手把手编译

imtoken钱包下载官网 2023-01-18 19:40:07

1) 第一条命令是安装git命令工具。这个 git 工具用于从 github 下载源代码。其实使用git工具不仅可以下载源码,还可以在机器上创建自己的仓库;

2) 第二条命令是在当前用户的目录下创建一个文件夹,用来保存要下载的比特币源代码。读者朋友在操作时可以自行决定路径和文件夹名称;

3)第三条命令是从GitHub下载比特币的源代码到创建的bitcoinsource目录。这里有一个问题需要注意。如果 git clone 进程被终止,再次执行 clone 时会报错。一般会有这样的提示:

git clone:GnuTLS recv 错误(-9)@ >:收到了意外长度的 TLS 数据包

这个错误的原因是因为git clone不支持间歇性下载,删除目录然后新建一个目录再克隆一次。

除了上面的git clone命令方法,其实我们可以直接在GitHub上下载源码包。下载的文件名一般是bitcoin-master.zip,然后解压:

解压bitcoin-master.zip

解压后将当前工作目录cd到bitcoin-master比特币项目开源代码,就可以开始编译了。

3. 安装依赖库

要想做好事,首先要磨砺自己的工具。比特币源代码中使用了很多第三方函数库。这些都是必要的依赖。三堆,没有这些免费好用的库,用C++开发比特币软件会复杂很多。

比如下面三行命令主要是安装C++编译器和make工具:

sudo apt-get install make

sudo apt-get install gcc

sudo apt-get install g++

例如以下命令主要是安装依赖:

sudo apt-get install build-essential

sudo apt-get install libtool

sudo apt-get install autotools-dev

sudo apt-get install autoconf

sudo apt-get install pkg-config

sudo apt-get install libssl-dev

sudo apt-get install libevent-dev

sudo apt-get install libboost-all-dev

sudo apt-get install libminiupnpc-dev

sudo apt-get install libqt4-dev

sudo apt-get install libprotobuf-de

sudo apt -get install protobuf-compiler

sudo apt-get install libqrencode-dev

libevent-dev 是实现网络通信功能的网络库; libssl-dev 是一个密码算法库,提供随机数生成、椭圆曲线密码学等功能; libboost-all-dev是一个C++工具库,为多线程调用等各种C++调用和一些有用的数据结构提供了基本的函数库; libqt4-dev 是一个跨平台的C++库,用于实现跨平台操作的软件接口;和其他等,是需要在比特币源代码中使用的功能依赖库。值得一提的是,这些依赖库也是开源的,也就是说比特币源代码本身不仅免费开源,使用的其他依赖库也是免费开源的,方便有心人使用比特币源代码。深入研究的朋友可以细细细细细细细细细细品味每一个实现细节,尽可能地学习研究。

这两行命令主要是安装比特币需要使用的数据存储驱动。使用的类型是 Berkeley DB,它是一个开源文件数据库。至此,一切准备就绪。好了,要准备的材料都准备好了。

sudo apt-get install libdb-dev

sudo apt-get install libdb++-dev

4.编译准备

这两步是用make工具编译的准备工作。

./autogen.sh

./配置

需要注意的是,在执行./configure时,可能会看到这样的提示,如下:

配置:错误:发现除了 4.8 以外的 Berkeley DB,便携式钱包需要(--with-incompatible-bdb 忽略或--disable-wallet 禁用钱包功能)

执行configure命令时看到提示有问题,可能是Berkeldy DB的版本高于4.8。当我们安装 BerkeleyDB 时,下载安装的命令是最新的。版本,这其实只是一个警告,没有任何作用,而且在提示中也给出了解决方法,只需在configure命令后加一个参数--with-incompatible-bdb即可。

./configure —with-incompatible-bdb

执行完成后,接下来的工作就简单了,make,编译,安装即可。

5.编译安装

制作

sudo 安装

执行完成后就大功告成了,接下来我们就可以运行比特币客户端程序了。我们可以尝试用界面运行程序。这一步完成后,在源目录src/qt/中生成一个可执行程序,并安装在/usr/local/bin目录下。

6.运行测试

输入以下命令:

比特币-qt

激动人心的时刻即将到来!我们可以看到显示了比特币界面,当然我们也可以尝试运行bitcoind程序。至此,在Ubuntu操作系统上编译比特币源码就结束了。限于篇幅,Mac、Windows等其他操作系统上的编译过程在此不再赘述。如果读者有兴趣,还可以参考 doc 文件夹下的比特币源代码 build-osx.md 和 build-windows。 md 的文档,分别尝试在 Windws 和 MacOS 系统上编译。

7.使用IDE管理源码

按理说这里没什么好说的,编译完成,可以运行了,不过我觉得没什么问题。太酷了?对了,缺个IDE(Integrated Development Environment,集成开发管理)啊,这么多文件比特币项目开源代码,用文本编辑器一个一个看,看得眼花缭乱。好的,接下来我们将安装一个IDE工具来管理这些源代码。比特币系统使用C++开发,图形界面部分使用qt组件。然后选择QtCreator,它也是开源的,而且是跨平台的,对于C++的编译支持也很好。由于上述源码编译是在Ubuntu下进行的,所以我们还是在Ubuntu下设置安装,下面按照步骤一步步讲解。

(1) 准备QtCreator

可以直接从QtCreator官网下载。 Qt分为商业版和开源版。我们可以使用开源版本。下载后,我们会得到一个文件 qt-opensource -linux-x64-5.6.2.run ,读者朋友自行下载时,也可以选择在线安装版本,离线安装版本。离线安装版本在这里下载。文件所在目录,执行如下命令

chmod +x qt-opensource-linux-x64 -5.6.2.运行

。 /qt-opensource-linux-x64 -5.6.2.运行

命令的第一行是为安装文件分配执行权限。

第 2 行是执行安装。

安装完成后,可以打开QtCreator,看到如下界面

(2)导入源代码项目

在QtCreator的菜单栏中,点击“文件”→“新建文件或项目”,会弹出一个向导窗口,选择“导入项目”,右侧选择“导入现有项目”,如下图.

接下来就是选择我们的比特币源码所在目录,也就是需要导入的项目。

图中的“项目名称”可以任意命名,“位置”为比特币源代码所在的目录。做出选择后继续。

该界面主要用于选择源代码版本控制系统,可以根据自己的需要进行选择。操作,源代码导入后,在QtCreator中的显示如下

可以看到左侧已经列出了源代码的文件列表,src目录下面是所有的代码文件。可以看到根据不同的代码功能划分了不同的目录。具体细节在此不再赘述。此时可以运行一下试试,点击运行按钮,砰,怎么回事,弹出什么?

这里是选择一个执行程序,比如bitcoin-qt、bitcoind等,我们通过这个对话框选择bitcoin-qt,如下图

注意这里选择的可执行程序在src/qt/目录下,该目录下的可执行程序是源码编译直接生成的。

选择后点击运行,又可以看到熟悉的界面了,所以我们使用QtCreator来管理比特币的源代码,通过IDE工具查看源代码就方便多了,感兴趣的朋友也可以尝试修改接口文件或源代码文件,体验编译调试的乐趣。

提示:

①我们使用QtCreator引入的源码目录之前已经经过一系列步骤编译,所以依赖库已经有了,执行程序也有了。已经生成的 QtCreator 就像一个外壳,只是做一个导入集成。

②比特币是一个一直在开发的开源项目。参考上述步骤时,一定要注意选择的版本是否一致或兼容。本文选择的操作系统为Ubuntu16.04 LTS桌面版,下载的比特币源码版本为v0.14,使用的QtCreator为4.0.3 .

文章前面给出的“白话区块链”系列文章1到12系列文章的链接;

2019-10-28,“”

2019-11-07,“”