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

2021-09-24 04:10:18 字數 685 閱讀 5292

bitcoin core首先是乙個p2p軟體,然後還需要接受使用者輸入。位元幣會監聽兩個埠,乙個用於結點間通迅,乙個用於使用者與結點互動(錢包功能,資料查詢等)。

一、p2p結點

p2p埠可以通過引數-port指定,主網預設是ndefaultport = 8333。因為p2p連線,一開始要如何發現其他結點?作為乙個去中心化軟體,和其他p2p軟體一樣,位元幣也要去乙個中心結點查詢其他結點的ip和埠。這個是通過dns服務來實現的。在**裡hardcode了好幾行類似vseeds.emplace_back("seed.bitcoin.sipa.be");這樣的網域名稱。這些網域名稱是由這樣的網域名稱伺服器解釋的。

bitcoin-seeder先是**裡也配置了一些位元幣結點位址,然後通過和新鏈結進來的結點互動資料,根據他們資料是否是最新來決定是否把他們的位址發給其他結點。流程大概是這樣,位元幣結點第一次啟動時,通過查詢網域名稱服務鏈結到bitcoin-seeder,seeder根據記錄的資料隨機回了一組位址,位元幣拿到位址後就去連這些結點。然後位元幣結點間也相互交換各自的鄰居結點資料,關閉時,會記錄活躍的結點,下次啟動就不用去dns查詢了。

二、rpc呼叫介面

可以通過-rpcport引數指定rpc埠。rpc介面是使用的是http協議,資料格式為json。可以通過http來呼叫,也可以通過bitcoin-cli程式在命令列呼叫,bitcoin-cli help會返回所有的rpc介面。

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

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

位元幣原始碼解讀一

上次在ubuntu系統中將位元處原始碼編譯環境設定好了後,還沒有具體分析裡面的 今天我們就解讀一下。原始碼版本是bitcoin 0.9.5rc2。我們說驗證位元幣客戶端安裝成功就是從 which bitcoind 這個命令進行驗證的,因為位元幣客戶端有兩個。乙個是圖形介面的版本,通常被稱為 bitc...

什麼是位元幣(Bitcoin)

位元幣是一種型別的電子貨幣。點對點 p2p 網路跟蹤和驗證交易。位元幣系統不涉及金融機構,因此它不需要 監控單元以控制該貨幣。它可以利用網路作為現金。位元幣系統 位元幣是在處理稱為區塊 block 的資料後產生或開採出來。bitcoin的生成,俗稱挖礦。須要極大的運算能力。沒有足夠資源的使用者能夠直...