BCH源码学习笔记 | 第一步:搭建BCH的源码学习环境
区块链知识 | 2019-01-11 14:16:41

【关于《BCH源码学习笔记》】

作者按:BCH是BTC的硬分叉币,代码来源于BTC,但是结合BCH的发展目标,很多细节的地方做了调整,比如说BCH的钱包地址编码,挖矿的POW难度调整算法,以及对隔离见证等新特性的支持等等,这些的调整,又让BCH有很多独特的地方。
这是一个系列文章,主要讲述我在学习BCH源码过程中的一些笔记以及心得,希望学习BCH的其他后来者,能够得到一定的借鉴意义。【点击查看《BCH源码学习笔记》完整目录】

第一步:搭建BCH的源码学习环境

一、BCH源码的下载和环境安装

BCH源码是使用C++来实现的,并且托管在GitHub上,大家可以先下载下来,然后按照BCH的文档要求,将环境搭建起来,然后在进行查看,开发和代码贡献。

1.BCH源码的下载
下面是BCH源码的GitHub的托管地址:
https://github.com/bitcoin-ABC/bitcoin-abc

大家可以通过Git的命令Clone一份到本地,或者直接下载Zip压缩包。

图片 1

下载完毕之后,大家可以看到这样一个目录:

图片 2

目录说明:

src是存放源代码的目录;
test是存放单元测试的目录;
doc是存放相关文档的目录。

我们先打开doc这个目录。
图片 3

在这里面,主要介绍了我们的环境搭建,以及相关的第三方函数库和持续集成环境搭建等文档。我们可以根据自己所处的环境,查阅不同的文档,因为,我是mac环境,所以,我主要查看Build-osx.md这个文件。

2.环境安装(MacOS)

BCH源代码编译环境安装之前,首先要做一些准备工作。

准备工作:

  1. 首先要安装Mac上的编码工具Xcode
  2. 然后安装OS X的命令行工具:xcode-select –install
  3. 然后安装Mac的包管理工具HomeBrew(http://brew.sh)

备注:

  1. Xcode最好安装最新版本,Mac的系统也至少升级到mac OS High Sierra.
  2. HomeBrew和centos上的yum,ubuntu上的apt-get是类似的工具。

准备工作做完之后,我们安装编译环境必须要的库,可以通过如下命令安装:

brew install automake berkeley-db libtool boost –c++11 miniupnpc openssl pkg-config protobuf –c++11 qt5 libevent librsvg

然后进入漫长的等待,等安装完毕之后,就可以进行源码的编译的工作了。
首先进入源代码的存放目录,然后依次使用下列命令

./autogen.sh
./configure
make
make install

以上命令执行完毕,就可以启动客户端了bitcoind了,并且可以用bitcoin-cli来进行RPC的调用了。

二、源码分析工具介绍Sublime Text 3

所谓工欲善其事必先利其器,所以,我们选择一门好的源代码查看工具,能够让我们查看代码的效率提升好几倍。

我选择的工具是Sublime Text 3,这是一个非常著名的文本编辑工具,它具有代码高亮、语法提示、自动完成且反应快速,不仅界面美观,还支持插件扩展机制,明智的程序员都用它。

1.Sublime Text 3的安装

Sublime Text 3 的下载地址:
https://www.sublimetext.com/3

大家可以通过上面的Sublime Text 3的下载地址,根据自己的机器的环境,选择不同安装包,进行安装。
图片 4

说明:大家安装完毕之后,在使用的时候,会经常得到需要注册的提示,你可以点击取消即可继续进行使用,对工具的使用没有任何影响,但是如果你是土豪,可以对官方支持一下,毕竟没有了供养,这样的优秀的编辑工具也不能存活。

2.Sublime Text 3 的插件安装步骤,以及相关插件推荐

Sublime Text 3 之所以强大,是因为它拥有众多的插件,这些插件可以让你的效率提升,那么我们就来说说Sublime Text 3的插件的安装和使用。

2.1 插件安装

插件安装有2种方式。一种是手动安装,一种是通过Package Control来安装

手动安装的方法是:
直接下载插件安装包解压缩到Packages目录(菜单->preferences->packages)。

Package Control安装方法是:
首先按Ctrl+`调出console,然后输入以下命令:

import urllib.request,os; pf = ‘Package Control.sublime-package’; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), ‘wb’).write(urllib.request.urlopen( ‘http://sublime.wbond.net/’ + pf.replace(‘ ‘,’%20′)).read())

图片 5

然后重新启动Sublime Text,就可以安装成功了。

判断是否安装成功:
在Perferences->package settings中看到package control这一项,则安装成功。

图片 6

安装成功后,可以通过按下Ctrl+Shift+P调出命令面板输入install 调出 Install Package 选项并回车,然后在列表中选中要安装的插件,即可安装。

图片 7

2.2 插件推荐 – 针对BCH源码分析

MarkDown Editing
将SublimeText扩展为能够查看和编辑 Markdown 文件的编辑器,并且通过适当的颜色高亮和其它功能来更好地完成编辑工作。

SideBarEnhancements插件
SideBarEnhancements是一款很实用的右键菜单增强插件;在安装该插件前,在Sublime Text左侧FOLDERS栏中点击右键,只有寥寥几个简单的功能;安装了功能就非常丰富了。

图片 8

3.Sublime Text 3 使用技巧-针对BCH源码阅读

快速定位函数
在函数上,点击右键,可以看到一个Goto Definition功能,点击之后,就可以快速的到达相应的函数实现部分
图片 9

函数查询
通过按下Ctrl + Shift + R,然后直接输入函数,就可以快速查询函数所在位置
图片 10

文件查找

在左侧的根目录上,点击右键,然后找到Find& Replace功能,就可以快速查找文件和相关信息

图片 11

以上就是我们在BCH源码阅读过程中所使用的工具和相关功能技巧,希望大家掌握。

下一期将和大家分享《BCH源码学习笔记》的《第二步:学习一些阅读源码的基础知识》,跟大家谈一谈C++库的学习(Boost,Signals2, Bind, Thread, Chrono, Test, Program Options,libevent)。欢迎关注!

附《笔记》完整目录,点击查看:【《BCH源码学习笔记》完整目录】

声明:本文系专栏作者“小明在链圈”独家投稿,首发资讯,未经作者授权,严禁转载。

分享