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

2.2 以太坊架構(gòu)

根據(jù)以太坊白皮書 A Next-Generation Smart Contract and Decentralized Application Platform的描述,以太坊架構(gòu)如圖2-2所示。

圖2-2 以太坊架構(gòu)

如圖2-2所示,以太坊架構(gòu)分為7層,由下至上依次是存儲(chǔ)層、數(shù)據(jù)層、網(wǎng)絡(luò)層、協(xié)議層、共識(shí)層、合約層、應(yīng)用層。

其中存儲(chǔ)層主要用于存儲(chǔ)以太坊系統(tǒng)運(yùn)行中的日志數(shù)據(jù)及區(qū)塊鏈元數(shù)據(jù),存儲(chǔ)技術(shù)主要使用文件系統(tǒng)和LevelDB。

數(shù)據(jù)層主要用于處理以太坊交易中的各類數(shù)據(jù),如將數(shù)據(jù)打包成區(qū)塊,將區(qū)塊維護(hù)成鏈?zhǔn)浇Y(jié)構(gòu),區(qū)塊中內(nèi)容的加密與哈希計(jì)算,區(qū)塊內(nèi)容的數(shù)字簽名及增加時(shí)間戳印記,將交易數(shù)據(jù)構(gòu)建成Merkle樹,并計(jì)算Merkle樹根節(jié)點(diǎn)的hash值等。

與比特幣的不同之處在于以太坊引入了交易和交易池的概念。交易指的是一個(gè)賬戶向另一個(gè)賬戶發(fā)送被簽名的數(shù)據(jù)包的過程。而交易池則存放通過節(jié)點(diǎn)驗(yàn)證的交易,這些交易會(huì)放在礦工挖出的新區(qū)塊里。

以太坊的Event(事件)指的是和以太坊虛擬機(jī)提供的日志接口,當(dāng)事件被調(diào)用時(shí),對(duì)應(yīng)的日志信息被保存在日志文件中。

與比特幣一樣,以太坊的系統(tǒng)也是基于P2P網(wǎng)絡(luò)的,在網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)既有客戶端角色,又有服務(wù)端角色。

協(xié)議層是以太坊提供的供系統(tǒng)各模塊相互調(diào)用的協(xié)議支持,主要有HTTP、RPC協(xié)議、LES、ETH協(xié)議、Whipser協(xié)議等。

以太坊基于HTTP Client實(shí)現(xiàn)了對(duì)HTTP的支持,實(shí)現(xiàn)了GET、POST等HTTP方法。外部程序通過JSON RPC調(diào)用以太坊的API時(shí)需通過RPC(遠(yuǎn)程過程調(diào)用)協(xié)議。

Whisper協(xié)議用于DApp間通信。

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

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

合約層分為兩層,底層是EVM(Ethereum Virtual Machine,即以太坊虛擬機(jī)),上層的智能合約運(yùn)行在EVM中。智能合約是運(yùn)行在以太坊上的代碼的統(tǒng)稱,一個(gè)智能合約往往包含數(shù)據(jù)和代碼兩部分。智能合約系統(tǒng)將約定或合同代碼化,由特定事件驅(qū)動(dòng)觸發(fā)執(zhí)行。因此,在原理上適用于對(duì)安全性、信任性、長(zhǎng)期性的約定或合同場(chǎng)景。在以太坊系統(tǒng)中,智能合約的默認(rèn)編程語(yǔ)言是Solidity,一般學(xué)過JavaScript語(yǔ)言的讀者很容易上手Solidity。

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

主站蜘蛛池模板: 东光县| 错那县| 合江县| 东光县| 正阳县| 石首市| 柳江县| 通海县| 沭阳县| 孟津县| 清徐县| 六安市| 蓬溪县| 通道| 全州县| 新蔡县| 海阳市| 无为县| 大洼县| 侯马市| 乐清市| 鄂托克前旗| 墨江| 万荣县| 乐清市| 囊谦县| 内乡县| 玉田县| 隆回县| 涡阳县| 吴堡县| 淳安县| 关岭| 黔西县| 大同县| 财经| 西华县| 娄烦县| 东丰县| 海丰县| 仲巴县|