Ethereum架構的分析

image

image

架構git

1

頂層架構設計上

區塊鏈能夠簡單的分爲三個層次,協議層、擴展層和應用層。其中,協議層又能夠分爲存儲層和網絡層,它們相互獨立但又不可分割。github

以太坊最上層的是DApp,它是整個區塊鏈的展現層,經過Web3.js和智能合約層進行交換,如以太坊使用的是truffle和web3-js,區塊鏈的應用層能夠是移動端,web端,或是融合進現有的服務器,把當前的業務服務器當成應用層。web

全部的智能合約都運行在EVM(以太坊虛擬機)上,並會用到RPC(Remote Procedure Call Protocol,遠程過程調用直觀說法就是A經過網絡調用B的過程方法)。算法

在EVM和RPC下面是以太坊的四大核心內容,包括:blockChain, 共識算法,挖礦以及網絡層。除了DApp外,其餘的全部部分都在以太坊的客戶端裏,目前最流行的以太坊客戶端就是Geth(Go-Ethereum)。數據庫

image

blockchain編程

2

從數據結構來看

協議層,是最底層的技術。這個層次一般是一個完整的區塊鏈產品,相似於咱們電腦的操做系統,它維護着網絡節點,僅提供Api供調用。網絡編程、分佈式算法、加密簽名、數據存儲技術等4個方面,分佈式算法基本上屬於業務邏輯上的實現,什麼語言均可以作到,加密簽名技術是直接簡單的使用,數據庫技術也主要在使用層面。服務器

存儲層:一個區塊(Block) + 鏈表及區塊鏈數據結構。以太坊中使用的數據庫是levelDB。網絡

網絡層:p2p網絡,P2P網絡的實現和併發處理纔是開發的難點,因此對於那些網絡編程能力強,對併發處理簡單的語言,Nodejs開發區塊鏈應用,逐漸變得更加流行,Go語言就開始很火了。數據結構

共識層:也就是激勵層,經過挖礦機制,制定區塊鏈的獲取貨幣的方式。好比比特幣用的是POW(Proof of Work工做量證實機制):電腦的性能越好,越容易獲取到貨幣獎勵。還有POS(Proof of Stake權益證實機制):相似於衆籌分成的概念,會根據你持有的貨幣數量和時間,給持有者發放利息。架構

擴展層:相似於電腦的驅動程序,以太坊中這部分包括了EVM(以太坊虛擬機)和智能合約兩部分。是爲了讓區塊鏈產品更加實用,好比以太坊的「智能合約」的概念,這是典型的擴展層面的應用開發。

合約層:以往的區塊鏈是沒有這一層的。因此最初的區塊鏈只能進行交易,而沒法用於其餘的領域或是進行其餘的邏輯處理。可是合約層的出現,及智能合約」就是「可編程合約」,或者叫作「合約智能化」,其中的「智能」是執行上的智能,也就是說達到某個條件,合約自動執行使得在其餘領域使用區塊鏈成爲了現實。

應用層:相似於電腦中的各類軟件程序,區塊鏈的展現層。DAPP產品其實也是這個層面的應用,將智能合約發佈到區塊鏈上,人們經過地址對這個區塊進行訪問繼而和智能合約交互,以太坊使用的是truffle和web3-js.區塊鏈的應用層能夠是移動端,web端,或是融合進現有的服務器,把當前的業務服務器當成應用層。基於此開發的DAPP其實就是在智能合約基礎上封裝了一層Web應用,發行代幣等都是在這個層面,經過DAPP提供的Web應用和智能合約交互。

(本文內容來源於HiBlock區塊鏈社區「一塊兒搞事情」的小夥伴                     做者:rectinajh)

如下是咱們的社區介紹,歡迎各類合做、交流、學習:)

image

點擊「閱讀原文」進入HiBlock「搞事情」的GitHub頁面~

相關文章
相關標籤/搜索