接着上一章说,上一次大致阅读完了目录,这一次要重点说一下src目录,src是比特币的核心代码所在地,同时它所包含的信息也非常多。以下做一个简要的介绍。
1.src/bench 说实话,我不太清楚他的具体功能,但其中有base58编码,有checkqueue等,让人感觉像是添加一个块和块中运算的一些基本标准。
2.src/compact 处理文件兼容性相关的细节,跨平台,系统适配等。
3.src/config 配置文件。
4.src/consensus 交易/块的验证,里面有共识参数和认定方法,和merkle tree。
5.src/crypto 里面有加密函数hash,SHA256,RIPEMD160等。
6.src/index 交易的读写,查询交易。
7.src/interface 接口,内有handler,node,wallet的的接口
8.src/leveldb LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.具体内容见readme。
9.src/obj 目标文件
10.src/obj-test 目标文件
11.src/policy 用户可以根据自身需求而定义不同的policy。
12.src/primitives 区块构建和验证交易
13.src/qt GUI库
14.src/rpc RPC框架是用于调用远程代码的一套工具
15.src/script 交易溯源,秘钥验证,交易脚本,签名。
16.src/secp256K1 比特币椭圆曲线参数,运用于椭圆曲线算法
17.src/support 内存控制,将未验证的区块放在内存里面
18.src/test 各种测试
19.src/univalue UniValue is an abstract data type that may be a null, boolean, string, number, array container, or a key/value dictionary container, nested to an arbitrary depth.具体在readme里会有
20.src/wallet 你的钱包,记录用户的信息,以及完成交易等信息
21.src/amq 是一个高性能的异步信息库
那到此基本清楚目录的具体功能,脑子中也应该有个具体的架构了。