比特幣原始碼研讀之一
比特幣原始碼研讀之一
——區塊鏈研習社 《比特幣原始碼研讀班》
一看資料夾結構 和 github編譯依賴,分析的依賴庫
src
compat //工作臺程式碼 base58等
config
consensus //交易相關 merkle樹
crypto //加解密(aes sha)
leveldb //檔案資料庫 leveldb
obj
obj-test
policy //背書
primitives //區塊和交易的資料結構
qt //ui框架 qt
rpc //rpc 遠端程式呼叫
script //交易指令碼
secp256k1 //橢圓曲線
support
test //測試程式碼
univalue
wallet //錢包相關
zmq //訊息佇列庫 zmq
Library | Purpose | Description |
---|---|---|
libssl | Crypto | Random Number Generation, Elliptic Curve Cryptography |
libboost | Utility | Library for threading, data structures, etc |
libevent | Networking | OS independent asynchronous networking |
miniupnpc | UPnP Support | Firewall-jumping support |
libdb4.8 | Berkeley DB | Wallet storage (only needed when wallet enabled) |
qt | GUI | GUI toolkit (only needed when GUI enabled) |
protobuf | Payments in GUI | Data interchange format used for payment protocol (only needed when GUI enabled) |
libqrencode | QR codes in GUI | Optional for generating QR codes (only needed when GUI enabled) |
univalue | Utility | JSON parsing and encoding (bundled version will be used unless --with-system-univalue passed to configure) |
libzmq3 | ZMQ notification | Optional, allows generating ZMQ notifications (requires ZMQ version >= 4.x) |
二 看main.cpp檔案 (src/bitcoind.cpp)
int main(int argc, char* argv[])
{
SetupEnvironment(); //設定執行環境變數
// Connect bitcoind signal handlers
noui_connect(); //連線訊號和槽
//根據輸入的argc argv 引數初始化程式
return (AppInit(argc, argv) ? EXIT_SUCCESS : EXIT_FAILURE);
}
三 附main函式的結構圖
相關文章
- 比特幣原始碼研讀(1)bitcoin原始碼結構比特幣原始碼
- 比特幣原始碼研讀1——下載與編譯比特幣原始碼編譯
- 比特幣原始碼研讀(0)bitcoin本地編譯與使用比特幣原始碼編譯
- 比特幣原始碼研讀(3)資料結構-交易Transaction比特幣原始碼資料結構
- 比特幣原始碼研讀(2)資料結構-區塊Block比特幣原始碼資料結構BloC
- 比特幣原始碼研讀(4)資料結構-交易池TransactionPool比特幣原始碼資料結構
- JDK 原始碼 Integer解讀之一(parseInt)JDK原始碼
- spring-framework原始碼研讀SpringFramework原始碼
- iOS WebviewJavascriptBridge 原始碼研讀筆記iOSWebViewJavaScript原始碼筆記
- 原始碼研讀班公開計劃原始碼
- gin原始碼閱讀之一 – net/http的大概流程原始碼HTTP
- 【原始碼閱讀】AndPermission原始碼閱讀原始碼
- 比特幣原始碼分析--RPC比特幣原始碼RPC
- PostgreSQL 原始碼解讀(3)- 如何閱讀原始碼SQL原始碼
- 【Seata原始碼領讀】揭秘 @GlobalTransactional 背後 RM 的黑盒操作之一階段原始碼
- 比特幣原始碼分析-網路(一)比特幣原始碼
- 比特幣挖礦與原始碼解析比特幣原始碼
- 比特幣原始碼分析:VersionBits模組解析比特幣原始碼
- 比特幣原始碼分析--埠對映比特幣原始碼
- 開原始碼難閱讀?幾位研發的“妙招”幫你解決原始碼
- 【原始碼閱讀】Glide原始碼閱讀之with方法(一)原始碼IDE
- 【原始碼閱讀】Glide原始碼閱讀之into方法(三)原始碼IDE
- 帶你瞭解比特幣Bitcoin原始碼比特幣原始碼
- Kubernetes原始碼學習之一:下載和編譯原始碼原始碼編譯
- WeakHashMap,原始碼解讀HashMap原始碼
- Handler原始碼解讀原始碼
- Canal 原始碼走讀原始碼
- ReactorKit原始碼閱讀React原始碼
- Laravel 原始碼解讀Laravel原始碼
- Swoft 原始碼解讀原始碼
- AQS原始碼閱讀AQS原始碼
- CountDownLatch原始碼閱讀CountDownLatch原始碼
- 精讀《zustand 原始碼》原始碼
- HashMap 原始碼閱讀HashMap原始碼
- delta原始碼閱讀原始碼
- 原始碼閱讀-HashMap原始碼HashMap
- SDWebImage原始碼解讀Web原始碼
- NGINX原始碼閱讀Nginx原始碼