以太坊架構簡析

2021-09-21 04:58:35 字數 1207 閱讀 5686

httpclient:支援http協議、實現get、post等http方法。

http/json rpc/ipc [1]:實現程式/程序間的通訊。外部程式可以通過json rpc呼叫api。

swarm:乙個web應用開發框架,其允許程式分布在多台計算機上,並能夠動態分配運算以提公升運算效率。

容器:包含程式和程式執行所需的完整環境,相當於輕量虛擬機器。可以無視環境難題,被快速部署

p2p網路:對等節點組成的網路,每個節點都同時起到客戶端和服務端的作用。

挖礦:節點爭奪記賬權,並在記賬成功後獲取代幣獎勵。

leveldb:高效的kv(key-value)資料庫[2]。

crypto:加密。以太坊使用sha3、secp256k1加密演算法。

rlp:recursive length prefix,即遞迴長度字首。在以太坊中對物件進行序列化[3]和反序列化編碼。

校驗:包含區塊、交易合法性校驗,merkle patricia tree校驗,交易池校驗。

交易池管理:節點將通過驗證的交易存在交易池中,準備放在乙個挖到的區塊裡。

evm:ethereum virtual machine

,即以太坊虛擬機器。智慧型合約在

evm之上執行。

智慧型合約:可以理解為:包含價值且只有在滿足一定條件時才會開啟的加密箱子。其具有圖靈完備性。

web3.js:封裝了以太坊json rpc api的js庫,包含與區塊鏈互動的js物件和函式。有檢視網路狀態、查詢本地賬戶、查詢交易和區塊、傳送交易、編譯/部署合約等的api

交易:乙個賬戶向另乙個賬戶傳送被簽名的資料報的過程

[1] ipc:inter-progress communication,即程序間通訊。ipc包含lpc(local progress call)和rpc(remote procedure call)。可以認為rpc是:把分割的程式通過網路重組。通過網路,像操作本機**一樣呼叫遠端機器上的**。json rpc是以json為協議的rpc,傳輸的內容是json本體。

[2] kv資料庫中的資料按照kv對進行組織、索引、儲存。kv資料庫沒有固定的資料結構,而sql資料庫的資料一般都具有固定的資料結構。這裡的key一般與hash相關,value一般儲存rlp編碼。

[3] 序列化:把物件轉化為位元組序列的過程。反序列化是它的逆過程。

位元幣2 0 以太坊架構

以太坊由底層服務,核心層,頂層應用組成。1.底層服務 包括p2p網路 保證節點彼此平等 leveldb資料庫 區塊,交易等資料儲存 密碼學演算法 保證資料私隱性和區塊安全性 以及分片優化 並行驗證交易,加大區塊生成 等基礎服務 2.核心層 區塊鏈 主體 共識演算法 保證一致性和正確性 和以太坊虛擬機...

Android架構簡析

mvp架構及開發模式 mvc or mvp pattern whats the difference?android中的mvp 譯 android開發中的mvp架構 首先,讓我們思考下為什麼在android開發中如此迫切地需要乙個清晰的架構。該段摘自 大全第二版 避免建立神類。避免建立無所不知,無所...

以太坊原始碼解讀(1)以太坊架構與模組結構

以太坊虛擬機器,以太坊中智慧型合約的執行環境 區別去位元幣的utxo,以太坊構建裡賬戶,賬戶分為兩類,內部賬戶和外部賬戶,內部賬戶指合約賬戶,外部賬戶指使用者賬戶 在以太坊網路上的任何乙個訊息的傳遞都是一次交易 以太坊網路的執行機制之一,每執行一步合約 都與要消耗一定的gas,gas的設定一方面是為...