依赖

包括Boost, openssl , libevent以及QT等等

入口

https://github.com/bitcoin/bitcoin/blob/master/src/bitcoind.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
第一步:设置运行环境;
第二步:连接bitcoind信号处理对象;
第三步:应用程序初始化操作;
第四步:控制台命令传入参数解析;
第五步:解析后参数的处理;
第六步:初始化日志打印;
第七步:初始化参数设置;
第八步:初始化应用程序基本上下文环境;
第九步:应用程序参数设置;
第十步:应用程序完整性检查;
第十一步:应用程序运行主函数;
第十二部:循环等待关闭消息;
第十三步:程序关闭。

参考 https://www.jianshu.com/p/2c2b0c0af659

主要数据结构

比特币在代码中定义许多的类,有些我们在各种文章中经常看到例如

  • 交易(CTransaction),
  • 区块(CBlock),
  • 交易池(CTxMemPool)等等,
    还有些不常见的例如共识(Consensus),脚本(CScript)等等,这些数据结构在代码中随处可见,所以这部分单独拿出来对这些类包含的变量和成员函数进行解释,同时也便于之后的查阅。