比特币源码分析 – 概览

从程序上看,比特币程序采用一个进程多个线程的结构,既是服务器,又是客户端。 如没有特殊说明,本系列以最新源码为准进行分析。 主要模块: 初始化 区块 交易 网络 挖矿 钱包 RPC GUI 主要依赖: berkeley-db boost level db libevent miniupnpc openssl protobuf qrencode qt zmq 主要入口: 文件 函数 bitcoind.cpp main AppInit AppInitMain bitcoin-cli.cpp main AppInitRPC CommandLineRPC CallRPC bitcoin-tx.cpp main AppInitRawTx CommandLineRawTx MutateTx OutputTx 主要线程: 线程 作用 主线程 创建其它线程,等待interrupt ScriptCheck 脚本检查 scheduler 执行一般任务例如定时任务 HTTP Server 提供RPC REST服务接口 import…