Bitcoin go语言版本源码结构
.
├── addrmgr
├── blockchain
├── btcec
├── btcjson
├── chaincfg
├── cmd
├── connmgr
├── database
├── docs
├── integration
├── limits
├── mempool
├── mining
├── netsync
├── peer
├── rpcclient
├── txscript
├── vendor
└── wire
Bitcoin Go 源码版本目录构成:
- addrmgr : 地址管理
- blockchain: 区块链
- btcec:实现crypto/elliptic Curve接口
- btcjson: 处理bitcoin JSON-RPC API相关功能
- chaincfg: 定义chain相关配置参数
- cmd: 命令行跟btcd交互
- connmgr: 比特币网络节点间连接管理
- database: 为metadata提供一个数据库层来访问,管理区块元数据。
- integration: 以rpc方式驱动,测试btcd。
- limits: 设置进程打开file descriptor数量
- mempool: a policy-enforced pool of unmined bitcoin transactions.
- mining: 挖矿功能 – 目前还在进行开发中
- netsync: 并发同步区块
- peer: 创建,管理p2p网络节点
- rpcclient: rpc远程调用客户端: websocket-enabled Bitcoin JSON-RPC client.
- txscript: 实现了交易脚本语言
- vendor: 用到的一些第三方库
- wire: 实现bitcoin消息相关协议。
工程root目录下文件:
.
├── btcd.go - btcd程序主入口,程序初始化,并启动btcd全节点
├── config.go -负责从配置文件解释相关的参数
├── log.go - 初始化相关日志管理器
├── params.go - 定义不同类型bitcoin网络参数(mainnet, 以及其他测试网络 )
├── rpcadapters.go - rpc节点连接,同步管理
├── rpcserver.go - rpc服务器实现
├── rpcserverhelp.go - rpc服务器相关帮助
├── rpcwebsocket.go - 实现rpc websocket协议
├── server.go - bitcoin服务器,主要处理跟bitcoin节点的通信
├── service_windows.go - window系统下,bitcion服务实现
├── signal.go - 监听系统中断信号
├── signalsigterm.go - 定义要监听信息(SIGINT:中断信号, SIGTERM:终止程序信号)
├── upgrade.go - 修改0.2.0之前版本db数据库路径
├── upnp.go - 实现NAT-PMP功能
├── version.go - 版本信息