主页 > imtoken官网下载 > 1.开启比特币源码学习之旅

1.开启比特币源码学习之旅

imtoken官网下载 2023-10-17 05:10:31

感激:

最近准备学习比特币源码。 正好有前辈也写了这个系列的文章。 感谢 Nanako (@forest21000) 提供源代码分析系列博文。 这是他的主页地址

作者讲解的很详细,强烈推荐像我这样的新手学习比特币源码参考。 此外比特币源码开发自己的币,本次学习还主要参考了《精通比特币》和《区块链开发指南》两本权威指导书籍,部分内容参考了@ttblack的博文和网络上其他作者的文章。

感谢那些为推动区块链技术而努力的大牛们! 阐明:

1) 发行说明

下载比特币源地址在:

本次学习的比特币源码版本为最新的v0.15.1,可以在Tag栏中选择需要的版本。

比特币源码是什么语言_比特币交易网站源码_比特币源码开发自己的币

比特币交易网站源码_比特币源码开发自己的币_比特币源码是什么语言

版本选择

在Linux或Mac系统下可以选择下载对应版本的.zip文件或者使用git clone命令下载。

2)编译系统说明

本次学习比特币源码的编译系统是ubuntu16.04LTS。 具体的编译过程可以参考下面的链接:

比特币源码是什么语言_比特币交易网站源码_比特币源码开发自己的币

编译成功后,在源码的src/config/文件夹下会出现bitcoin-config.h文件。 这个文件在源代码解释中经常被引用。 其实如下图所示,并不是为了得到这个文件就需要执行第一步。 4步是 4)使用make编译:只需要执行第3步,即3)生成makefile:这样可以避免make冗长的编译过程,让我们可以快速投入到源码的解释中去. bitcoin-config.h文件是一系列常量宏定义,如下图所示:

比特币源码是什么语言_比特币源码开发自己的币_比特币交易网站源码

bitcoin-config.h 文件的部分内容

好了,至此,我们已经获得了完整的比特币源代码。 下面我们看一下它的主要模块划分,熟悉一下常用的文件夹。

比特币主要模块划分:

比特币源码开发自己的币_比特币源码是什么语言_比特币交易网站源码

比特币客户端主要模块如下图所示:(摘自《区块链开发指南》P77)

比特币源码开发自己的币_比特币交易网站源码_比特币源码是什么语言

比特币客户端的主要模块

(1)初始化并启动模块

在启动阶段,客户端执行一系列初始化任务。

比特币源码开发自己的币_比特币交易网站源码_比特币源码是什么语言

(2) P2P网络模块

本地节点使用多种技术发现其他节点,并在与其建立网络连接后,接收节点消息并向其他节点发送消息。

(3) 区块交换模块

节点将自己已有的区块广播给其他节点,相互交换区块,从而建立区块链。 当节点收到数据块时,会验证数据块是否合法,并清除内存中与数据块重复的交易信息。

(4) 交易兑换模块

比特币源码开发自己的币_比特币交易网站源码_比特币源码是什么语言

节点之间交换和传输交易比特币源码开发自己的币,客户端将交易与本地钱包的比特币地址相关联。 交易信息会广播到全网节点,每个节点都会验证交易之前的动作是否合法。 如果合法,交易将被存储在内存中,等待进入数据块。

(5) 挖矿模块

挖矿是指使用工作量证明生成数据块的行为。

(6) 钱包服务模块

①客户端使用本地钱包创建交易;

②客户端将交易与本地钱包地址相关联;

③客户端提供本地钱包管理服务。

(7) RPC接口服务模块