以太坊的架構


根據以太坊白皮書《A Next-Generation Smart Contract and Decentralized Application Platform》的描述,以太坊架構如下圖所示。

 

以太坊架構

如圖所示,以太坊架構分為 7 層,由下至上依次是存儲層、數據層、網絡層、協議層、共識層、合約層、應用層。

其中存儲層主要用於存儲以太坊系統運行中的日志數據及區塊鏈元數據,存儲技術主要使用文件系統和 LevelDB。

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

與比特幣的不同之處在於以太坊引入了交易和交易池的概念。交易指的是一個賬戶向另一個賬戶發送被簽名的數據包的過程。而交易池則存放通過節點驗證的交易,這些交易會放在礦工挖出的新區塊里。

以太坊的 Event(事件)指的是和以太坊虛擬機提供的日志接口,當事件被調用時,對應的日志信息被保存在日志文件中。

與比特幣一樣,以太坊的系統也是基於 P2P 網絡的,在網絡中每個節點既有客戶端角色,又有服務端角色。

協議層是以太坊提供的供系統各模塊相互調用的協議支持,主要有 HTTP、RPC協議、LES、ETH 協議、Whipser 協議等。

以太坊基於 HTTP Client 實現了對 HTTP 的支持,實現了 GET、POST 等 HTTP方法。外部程序通過 JSON RPC 調用以太坊的 API 時需通過 RPC (遠程過程調用) 協議。

Whisper 協議用於 DApp 間通信。

LES 的全稱是輕量級以太坊子協議(Light Ethereum Sub-protocol),允許以太坊節點同步獲取區塊時僅下載區塊的頭部,在需要時再獲取區塊的其他部分。

共識層在以太坊系統中有 PoW(Proof of Work)和 PoS(Proof of Stake)兩種共識算法。

合約層分為兩層,底層是 EVM(Ethereum Virtual Machine,即以太坊虛擬機),上層的智能合約運行在 EVM 中。智能合約是運行在以太坊上的代碼的統稱,一個智能合約往往包含數據和代碼兩部分。智能合約系統將約定或合同代碼化,由特定事件驅動觸發執行。因此,在原理上適用於對安全性、信任性、長期性的約定或合同場景。在以太坊系統中,智能合約的默認編程語言是 Solidity,一般學過 JavaScript 語言的讀者很容易上手 Solidity。

應用層有 DApp(Decentralized Application,分布式應用)、以太坊錢包等多種衍生應用,是目前開發者最活躍的一層。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM