栏目导航
推荐产品
联系我们
服务热线
029-89305858
总部地址: 西安市雁塔区富鱼路双旗寨工业园58号
当前位置:主页 > 文章详情
比特币源码研读之一

  本文比特币源码下载地址为:,下载的版本为github中的最新版本,即0.14版。其源码目录结构如下。

  图中红色矩形框选中的src文件夹为比特币源码所在目录,因此我的比特币源码之旅将从这个文件夹开始。

  众所周知,任何事物都有其起始位置,就像我们走进一栋房子应该先找到大门一样。软件程序也不例外,每个软件程序都有其入口函数,那么要研读比特币源码,首先需要从其入口函数看起,这样才能逐步理解其执行顺序与逻辑结构。

  因此,在进入src目录后,我的第一要事就是找到初始化函数的具体位置。由于刚开始看比特币源码,所以对src中的所有代码都很感兴趣,每个都想点开看看每个文件中都说了什么,而且我自己也确实这么做的,挨个看了一遍之后,发现比特币源码确实有点复杂,着实佩服《精通比特币》的作者,不愧是牛人!他能在把源码看完之后,根据自己对源码的深刻理解写了一本让我们能看懂比特币运行原理的书,以便于我们这些后来者可以很好地理解比特币及其源码。

  想到此内心开始有点小激动,因为我看到我们研读班的同学们在经过一段时间的学习之后,编程能力将得到很大的提升,同时,还能有很多的输出,为后来者提供方便!

  话不多说,回到正题!前面说到首先要找到比特币源码的入口函数,想到比特币源码是基于C/C++编写的,所以,首当其冲是要找到main函数。想到比特币源码编译完成后,其后台服务进程名为bitcoind,所以,我就想是否有bitcoind.cpp或类似名字的实现文件呢?经过查看,在src文件夹中果然发现了bitcoind.cpp,打开这个文件后,搜索main函数,在189行还真就搜到了main函数,函数中包含的有效代码只有3行,如下所示:

  对于C/C++程序员来说,这是多么熟悉的函数!说真的,找到这个main函数还真不容易啊,因为这是经过了大量的源码文件浏览才找到的!虽然在找main函数时,花费了不少时间看其他的源码文件,但正如笑来老师在其公众号中说的:“世界上没有白走的路,每一步都算数……”,这个过程对于我熟悉比特币核心源码的整体结构还是有帮助的,让我可以知道钱包实现代码、区块实现代码、区块链实现代码以及挖矿实现代码的具体位置,为后续的源码研读提供了很好的帮助!

  以上就是比特币源码中后台进程bitcoind的运行过程,本文只是列举出了其运行所执行的具体过程,其实每一步都包含了相应的子分支,包含了很多实现代码,我将在后续的文章将对其每一步进行详细说明,敬请期待!

  我们区块链研习社已创建“区块链研习社币圈交流”小密圈”,在小密圈中,我们将带领大家一起学习区块链的原理与投资,还将提供区块链基本原理解答、交易所注册与交易操作、ICO交易与操作、投资分析、风险分析等内容。

  本人15年毕业后一直从事Java电商平台的开发工作,2017年4月开始接触区块链技术,随后慢慢自学了《精通比特币》...

  比特币源码研读之一——区块链研习社 《比特币源码研读班》 一看文件夹结构 和 github编译依赖,分析的依赖库 ...

  本文由【区块链研习社】优质内容计划支持,更多关于区块链的深度好文,请点击【区块链研习社】 本文作者:区块链研习比特...

  比特币源码研读系列已经更新了3篇文章了,每篇文章都得到了很多朋友的关注和讨论。也有很多朋友在看了我的研读系列之后加...

  上一次,我们代码看到了 gArgs.ParseParameters(argc, argv); 分析输入的参数,今天...