3.3 以太坊核心詞彙詳解

尹成發表於2018-11-08
  1. 以太坊虛擬機器:以太坊中智慧合約的執行環境。
  2. 賬戶
    1. 外部賬戶 
      1. 被公鑰-私鑰對控制
    2. 合約賬戶 
      1. 合約賬戶被儲存在賬戶中的程式碼控制
    3. 外部賬戶與合約賬戶區別
    4. 內部結構
  3. 訊息:類似於比特幣上的交易
    1. 與比特幣交易的不同點
    2. 以太坊的訊息可以由外部實體或者合約建立,比特幣的交易只能外部建立
    3. 以太坊的訊息可以包含資料
    4. 如果以太坊訊息的接收者是合約賬戶,可以選擇進行迴應,這意味著以太坊訊息包含著函式概念
  4. 交易 
    1. 以太坊的”交易“指儲存從外部賬戶發出的訊息的簽名資料包。
    2. 交易包含訊息的接收者,用於確認傳送者的簽名、以太坊賬戶餘額、要傳送的資料和被稱為STARTGAS和GASPRICE的兩個數值。
  5. 交易吞吐量(TPS): 
    1. 交易吞吐量指的是以太坊每秒能夠處理的交易數量
    2. 計算方式:TPS=(gasLimit/gas)/出塊速度,目前以太坊上gasLimit大小為6771518。在以太坊上消耗gas最少的是傳送支付交易,支付交易消耗21000wei,而如果以以太坊出塊的平均速度為15s(可能已經不止15s)算,可以算出TPS=6771518/21000/15=21(當前的TPS已經小於這個值)
  6. Gas 
    1. Gas就是我們說的燃料、以太坊每一筆交易都會被收取一定數量的燃料gas,設定Gas的目的是限制交易執行所需的工作量,同時為交易的執行支付費用。
    2. 無論執行到什麼位置,一旦Gas被耗盡就會觸發一個out-of-gas的異常。同時,當前呼叫所做的所有狀態修改都將被回滾
    3. GasPrice其實就是一個Gas單位的價格,以gwei為單位表示
    4. gasPrice是由發起交易的人規定的
    5. gasLimit代表了這個交易在執行過程中最多被允許消耗的gas數量
    6. 計算方法:付款金額=Gas數量*GasPrice
    7. 注意 在交易完成後 如果實際支付的gas小於gasLimit,剩餘的gas會以ether的方式返回給交易發起者 實際交易費=gasUsed*gasPrice;
    8. 如果在執行交易的過程中,實際消耗的gas大於gasLimit,會返回餘額不足的錯誤,同時,已消耗的gas不會退還
  7. 儲存、主存和棧 
    1. 儲存:每個賬戶都有一塊永久的記憶體區域,被稱為儲存。形式為key-value,key和value的長度均為256位
    2. 主存:合約執行每次訊息呼叫時都有一塊新的被清除過的主存。
    3. 棧:EVM是基於棧的虛擬機器。棧最大有1024個元素,每個元素有256位。
  8. 指令集 
    1. EVM的指令集被刻意儲存在最小規模,以儘可能的避免可能導致的共識問題的錯誤。所有指令集都是針對256位這個基本的資料單位進行操作,具備常用的算術、位、邏輯和比較操作,也可以進行條件跳轉和無條件跳轉
  9. 訊息呼叫 
    1. 合約可以通過訊息呼叫的方式來呼叫其它合約,或者傳送以太幣到非合約賬戶。
  10. 程式碼呼叫和庫 
    1. 以太坊中存在一種特殊型別的訊息呼叫,被稱為callcode。它和訊息呼叫幾乎完全一樣,只是載入來自目標地址的程式碼,將會在發起呼叫合約上下文中執行。這意味著一個合約可以在執行時從另外一個地址動態載入程式碼
    2. 庫-Library:為了實現合約程式碼的複用
  11. 以太坊的狀態轉換 
    1. 狀態轉換是指在一個交易發生時,以太坊從一個正確的狀態轉換到下一個正確的狀態的過程
  12. 以太坊客戶端 
    1. 主要包含geth,mist,wallet

 

相關文章