區塊鏈(BlockChain)以太坊系統架構簡介

本章的主要內容是爲大家介紹一下以太坊的系統架構。

根據以太坊白皮書的描述,以太坊系統架構圖如下所示:

 

 

        如圖所示,以太坊系統架構大體上分爲8層,由底層到應用層依次爲存儲層、數據層、網絡層、協議層、共識層、激勵層、合約層、應用層。

        每個層級的主要功能:

        (1)存儲層:用於存儲以太坊系統運行過程中產生的區塊鏈元數據和系統日誌。區塊鏈元數據採用 LevelDB 數據庫存儲,系統日誌由文件系統存儲。

       (2)數據層:數據層是區塊鏈的核心,主要處理以太坊交易中的各類數據,完成數據的編碼、解碼,將數據打包成區塊,將區塊拼接成鏈式結構,處理區塊數據簽名並添加時間戳印記,將交易數據構建成 Merkle 樹,並計算 Merkle 樹根節點的 hash 值等。

      (3)網絡層:主要實現網絡節點的連接和通訊,又稱點對點技術(P2P)。

      (4)協議層:以太坊提供的供系統各模塊相互調用的協議支持,主要有 HTTP、RPC協議、LES、ETH 協議、Whipser 協議等。
                以太坊基於 HTTP Client 實現了對 HTTP 的支持,實現了 GET、POST 等 HTTP 方法。
                外部程序通過 JSON RPC 調用以太坊的 API 時需通過 RPC (遠程過程調用) 協議。
                Whisper 協議用於 DApp 間通信。
                LES 的全稱是輕量級以太坊子協議(Light Ethereum Sub-protocol),允許以太坊節點同步獲取區塊時僅下載區塊的頭部,在需要時再獲取區塊的其他部分。

      (5)共識層:主要實現全網所有節點對交易和數據達成一致,防範拜占庭攻擊、女巫攻擊、51%攻擊等共識攻擊,其算法稱爲共識機制。共識機制是區塊鏈的核心技術,它決定了有誰來出塊,出塊權選擇方案將影響整個系統的安全與穩定。常用的共識機制有POW(Proof of work)工作量證明、POS(Proof of stake)權益證明等。

      (6)激勵層:激勵層主要是爲了實現代幣的發行和分配,採用經濟利益來規範整個系統正常循環發展。(注:私有鏈不需要激勵機制)

      (7)合約層:智能合約是運行在以太坊虛擬機上代碼的統稱。智能合約的開發一般採用 Solidity 編程語言,編譯成功後部署到 EVM 上運行執行。

      (8)應用層:基於以太坊系統開發應用產品,根據不同場景開發相應的應用,是開發者主要的工作區。

       總結:從以太坊源碼分析來看,以太坊系統架構可以分成8個層級,每個層級直接是有依賴關係的,最終形成一套完整的系統。以太坊是開源的,大家可以下載源碼查看,學習裏面的技術。也可以依賴以太坊系統,搭建自己的應用系統,比如產品溯源、身份認證、權限認證等。

       以太坊官網:https://ethereum.org
       以太坊源碼:https://github.com/ethereum/go-ethereum
       以太坊中國社區:https://ethfans.org

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章