主页 > imtoken安卓版下载2.0 > 比特币源码研究(一)

比特币源码研究(一)

imtoken安卓版下载2.0 2023-01-17 05:38:03

剪辑整理:Pz-Tse

作者简介:菜菜子,被誉为社区食神,是国内最大最优质的区块链学习社区区块链研究社区的核心成员。 曾任比特币源码研究班组长,钱潮《比特币编程》讲师,Sia中国微信群群主,Sia Wiki主译者。

文章描述

我们为什么要发表这样的技术文章?

想必大家都知道投资有一个很重要的原则——不懂就别投资。 比特币作为整个区块链世界的基础货币,每个人都或多或少要持有比特币。 既然有了,我们就要搞清楚,你手里的这个东西,代表着什么样的未来,它有什么样的长期价值? 对技术、前景、社会学、经济学等的深刻理解,可以让你更有信心将数字资产握在手中。

从本文开始,就让我们跟随食神从技术角度揭开比特币的面纱,彻底拥抱“她”吧!

正文:约1900字,预计阅读时间5分钟。

1.源码下载

比特币开源代码查询_比特币代码是怎么样的_比特币是金莱特币是银

本文比特币源码下载地址为:,下载版本为github最新版本

这,即版本 0.14。 其源代码目录结构如下。

图中红色矩形选中的src文件夹就是比特币源码所在的目录,所以我的比特币源码之旅将从这个文件夹开始

开始。

2.找到入口函数

众所周知,万物皆有起点,就像我们走进一所房子,首先要找到门一样。软件程序也不例外

比特币开源代码查询_比特币是金莱特币是银_比特币代码是怎么样的

,每个软件程序都有它的入口函数,所以研究比特币源码,首先要看它的入口函数,这样你才能逐渐

了解它的执行顺序和逻辑结构。因此,进入src目录后,我的第一件事就是找到初始化函数

具体位置。由于刚开始看比特币源码,所以对src里面的所有代码都非常感兴趣,每一个都想点进去

打开看看每个文件都说什么,我自己做的。 一一阅读后,我发现

比特币源码确实有点复杂,很佩服《精通比特币》的作者,不愧是高手!可以看看源码

完成后,基于自己对源码的深刻理解,写了一本让我们了解比特币运行原理的书,以方便

比特币是金莱特币是银_比特币代码是怎么样的_比特币开源代码查询

我们这些后来者可以很好地理解比特币及其源代码。

想到这里,我心里开始有些小激动,因为我看到我们研究班的同学经过一段时间的学习,编程能力会有所提高。

有了很大的提升比特币代码是怎么样的,同时也可以有大量的输出,为后来者提供方便!

话不多说,回归正题!前面说了,首先要找到比特币源码的入口函数比特币代码是怎么样的,以为比特币源码是基于C/C++编写的

所以,首先要做的就是找到main函数。 认为比特币源码编译后,其后台服务进程称为bitcoind

,so,不知有没有bitcoind.cpp或者类似名字的实现文件?查看后发现在src文件夹下

比特币开源代码查询_比特币是金莱特币是银_比特币代码是怎么样的

bitcoind.cpp,打开这个文件后,搜索main函数,在第189行找到了main函数,以及函数中包含的有效函数

代码只有 3 行,如下所示:

int main(int argc, char* argv[])

对C/C++程序员来说,多么熟悉的功能啊!说实话,要找到这个main函数真的不容易,因为这是经典

是翻了很多源码文件才找到的!虽然我在找main函数的时候花了很多时间看其他的源码文件,但是

就像笑来老师在他的公众号里说的:“世界上没有浪费时间这回事,每一步都很重要……”,这个过程我再熟悉不过了

比特币代码是怎么样的_比特币开源代码查询_比特币是金莱特币是银

比特币核心源码的整体结构还是有帮助的,让我知道了钱包实现代码,区块实现代码,区块链实现代码。

代码和挖矿实现代码的具体位置,为后续源码学习提供了很好的帮助!

3、初始化过程分析

main函数的运行过程如图所示。

具体操作过程为:

第一步:搭建运行环境; 第二步:连接bitcoind信号处理对象; 第三步:应用初始化操作; 第四步:分析console命令的传入参数; 第五步:对分析后的参数进行处理; 第六步:初始化日志打印; 第七步:初始化参数设置; 第八步:初始化应用程序的基本上下文; 第九步:设置应用参数; 第十步:检查应用的完整性; 第十一步:应用程序运行main函数; 第十二步:循环等待关闭消息; 第十三步:程序关闭。

以上是比特币源码中后台进程bitcoind的运行过程。 本文仅列举其运行的具体过程。

其实每个步骤都包含对应的子分支,包括很多实现代码,我会在后续文章中详细讲解每个步骤