比特币核心部分源码地址传送门:
这里对GitHub上bitcoin目录简单做一下解释:
在目录中,我们可以看到bitcoin有四个模块,分别是:bitcoin;bips;libbase58;libblkmaker。
bitcoin 这里是比特币的核心源码bips 这里是比特币的一些改进提议libbase58 这里是比特币base58编码库libblmaker 这里是比特币区块模板库———————————————下面开始进入正题———————————————
bitcoin的代码结构
使用VSCode打开bitcoin源码,src目录即源码路径打开src,可以看到相当长的代码结构,我们会一一进行阅读分析。首先简单梳理一下代码结构和各模块的功能。
bench 这里是bitcoin共识判断部分compat 这里是兼容模块consensus 这里是bitcoin共识算法部分crypto 这里是bitcoin加密算法部分interfaces 这里定义了事件、节点、钱包、初始化等接口leveldb 这里是bitcoin使用LevelDB存储数据的部分policy 这里存放了一些bitcoin设计的策略primitives 这里是bitcoin的区块和交易部分qt 这里是图形化界面部分rpc 这里是bitcoin的rpc接口部分script 这里是bitcoin的一些脚本secp256k1 这里是加密算法support 这里是一些功能支持test 这里是一些测试类univalue 这里是bitcoin一致性的部分util 这里是bitcoin的一些工具类部分wallet 这里是bitcoin钱包客户端部分zmq 这里是bitcoin的通信消息部分上面这些就是bitcoin/src路径中的一些核心目录的结构,下面会梳理一下其他的接口和功能代码。
walletinitinterface.h 这里是钱包的抽象类validation.h 这里是区块校验接口bitcoind.cpp 这里是bitcoin客户端的核心模块bitcoin-cli.cpp 这里是bitcoin的rpc接口核心模块bitcoin-tx.cpp 这里是bitcoin处理交易的核心模块剩下的则是比特币其他的功能模块。
warnings.h 这里是警告信息处理部分version.h 这里是版本信息versionbits.h 这里是版本判断部分validation.h 这里是数据校验部分timedate.h 这里是时间处理部分uint256.h 这里处理无符整数torcontrol.h 这里是洋葱网络控制部分netbase.h 这里是bitcoin处理网络部分的接口netaddress.h 这里是bitcoin处理ip地址的部分miner.h 这里是挖矿的部分还有很多其他的源码,还未进行深入的阅读。本篇文章旨在概括性的将bitcoin源码结构和功能进行梳理。下一篇文章将会对具体的模块进行阅读和分析。文章有描述不准确的地方敬请指正。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END