3.3 以太坊核心詞彙詳解
- 以太坊虛擬機器:以太坊中智慧合約的執行環境。
- 賬戶
- 外部賬戶
- 被公鑰-私鑰對控制
- 合約賬戶
- 合約賬戶被儲存在賬戶中的程式碼控制
- 外部賬戶與合約賬戶區別
- 內部結構
- 外部賬戶
- 訊息:類似於比特幣上的交易
- 與比特幣交易的不同點
- 以太坊的訊息可以由外部實體或者合約建立,比特幣的交易只能外部建立
- 以太坊的訊息可以包含資料
- 如果以太坊訊息的接收者是合約賬戶,可以選擇進行迴應,這意味著以太坊訊息包含著函式概念
- 交易
- 以太坊的”交易“指儲存從外部賬戶發出的訊息的簽名資料包。
- 交易包含訊息的接收者,用於確認傳送者的簽名、以太坊賬戶餘額、要傳送的資料和被稱為STARTGAS和GASPRICE的兩個數值。
- 交易吞吐量(TPS):
- 交易吞吐量指的是以太坊每秒能夠處理的交易數量
- 計算方式:TPS=(gasLimit/gas)/出塊速度,目前以太坊上gasLimit大小為6771518。在以太坊上消耗gas最少的是傳送支付交易,支付交易消耗21000wei,而如果以以太坊出塊的平均速度為15s(可能已經不止15s)算,可以算出TPS=6771518/21000/15=21(當前的TPS已經小於這個值)
- Gas
- Gas就是我們說的燃料、以太坊每一筆交易都會被收取一定數量的燃料gas,設定Gas的目的是限制交易執行所需的工作量,同時為交易的執行支付費用。
- 無論執行到什麼位置,一旦Gas被耗盡就會觸發一個out-of-gas的異常。同時,當前呼叫所做的所有狀態修改都將被回滾
- GasPrice其實就是一個Gas單位的價格,以gwei為單位表示
- gasPrice是由發起交易的人規定的
- gasLimit代表了這個交易在執行過程中最多被允許消耗的gas數量
- 計算方法:付款金額=Gas數量*GasPrice
- 注意 在交易完成後 如果實際支付的gas小於gasLimit,剩餘的gas會以ether的方式返回給交易發起者 實際交易費=gasUsed*gasPrice;
- 如果在執行交易的過程中,實際消耗的gas大於gasLimit,會返回餘額不足的錯誤,同時,已消耗的gas不會退還
- 儲存、主存和棧
- 儲存:每個賬戶都有一塊永久的記憶體區域,被稱為儲存。形式為key-value,key和value的長度均為256位
- 主存:合約執行每次訊息呼叫時都有一塊新的被清除過的主存。
- 棧:EVM是基於棧的虛擬機器。棧最大有1024個元素,每個元素有256位。
- 指令集
- EVM的指令集被刻意儲存在最小規模,以儘可能的避免可能導致的共識問題的錯誤。所有指令集都是針對256位這個基本的資料單位進行操作,具備常用的算術、位、邏輯和比較操作,也可以進行條件跳轉和無條件跳轉
- 訊息呼叫
- 合約可以通過訊息呼叫的方式來呼叫其它合約,或者傳送以太幣到非合約賬戶。
- 程式碼呼叫和庫
- 以太坊中存在一種特殊型別的訊息呼叫,被稱為callcode。它和訊息呼叫幾乎完全一樣,只是載入來自目標地址的程式碼,將會在發起呼叫合約上下文中執行。這意味著一個合約可以在執行時從另外一個地址動態載入程式碼
- 庫-Library:為了實現合約程式碼的複用
- 以太坊的狀態轉換
- 狀態轉換是指在一個交易發生時,以太坊從一個正確的狀態轉換到下一個正確的狀態的過程
- 以太坊客戶端
- 主要包含geth,mist,wallet
-
學院Go語言視訊主頁
https://edu.csdn.net/lecturer/1928 -
掃碼獲取海量視訊及原始碼 QQ群:721929980
相關文章
- 英語六級核心詞彙
- 3.4 以太坊架構詳解架構
- 5.1 以太坊原始碼詳解1原始碼
- 5.2 以太坊原始碼詳解2原始碼
- 5.3 以太坊原始碼詳解3原始碼
- 5.4 以太坊原始碼詳解4原始碼
- 5.5 以太坊原始碼詳解5原始碼
- 5.6 以太坊原始碼詳解6原始碼
- 5.7 以太坊原始碼詳解7原始碼
- 以太坊官方 Token 程式碼詳解
- Kafka核心元件詳解Kafka元件
- 【詳解】核心元件之UserDetailService元件AI
- kafka核心架構詳解Kafka架構
- oracle rac 核心引數詳解Oracle
- Linux核心優化詳解Linux優化
- 以太坊客戶端Geth命令用法-引數詳解客戶端
- MyBatis 核心配置檔案詳細內容詳解MyBatis
- 詳解 MySQL 面試核心知識點MySql面試
- ZooKeeper 系列(一)—— ZooKeeper核心概念詳解
- Spark的兩種核心Shuffle詳解Spark
- linux 核心 RCU機制詳解Linux
- HP-UX核心引數詳解UX
- Java核心內容面試題詳解Java面試題
- 3.3
- 大學英語 林業國際公約導讀 核心詞彙
- Geth命令用法-引數詳解 and 以太坊原始碼檔案目錄原始碼
- 區塊鏈2.0以太坊編輯器atom配置詳解區塊鏈
- 3.3 編碼/解碼演算法演算法
- 詳解Tomcat核心配置、http協議TomcatHTTP協議
- 以 Golang 為例詳解 AST 抽象語法樹GolangAST抽象語法樹
- 第六課 以太坊客戶端Geth命令用法-引數詳解客戶端
- 區塊鏈2.0以太坊配置solidity編譯器sublime詳解區塊鏈Solid編譯
- 陶哲軒實分析 3.3 節習題試解
- linux核心IDR機制詳解【轉】Linux
- “水滴”來襲:詳解Binder核心通殺漏洞
- 詳解裝置指紋核心演算法演算法
- HTTP流量神器Goreplay核心原始碼詳解HTTPGo原始碼
- Java四大核心技術思想詳解Java