官术网_书友最值得收藏!

2.1 比特幣架構

根據中本聰的論文“Bitcoin: A Peer-to-Peer Electronic Cash System”中對比特幣系統的描述,我們可以整理出如圖2-1所示的比特幣系統架構。

圖2-1 比特幣系統架構

如圖2-1所示,比特幣系統分為6層,由下至上依次是存儲層、數據層、網絡層、共識層、RPC層、應用層。

其中,存儲層主要用于存儲比特幣系統運行中的日志數據及區塊鏈元數據,存儲技術主要使用文件系統和LevelDB。

數據層主要用于處理比特幣交易中的各類數據,如將數據打包成區塊,將區塊維護成鏈式結構,區塊中內容的加密與哈希計算,區塊內容的數字簽名及增加時間戳印記,將交易數據構建成Merkle樹,并計算Merkle樹根節點的哈希值等。

區塊構成的鏈有可能分叉,在比特幣系統中,節點始終都將最長的鏈條視為正確的鏈條,并持續在其后增加新的區塊。

網絡層用于構建比特幣底層的P2P網絡,支持多節點動態加入和離開,對網絡連接進行有效管理,為比特幣數據傳輸和共識達成提供基礎網絡支持服務。

共識層主要采用了PoW(Proof Of Work)共識算法。在比特幣系統中,每個節點都不斷地計算一個隨機數(Nonce),直到找到符合要求的隨機數為止。在一定的時間段內,第一個找到符合條件的隨機數將得到打包區塊的權利,這構建了一個工作量證明機制。從PoW的角度,是不是發現PoW和分布式鎖有異曲同工之妙呢?

RPC層實現了RPC服務,并提供JSON API供客戶端訪問區塊鏈底層服務。

應用層主要承載各種比特幣的應用,如比特幣開源代碼中提供了bitcoin client。該層主要是作為RPC客戶端,通過JSON API與bitcoin底層交互。除此之外,比特幣錢包及衍生應用都架設在應用層上。

主站蜘蛛池模板: 长乐市| 嵩明县| 文昌市| 五河县| 岑溪市| 桃园市| 康保县| 同江市| 房山区| 且末县| 当涂县| 余庆县| 崇明县| 碌曲县| 阳朔县| 多伦县| 青龙| 龙陵县| 当雄县| 民丰县| 鹤岗市| 唐河县| 东源县| 西华县| 和平县| 宜阳县| 麻栗坡县| 饶河县| 互助| 伊通| 曲阜市| 榕江县| 原阳县| 南通市| 乐至县| 南安市| 宁乡县| 长子县| 巧家县| 巴青县| 正宁县|