比特币源码初级阅读一(1)

源码版本为v0.11.2

讲到比特币客户端的话,bitcoin core 的受众最为之广,本次阅读的源码便是其命令行版本bitcoind,版本如上。

分析源码的第一步便是找到入口程序,所以首先找到bitcoind.cpp(其位置为bitcoin-0.11.2\src\bitcoind.cpp)中的main函数,如下图所示:


不难发现在main函数中一共执行了三个函数,下面我们对这三个函数一一解释

1,setupEnvironment()

该函数的位置在bitcoin-0.11.2\src\util.cpp,其作用是准备环境,附图


我们将这段代码拆开来看,首先是上面一部分,上图


这部分是设置系统的区域环境,用于设定程序所使用的编码格式,时间,数字格式等等,具体实现就如图注释一致(绿字),因为在有些系统上POSIX system是不支持的,所以进行判断,是否对WIN32、MAC_OSX等进行了宏定义,这里我个人的想法是,设置的区域环境在有些系统上是无效的(比如linux),#if判断句后的系统是没有问题的,如果对这些这些系统进行了宏定义(即当前环境为该系统)就跳过,否则使用“try”进行异常捕捉(即查看系统环境在该系统是否有效),如果捕捉到异常就回滚到系统默认的locale“c”,结束战斗,剩下的代码如图:


上面的两行代码分别是,返回先前所使用的区域环境,第二行将该环境填充给程序,因为程序的初衷不是改环境,而是防止不能初始化。

(今天到这,剩下的两个函数在第二篇文章中分析)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容