以太坊虛擬機器,以太坊中智慧型合約的執行環境
區別去位元幣的utxo,以太坊構建裡賬戶,賬戶分為兩類,內部賬戶和外部賬戶,內部賬戶指合約賬戶,外部賬戶指使用者賬戶
在以太坊網路上的任何乙個訊息的傳遞都是一次交易
以太坊網路的執行機制之一,每執行一步合約**都與要消耗一定的gas,gas的設定一方面是為了提高使用者的作惡成本,另一方面也是為了提高礦工的積極性
挖礦,以太坊網路通過工作量證明機制保證節點之間的同步與網路的安全執行
儲存與主存,storage被稱為儲存,kv形式儲存,memory被稱為主存每次合約被呼叫都會有一塊新的被清除過的主存
p2p對等網路,作為以太坊網路的構成機制之一,保證網路內的所有節點對等
從低到高為 協議層:p2p網路通訊,分布式演算法,加密簽名和資料儲存技術
介面層:介面成與協議層完全的進行分離,包括分布式儲存等
從低到高為 資料層:以key-value的形式儲存資料,使用leveldb資料庫,以及block
網路層:p2p網路
共識層:pow+pos共識
激勵層:mine機制
合約層:實現以**約束行為的方式
block
所有賬戶的相關活動,以交易(transaction)的格式儲存,每個block有乙個交易物件的列表;每個交易的執行結果,由乙個receipt物件與其包含的一組log物件記錄;所有交易執行完後生成的receipt列表,儲存在block中(經過壓縮加密)。不同block之間,通過前向指標parenthash乙個乙個串聯起來成為乙個單向鍊錶,blockchain 結構體管理著這個鍊錶。block包括header和body兩個部分
header
header是block的組成部分主要包括關於block的屬性
熟悉解釋
parenthash
除創世區塊外所有的區塊都有的前乙個區塊的hash
coinbase
礦工的位址
unclehash
叔塊的hash
root
statedb中的根節點的rlp的hash值
txhash
block中tx trie的根節點的rlp的hah值
receipthash
block中的 "receipt trie」的根節點的rlp雜湊值
bloom
bloom過濾器(filter),用來快速判斷乙個引數log物件是否存在於一組已知的log集合中
difficulty
區塊的難度
number
區塊的序號
time
區塊「應該」被建立的時間
gaslimit
區塊內所有gas消耗的理論上限
gasused
區塊內所有transaction執行時所實際消耗的gas總和
nonce
乙個64bit的雜湊數,它被應用在區塊的"挖掘"階段,並且在使用中會被修改
body
熟悉解釋
tracsactions
區塊內部的交易集合
uncles
叔塊集合
blockchain
blockchain結構體被用來管理整個區塊單向鍊錶,在乙個ethereum客戶端軟體(比如錢包)中,只會有乙個blockchain物件存在。同block/header的關係類似,blockchain還有乙個成員變數型別是headerchain, 用來管理所有header組成的單向鍊錶。
headerchain
mptethereum 使用的merkle-patriciatrie(mpt)結構,源自於trie結構,又分別繼承了patriciatrie和merkletree的優點,並基於內部資料的特性,設計了全新的節點體系和插入/載入機制。
包名說明
accounts
以太坊實現的賬戶功能
build
一些配置資訊
cmdm命令列結構
common
提供了公共資料結構,工具類
console
console控制台
contracts
包含containers/docker
core
核心**
crypto
加密和hash演算法
dashboard
eth實現了以太坊的協議
ethclient
提供了以太坊的rpc客戶端
ethdb
eth的資料庫(包括實際使用的leveldb和供測試使用的記憶體資料庫)
ethstats
提供網路狀態的報告
event
實時的事件
internal
les以太坊的輕量級協議子集
light
實現以太坊輕量級客戶端的按需檢索功能
log日誌資訊
metrics
磁碟計數
miner
挖礦與區塊的生成
mobile
移動端使用的warpper
node
節點多種型別
p2p網路協議
params
rlp以太坊hash序列化處理
rpc遠端呼叫
signer
swarm
網路處理
tests
測試trie
以太坊重要的資料結構package trie implements merkle patricia tries.
vendor
第三方whisper
whisper節點協議
原始碼安裝以太坊 wtc
1 安裝go 先更新一下 sudo apt get update sudo apt get y upgradesudo tar xvf go1.9 2.linux amd64.tar gzsudo mv go usr local設定路徑vi etc profile export path path ...
以太坊原始碼 交易(一)
交易是區塊鏈中最基本也是最核心的乙個概念,在以太坊中,交易更是重中之重,因為以太坊是乙個智慧型合約平台,以太坊上的應用都是通過智慧型合約與區塊鏈進行互動,而智慧型合約的執行是由交易觸發的,沒有交易,智慧型合約就是一段死的 可以說在以太坊中,一切都源於交易。下面就來看看在以太坊中交易是什麼樣的,交易裡...
以太坊原始碼分析 Whisper
whisper具有以下基本特性和概念 通訊加密 每一條whisper訊息在網路上都是加密傳輸的,可以選擇非對稱加密 橢圓曲線 和對稱加密 aes gsm 兩種加密演算法之一。envelope 信封 envelope是網路中傳輸的whisper訊息的基本單位,它包含已加密的原始訊息以及訊息相關的控制資...