位元幣原始碼解讀一

2021-08-11 19:17:01 字數 899 閱讀 6951

上次在ubuntu系統中將位元處原始碼編譯環境設定好了後,還沒有具體分析裡面的**,今天我們就解讀一下。原始碼版本是bitcoin-0.9.5rc2。

我們說驗證位元幣客戶端安裝成功就是從 which bitcoind 這個命令進行驗證的,因為位元幣客戶端有兩個。乙個是圖形介面的版本,通常被稱為 bitcoin(首字母大寫),以及乙個簡潔命令列的版本(稱為 bitcoind)。

我們就從bitcoind這個命令列入手,因為這個裡面**少,感覺簡單點(嘿嘿)。我在原始碼的src目錄下發現了bitcoind.cpp檔案。但沒發現bitcoind.h檔案,我也不知道為什麼。但是沒影響我們看**。

乙個c++程式的入口是從main()函式執行的。我們也從這裡看起。

bitcoind主函式

**很簡單我們就逐行分析下。

一。setupenvironment函式定義在src/util.cpp中。

setupenvironment函式

這個函式設定了本地執行環境。此函式的作用是根據不同國家設定不同的編碼,用於國際化的。

二。noui_connect

連線bitcoind客戶端的訊號處理程式。我的理解是這個訊號處理程式就是偵聽程式的各種訊息包括異常訊息,也可能是硬體的異常訊息或程式的普通訊號訊息。

應用程式初始化,其實這裡面包括了很多東西

1。parseparameters()//解析執行輸入的引數並將引數放入mapargs; mapmultiargs;這兩個map物件中。

2。判斷資料目錄是否存在並讀取配置檔案引數指定的配置檔案

3。判斷引數testnet regtest引數的合法性和是否輸入了--help或-?獲取幫助資訊的引數。

4。根據輸入引數得到相應結果並組合的json資料格式列印輸出 。

我繪製了個流程圖來說明一下客戶端的工作原理。流程圖如下:

Bitcoin位元幣原始碼解讀 開始篇

一 clone 安裝git base,然後開啟git base,轉到你喜歡的目錄,輸入命令 git clone 二 在window下可以使用visual studio.轉到bitcoin下面的目錄build msvc,有個readme.md檔案,裡面詳細介紹了如何配置msvc環境。先安裝vcpkg....

Bitcoin位元幣原始碼解讀 網路架構

bitcoin core首先是乙個p2p軟體,然後還需要接受使用者輸入。位元幣會監聽兩個埠,乙個用於結點間通迅,乙個用於使用者與結點互動 錢包功能,資料查詢等 一 p2p結點 p2p埠可以通過引數 port指定,主網預設是ndefaultport 8333。因為p2p連線,一開始要如何發現其他結點?...

位元幣原始碼研讀之一

菜菜子 forest 關注 圖中紅色矩形框選中的src資料夾為位元幣原始碼所在目錄,因此我的位元幣原始碼之旅將從這個資料夾開始。二 找到入口函式 眾所周知,任何事物都有其起始位置,就像我們走進一棟房子應該先找到大門一樣。軟體程式也不例外,每個軟體程式都有其入口函式,那麼要研讀位元幣原始碼,首先需要從...