Bitcoin go語言版本源碼結(jié)構(gòu)
.
├── addrmgr
├── blockchain
├── btcec
├── btcjson
├── chaincfg
├── cmd
├── connmgr
├── database
├── docs
├── integration
├── limits
├── mempool
├── mining
├── netsync
├── peer
├── rpcclient
├── txscript
├── vendor
└── wire
Bitcoin Go 源碼版本目錄構(gòu)成:
- addrmgr : 地址管理
- blockchain: 區(qū)塊鏈
- btcec:實現(xiàn)crypto/elliptic Curve接口
- btcjson: 處理bitcoin JSON-RPC API相關(guān)功能
- chaincfg: 定義chain相關(guān)配置參數(shù)
- cmd: 命令行跟btcd交互
- connmgr: 比特幣網(wǎng)絡(luò)節(jié)點間連接管理
- database: 為metadata提供一個數(shù)據(jù)庫層來訪問曲掰,管理區(qū)塊元數(shù)據(jù)苞轿。
- integration: 以rpc方式驅(qū)動俘闯,測試btcd。
- limits: 設(shè)置進(jìn)程打開file descriptor數(shù)量
- mempool: a policy-enforced pool of unmined bitcoin transactions.
- mining: 挖礦功能 - 目前還在進(jìn)行開發(fā)中
- netsync: 并發(fā)同步區(qū)塊
- peer: 創(chuàng)建吧慢,管理p2p網(wǎng)絡(luò)節(jié)點
- rpcclient: rpc遠(yuǎn)程調(diào)用客戶端: websocket-enabled Bitcoin JSON-RPC client.
- txscript: 實現(xiàn)了交易腳本語言
- vendor: 用到的一些第三方庫
- wire: 實現(xiàn)bitcoin消息相關(guān)協(xié)議。
工程root目錄下文件:
.
├── btcd.go - btcd程序主入口沮焕,程序初始化对室,并啟動btcd全節(jié)點
├── config.go -負(fù)責(zé)從配置文件解釋相關(guān)的參數(shù)
├── log.go - 初始化相關(guān)日志管理器
├── params.go - 定義不同類型bitcoin網(wǎng)絡(luò)參數(shù)(mainnet, 以及其他測試網(wǎng)絡(luò) )
├── rpcadapters.go - rpc節(jié)點連接,同步管理
├── rpcserver.go - rpc服務(wù)器實現(xiàn)
├── rpcserverhelp.go - rpc服務(wù)器相關(guān)幫助
├── rpcwebsocket.go - 實現(xiàn)rpc websocket協(xié)議
├── server.go - bitcoin服務(wù)器强岸,主要處理跟bitcoin節(jié)點的通信
├── service_windows.go - window系統(tǒng)下锻弓,bitcion服務(wù)實現(xiàn)
├── signal.go - 監(jiān)聽系統(tǒng)中斷信號
├── signalsigterm.go - 定義要監(jiān)聽信息(SIGINT:中斷信號, SIGTERM:終止程序信號)
├── upgrade.go - 修改0.2.0之前版本db數(shù)據(jù)庫路徑
├── upnp.go - 實現(xiàn)NAT-PMP功能
├── version.go - 版本信息