以太坊的單位換算
『壹』 以太坊是什麼丨以太坊開發入門指南
以太坊是什麼丨以太坊開發入門指南
很多同學已經躍躍欲試投入到區塊鏈開發隊伍當中來,可是又感覺無從下手,本文將基於以太坊平台,以通俗的方式介紹以太坊開發中涉及的各晦澀的概念,輕松帶大家入門。
以太坊是什麼
以太坊(Ethereum)是一個建立在區塊鏈技術之上, 去中心化應用平台。它允許任何人在平台中建立和使用通過區塊鏈技術運行的去中心化應用。
對這句話不理解的同學,姑且可以理解為以太坊是區塊鏈里的Android,它是一個開發平台,讓我們就可以像基於Android Framework一樣基於區塊鏈技術寫應用。
在沒有以太坊之前,寫區塊鏈應用是這樣的:拷貝一份比特幣代碼,然後去改底層代碼如加密演算法,共識機制,網路協議等等(很多山寨幣就是這樣,改改就出來一個新幣)。
以太坊平台對底層區塊鏈技術進行了封裝,讓區塊鏈應用開發者可以直接基於以太坊平台進行開發,開發者只要專注於應用本身的開發,從而大大降低了難度。
目前圍繞以太坊已經形成了一個較為完善的開發生態圈:有社區的支持,有很多開發框架、工具可以選擇。
智能合約
什麼是智能合約
以太坊上的程序稱之為智能合約, 它是代碼和數據(狀態)的集合。
智能合約可以理解為在區塊鏈上可以自動執行的(由事件驅動的)、以代碼形式編寫的合同(特殊的交易)。
在比特幣腳本中,我們講到過比特幣的交易是可以編程的,但是比特幣腳本有很多的限制,能夠編寫的程序也有限,而以太坊則更加完備(在計算機科學術語中,稱它為是「圖靈完備的」),讓我們就像使用任何高級語言一樣來編寫幾乎可以做任何事情的程序(智能合約)。
智能合約非常適合對信任、安全和持久性要求較高的應用場景,比如:數字貨幣、數字資產、投票、保險、金融應用、預測市場、產權所有權管理、物聯網、點對點交易等等。
目前除數字貨幣之外,真正落地的應用還不多(就像移動平台剛開始出來一樣),相信1到3年內,各種殺手級會慢慢出現。
編程語言:Solidity
智能合約的默認的編程語言是Solidity,文件擴展名以.sol結尾。
Solidity是和JavaScript相似的語言,用它來開發合約並編譯成以太坊虛擬機位元組代碼。
還有長像Python的智能合約開發語言:Serpent,不過建議大家還是使用Solidity。
Browser-Solidity是一個瀏覽器的Solidity IDE, 大家可以點進去看看,以後我們更多文章介紹Solidity這個語言。
運行環境:EVM
EVM(Ethereum Virtual Machine)以太坊虛擬機是以太坊中智能合約的運行環境。
Solidity之於EVM,就像之於跟JVM的關系一樣,這樣大家就容易理解了。
以太坊虛擬機是一個隔離的環境,在EVM內部運行的代碼不能跟外部有聯系。
而EVM運行在以太坊節點上,當我們把合約部署到以太坊網路上之後,合約就可以在以太坊網路中運行了。
合約的編譯
以太坊虛擬機上運行的是合約的位元組碼形式,需要我們在部署之前先對合約進行編譯,可以選擇Browser-Solidity Web IDE或solc編譯器。
合約的部署
在以太坊上開發應用時,常常要使用到以太坊客戶端(錢包)。平時我們在開發中,一般不接觸到客戶端或錢包的概念,它是什麼呢?
以太坊客戶端(錢包)
以太坊客戶端,其實我們可以把它理解為一個開發者工具,它提供賬戶管理、挖礦、轉賬、智能合約的部署和執行等等功能。
EVM是由以太坊客戶端提供的。
Geth是典型的開發以太坊時使用的客戶端,基於Go語言開發。 Geth提供了一個互動式命令控制台,通過命令控制台中包含了以太坊的各種功能(API)。Geth的使用我們之後會有文章介紹,這里大家先有個概念。
Geth控制台和Chrome瀏覽器開發者工具里的面的控制台是類似,不過是跑在終端里。
相對於Geth,Mist則是圖形化操作界面的以太坊客戶端。
如何部署
智能合約的部署是指把合約位元組碼發布到區塊鏈上,並使用一個特定的地址來標示這個合約,這個地址稱為合約賬戶。
以太坊中有兩類賬戶:
· 外部賬戶
該類賬戶被私鑰控制(由人控制),沒有關聯任何代碼。
· 合約賬戶
該類賬戶被它們的合約代碼控制且有代碼與之關聯。
和比特幣使用UTXO的設計不一樣,以太坊使用更為簡單的賬戶概念。
兩類賬戶對於EVM來說是一樣的。
外部賬戶與合約賬戶的區別和關系是這樣的:一個外部賬戶可以通過創建和用自己的私鑰來對交易進行簽名,來發送消息給另一個外部賬戶或合約賬戶。
在兩個外部賬戶之間傳送消息是價值轉移的過程。但從外部賬戶到合約賬戶的消息會激活合約賬戶的代碼,允許它執行各種動作(比如轉移代幣,寫入內部存儲,挖出一個新代幣,執行一些運算,創建一個新的合約等等)。
只有當外部賬戶發出指令時,合同賬戶才會執行相應的操作。
合約部署就是將編譯好的合約位元組碼通過外部賬號發送交易的形式部署到以太坊區塊鏈上(由實際礦工出塊之後,才真正部署成功)。
運行
合約部署之後,當需要調用這個智能合約的方法時只需要向這個合約賬戶發送消息(交易)即可,通過消息觸發後智能合約的代碼就會在EVM中執行了。
Gas
和雲計算相似,佔用區塊鏈的資源(不管是簡單的轉賬交易,還是合約的部署和執行)同樣需要付出相應的費用(天下沒有免費的午餐對不對!)。
以太坊上用Gas機制來計費,Gas也可以認為是一個工作量單位,智能合約越復雜(計算步驟的數量和類型,佔用的內存等),用來完成運行就需要越多Gas。
任何特定的合約所需的運行合約的Gas數量是固定的,由合約的復雜度決定。
而Gas價格由運行合約的人在提交運行合約請求的時候規定,以確定他願意為這次交易願意付出的費用:Gas價格(用以太幣計價) * Gas數量。
Gas的目的是限制執行交易所需的工作量,同時為執行支付費用。當EVM執行交易時,Gas將按照特定規則被逐漸消耗,無論執行到什麼位置,一旦Gas被耗盡,將會觸發異常。當前調用幀所做的所有狀態修改都將被回滾, 如果執行結束還有Gas剩餘,這些Gas將被返還給發送賬戶。
如果沒有這個限制,就會有人寫出無法停止(如:死循環)的合約來阻塞網路。
因此實際上(把前面的內容串起來),我們需要一個有以太幣余額的外部賬戶,來發起一個交易(普通交易或部署、運行一個合約),運行時,礦工收取相應的工作量費用。
以太坊網路
有些著急的同學要問了,沒有以太幣,要怎麼進行智能合約的開發?可以選擇以下方式:
選擇以太坊官網測試網路Testnet
測試網路中,我們可以很容易獲得免費的以太幣,缺點是需要發很長時間初始化節點。
使用私有鏈
創建自己的以太幣私有測試網路,通常也稱為私有鏈,我們可以用它來作為一個測試環境來開發、調試和測試智能合約。
通過上面提到的Geth很容易就可以創建一個屬於自己的測試網路,以太幣想挖多少挖多少,也免去了同步正式網路的整個區塊鏈數據。
使用開發者網路(模式)
相比私有鏈,開發者網路(模式)下,會自動分配一個有大量余額的開發者賬戶給我們使用。
使用模擬環境
另一個創建測試網路的方法是使用testrpc,testrpc是在本地使用內存模擬的一個以太坊環境,對於開發調試來說,更方便快捷。而且testrpc可以在啟動時幫我們創建10個存有資金的測試賬戶。
進行合約開發時,可以在testrpc中測試通過後,再部署到Geth節點中去。
更新:testrpc 現在已經並入到Truffle 開發框架中,現在名字是Ganache CLI。
Dapp:去中心化的應用程序
以太坊社區把基於智能合約的應用稱為去中心化的應用程序(DecentralizedApp)。如果我們把區塊鏈理解為一個不可篡改的資料庫,智能合約理解為和資料庫打交道的程序,那就很容易理解Dapp了,一個Dapp不單單有智能合約,比如還需要有一個友好的用戶界面和其他的東西。
Truffle
Truffle是Dapp開發框架,他可以幫我們處理掉大量無關緊要的小事情,讓我們可以迅速開始寫代碼-編譯-部署-測試-打包DApp這個流程。
總結
我們現在來總結一下,以太坊是平台,它讓我們方便的使用區塊鏈技術開發去中心化的應用,在這個應用中,使用Solidity來編寫和區塊鏈交互的智能合約,合約編寫好後之後,我們需要用以太坊客戶端用一個有餘額的賬戶去部署及運行合約(使用Truffle框架可以更好的幫助我們做這些事情了)。為了開發方便,我們可以用Geth或testrpc來搭建一個測試網路。
註:本文中為了方便大家理解,對一些概念做了類比,有些嚴格來不是准確,不過我也認為對於初學者,也沒有必要把每一個概念掌握的很細致和准確,學習是一個逐步深入的過程,很多時候我們會發現,過一段後,我們會對同一個東西有不一樣的理解。
『貳』 浠ュお鍧婄熆鏈虹畻鍔涙庝箞鏍
浠ュお鍧婄熆鏈虹畻鍔涙庝箞綆
浠ュお鍧婃槸涓縐嶅熀浜庡尯鍧楅摼鐨勫姞瀵嗚揣甯侊紝鍏剁熆鏈虹畻鍔涙槸鎸囩敤浜庤В鍐沖尯鍧楅摼涓鐨勫瘑鐮佸﹂毦棰樼殑璁$畻鑳藉姏銆備互澶鍧婇噰鐢ㄤ簡涓縐嶅悕涓衡滃伐浣滈噺璇佹槑鈥濈殑鍏辮瘑鏈哄埗錛屽畠瑕佹眰鐭垮伐蹇呴』閫氳繃璁$畻鏌愪釜澶嶆潅鐨勬暟瀛﹂棶棰樻潵楠岃瘉浜ゆ槗騫跺壋寤烘柊鍖哄潡銆
浠ヤ笅鏄璁$畻浠ュお鍧婄熆鏈虹畻鍔涚殑涓浜涙ラわ細
紜瀹氱熆鏈哄瀷鍙鳳細涓嶅悓鍨嬪彿鐨勭熆鏈哄叿鏈変笉鍚岀殑綆楀姏錛屽洜姝ら栧厛闇瑕佺『瀹氫嬌鐢ㄧ殑鐭挎満鍨嬪彿銆
鏌ユ壘鐭挎満鐨勭畻鍔涘弬鏁幫細姣忎釜鐭挎満閮芥湁涓嶅悓鐨勭畻鍔涘弬鏁幫紝榪欎簺鍙傛暟閫氬父鍙浠ュ湪鐭挎満鍒墮犲晢鐨勭綉絝欐垨鐭挎満璁劇疆涓鎵懼埌銆
璁$畻鐭挎満鐨勬瘡縐掔畻鍔涳細鐭挎満鐨勭畻鍔涢氬父鐢ㄥ搱甯岀巼錛坔ashrate錛夋潵琛¢噺錛屽畠琛ㄧず鐭挎満姣忕掕兘澶熷勭悊澶氬皯嬈″搱甯岃繍綆椼備互澶鍧婄殑鍝堝笇綆楁硶鏄鍩轟簬浠ュお鍧婅櫄鎷熸満錛圗VM錛夌殑錛屽叾鍝堝笇鐜囬氬父浠MH/s錛堢櫨涓囧搱甯岀巼姣忕掞級涓哄崟浣嶃
鑰冭檻鐢佃垂鎴愭湰錛氬湪璁$畻鐭挎満綆楀姏鏃訛紝榪橀渶瑕佽冭檻鐭挎満鐨勭數璐規垚鏈銆傜熆鏈虹殑綆楀姏瓚婇珮錛岄氬父闇瑕佹秷鑰楁洿澶氱殑鐢靛姏錛屽洜姝ら渶瑕佽$畻姣忓皬鏃舵垨姣忓ぉ鐨勭數璐規垚鏈銆
鑰冭檻鐭挎睜璐圭敤錛氬傛灉浣跨敤鐭挎睜榪涜屾寲鐭匡紝鍒欓渶瑕佽冭檻鐭挎睜鐨勮垂鐢ㄣ傜熆奼犻氬父浼氭敹鍙栦竴瀹氭瘮渚嬬殑鎸栫熆濂栧姳浣滀負璐圭敤錛屽洜姝ら渶瑕佸皢榪欎簺璐圭敤鑰冭檻鍦ㄥ唴銆
緇煎悎鑰冭檻浠ヤ笂鍥犵礌錛屽彲浠ヨ$畻鍑轟互澶鍧婄熆鏈虹殑綆楀姏銆傞渶瑕佹敞鎰忕殑鏄錛岀熆鏈虹畻鍔涚殑璁$畻浠呬粎鏄涓涓鍙傝冿紝瀹為檯鐨勬寲鐭挎敹鐩婅繕鍙楀埌甯傚満琛屾儏絳夊洜緔犵殑褰卞搷銆
『叄』 ERC20發幣時Token數量和精度的含義
發布ERC20代幣時,需要填寫Token的數量、精度,例如數量 1000 、精度 3 ,那麼對應實際應用時的數量其實只相當於 1 個,因為精度是3,所以需要3個0。
精度 有什麼意義呢?
假如我們發行了一個黃金的代幣 GoldToken ,希望 1 GoldToken = 1kg黃金 ,但實際使用時需要用到單位 克 ,因為以太坊不支持小數,所以1個token就必須是表示1克黃金。在應用層面,大家還可以認為1個GoldToken是1kg黃金,比如 A 給 B 轉 1個 GoldToken,程序中實際轉的是 1000 個token;A 給 B 轉 0.1個 GoldToken,實際轉的是 100 個token。
所以,發幣時的 數量 指的是實際有多少個token, 精度 是用於表達應用中的單位和實際token數量的換算關系。
『肆』 1ETH等於多少人民幣
1ETH等於多少人民幣?來看數字貨幣行情回顧,4月27日以太幣價格為658.33美元,市場規模為65221000000美元。比特幣價格為1407美元,市場規模為24053054719美元。瑞波幣價格為0.84672美元,市場規模為84671477733美元。比特幣現金價格為1407美元,市場規模為24053054719美元。
4月27日數字貨幣行情回顧,僅供參考!
『伍』 以太坊精度是幾位
以太坊的私鑰是一個256位的二進制數,因此猜對它的概率是2的256次方分之一,數值上大約是10的77次方分之一,也就是說分母是1後面77個0。
1、以太坊的單位,沿襲了科學界的傳統,用做過傑出貢獻的數學、密碼學專家的名字命名。一次性向六位專家致敬,並且未來可能引入更多單位。以太坊的最小單位是Wei。
2、以太坊的私鑰是一個256位的二進制數,因此猜對它的概率是2的256次方分之一,數值上大約是10的77次方分之一,也就是說分母是1後面77個0。
3、1個以太幣=10的18次方Wei,但因為這個單位太小,好像Byte位元組與KB、MB、GB的電腦存儲單位一樣,以太坊還有其他的單位:
Kwei(Babbage)=10的3次方Wei
Mwei(Lovelace)=10的6次方Wei
Gwei(Shannon)=10的9次方Wei
MicroEther(Szabo)=10的12次方Wei
MilliEther(Finney)=10的15次方Wei
Ether=10的18次方Wei
每個單位都還有個別名,即括弧里的那個,每個別名又各有來歷。老鏈哥找機會再逐個介紹。通常,小額支付使用Finney,計算Gas價格使用GWei。
『陸』 數字貨幣挖礦,什麼是算力挖礦算力單位怎麼換算
數字貨幣挖礦 我們經常提到的一個詞就是 礦機的算力,
比如:挖BTC比特幣的螞蟻礦機T9+ 算力10.5TH/S,
挖LTC萊特幣的螞蟻礦機L3+ 算力504MH/S,
挖LCC數字鏈的好礦機Ubuntu×64 算力180KH/S.
那究竟算力是什麼意思呢? 算力代表了什麼 算力單位是怎麼定義的呢?
其實算力的意思很簡單,他就是代表礦機的計算能力、計算性能的衡量 他具體代表的是每秒礦機的整體hash演算法運算次數。
我們先要知道挖礦的本質就是解決一個數學計算,誰先算出來誰就獲得獎勵(幣),這個數學計算方式也很簡單,就是一直不斷的嘗試碰撞結果![什麼是礦機算力?挖礦算力單位怎麼換算?
就類似於你暴力破解一個手機密碼 (假設嘗試多次手機不會被鎖),
你不斷的嘗試密碼 從 000000 ~ 999999 一個一個的嘗試直到你解鎖成功,
如果你1秒內能嘗試一次 你的算力就是1次/s ,1秒內能嘗試兩次 你的算力就是2次/s
你1秒內嘗試的次數越多你的算力就越大, 你解鎖的時間也就越短 。
礦機也是一樣, 礦機1秒內能計算的hash演算法次數越多算力越大,挖的幣越多。
最開始比特幣使用 CPU挖礦, 後來使用顯卡GPU挖礦,到現在的使用ASIC專業定製晶元挖礦,計算速度一直不斷提升
算力單位:
算力每隔千位劃為一個單位,
最小單位 H=1次 1000H = 1K 1000K = 1G 1000G = 1T 1000T = 1P 1000P=1E
S9+ 10.5T 也等於 10500G / 0.0105P
比特幣全網算力現在 24.42 EH/s 相當於232萬台S9的算力
不同幣種的算力
不同的幣種的挖礦演算法可能會不一樣
比如比特幣是sha256演算法,萊特幣是scrypt演算法, 以太坊是Ethash演算法,數字鏈是SHA-2演算法。
這就像 手機1的密碼4位隨便輸入, 手機2的密碼6位, 輸一次後 隔1s才能再次輸入, 實際比這個要復雜的多,
解鎖這兩種不同的手機的方式是不一樣的, 那我嘗試解鎖的速度也不一樣, 解鎖手機1 我會更快一點。
不用的幣種之間的算力 是沒有任何關系的, 比特幣礦機是不能挖萊特, 因為演算法不一樣, 他不會解萊特幣的題。
『柒』 以太幣ETH是什麼
以太幣(ETH)是以太坊(Ethereum)的一種數字代幣,被視為「比特幣2.0版」,採用與比特幣不同的區塊鏈技術「以太坊」(Ethereum),一個開源的有智能合約成果的民眾區塊鏈平台,由全球成千上萬的計算機構成的共鳴網路。開發者們需要支付以太幣(ETH)來支撐應用的運行。和其他數字貨幣一樣,以太幣可以在交易平台上進行買賣 。
溫馨提示:以上解釋僅供參考,不作任何建議。入市有風險,投資需謹慎。您在做任何投資之前,應確保自己完全明白該產品的投資性質和所涉及的風險,詳細了解和謹慎評估產品後,再自身判斷是否參與交易。
應答時間:2020-12-02,最新業務變化請以平安銀行官網公布為准。
[平安銀行我知道]想要知道更多?快來看「平安銀行我知道」吧~
https://b.pingan.com.cn/paim/iknow/index.html
『捌』 以太幣的發行
以太幣
天天在說的以太幣,到底是怎麼產生和發行的,這里做個簡單介紹。
首先以太坊幣是以太坊發行的一種數字貨幣,這個我想大多數人都清楚。
以太幣來源
那麼以太幣的來源包括以下幾部分:
礦前獎勵:預付款給與貢獻者6000萬個以太幣
區塊的獎勵:目前挖出一個區塊獎勵5個以太幣給礦工。
叔塊獎勵:這個和比特幣不同,礦工在挖出一個區塊後,但是並不是在主鏈上,那麼這個區塊叫做叔區。如果這個叔區塊在後續挖礦中作為叔區塊被引用了,那麼挖出這個區塊的礦工獲得7/8的區塊獎勵,也就是4.375個以太幣,且另外引用這個區塊的礦工獲得0.15個以太幣,注意,這里的引用最多兩個。
比特幣的總量是2100萬個,那麼以太幣也不是無限生成的,每年以太幣發行1800萬。之前筆者文章中有提到過,這個數字貨幣因為密鑰的丟失,所以每年的發行和意外的丟失會達到一個動態的平衡。並不是你看官方數據有多少就真正有多少在流通,這個應該能理解。
以太坊在不久將來會採用casper的機制,這個和目前的GHOST機制不一樣。具體的機制還待看。
礦工角度來看
從礦工的角度來看待以太幣,那麼就分為三塊:
挖礦的獎勵,這個還是5個以太幣。(固定收益)
交易的手續費,之前就有人一直在問萬一哪天比特幣2100萬挖完之後,挖礦如何獲得收益,那麼交易費就是其中的一項收益,以太坊上交易都會帶上交易費用,那麼這個也就是礦工的一部分所得。(動態收益)
叔區塊收益,上文就提到過的,這個區塊如果有叔區塊,那麼從叔區塊中獲得1/32個以太幣也就是0.15個以太幣的收益。且每個區塊至多引用兩個叔區塊,被引用過的區塊不能再被引用。(動態收益)
以太幣的單位:
基本單位為wei,下表具體是各個比例:
單位維度個數 (wei)
wei1 wei1000
Kwei1e3 wei1000000
Mwei1e6 wei1000000000
Gwei1e9 wei1000000000000
microether1e12 wei10000000000000000
milliether1e15 wei10000000000000000000
ether1e18 wei10000000000000000000000
叔區塊獎勵
回過頭感覺有必要再說下叔區塊的獎勵:
叔區塊顧名思義是區塊的父區塊的兄弟區塊。那麼區塊鏈只有一條主鏈,故叔區塊不在主鏈上,導致叔區塊的原因,由於是網路的延遲沒有同步,那麼一個叔區塊如果引用在有效的主鏈上,挖出叔區塊的礦工獲得4.375個以太幣(區塊獎勵的7/8)。上文說到叔區塊的引用獲得獎勵,那麼這個獎勵對挖到叔區塊的礦工也是有一個間隔層數的關系。具體如下:
間隔的層數獲取的比例以太幣
17/84.375
26/83.75
35/83.125
44/82.5
53/81.875
62/81.25
參考:《以太坊技術詳解與實戰》
『玖』 Gas 機制是如何運作的
以太坊是目前第二大公鏈,它和比特幣不一樣,以太坊上的可以實現的功能更多,如果比特幣是一個可以進行加減乘除的計算器,那麼以太坊就是一台功能完備的計算機。以太坊系統的復雜度超過比特幣好幾個數量級。
在以太坊中,用戶可以自己寫一個智能合約,然後把智能合約放到以太坊中執行。智能合約的執行需要消耗資源,而以太坊上的資源是有限的。
在計算機系統中,停機問題(https://zh.wikipedia.org/wiki/停機問題)目前還沒有辦法完全證明。這個問題簡單來說就是沒辦法判斷一個程序是否能夠在有限的時間內結束運行。
如果一個用戶提交了一個死循環程序到以太坊中,那麼就會無限的執行下去,從而將以太坊網路擊垮。而使用 gas 機制則可以解決這個問題,智能合約中,每段代碼的執行都會消耗一定量的 gas,在用戶提交交易的時候需要指定好。如果 gas 消耗完了,那麼智能合約就必須停止,交易也會被撤銷,如果智能合約執行完成, gas 還有剩餘,就會退還給用戶。
需要特別說明的是,即使交易失敗,用戶也需要支付 gas 費用,因為以太坊為這些錯誤的交易也付出了計算資源。
除了這點之外,gas 還可以用來激勵礦工,用戶提交交易所消耗的 gas 費用最後都會給到礦工,礦工會優先去打包那些提供了更高 gas 價格的交易,在以太坊中,如果希望自己的交易早點被打包,可以設置更高的 gas 價格。
g as 機制是以太坊系統的命脈。
gas 本質就是維護以太坊網路安全,這是從兩個方面來做到的,一方面通過 gas 來衡量計算量,一方面使用 gas 來吸引更多的礦工,礦工的數量越多,以太坊網路就越安全。
gas 只能用於交易中,用戶不會接觸到 gas,gas 會在交易的提交的時候直接通過以太幣來兌換。
智能合約中,每個操作都會消耗一定的 gas 。每個操作都對應一個 Opcode,下面是一些常見的 gas 消耗,完整的 gas 消耗說明看這里:https://github.com/crytic/evm-opcodes
以太坊中的交易最後會被確認,打包成區塊,這樣交易才算是完成,但是在一個區塊中,可以打包的交易是有限的,以太坊通過 gas 來限制可以打包的交易數。這樣就讓被打包的機會成為了一個稀缺的資源。
用戶提交一個交易後,gas 量可以看做是一個固定的值,礦工為了做到最大收益,就會選擇那些 gas 價格更高的交易。
很多以太坊的用戶經常吐槽 gas 費過高,其實這里的過高不是指 gas 本身過高,而是指 gas 對應的以太坊價格過高。
因為 Gas 的價格不是固定的,而是波動的,簡單來說就是根據供需關系來決定的,如果同時需要用以太坊的用戶多,那麼Gas 的價格就貴,如果用戶的人少,那麼 Gas 的費用就會少。
以太幣的最基本單位是 wei,1 ETH = 10 ^18 wei,而衡量 gas 價格的單位則是 gwei,1 ETH = 10 ^ 9 gwei。
在提交交易的時候,需要設定兩個參數,一個是 gas 的最大消耗量(gas limited)和 gas 的價格,gas 的消耗量通常情況下會比較固定,不會有太大的變化,主要是 gas 的價格會波動很大。
在上面我們說到礦工會挑選那些 gas 費用比較高的交易進行打包。所以 gas 的價格設置得越高,那麼總的 gas 費用就會越高。如果想讓當前的交易盡快被確認,那麼就需要設置一個當前相對來說比較高的 gas 價格。
其實對當前 gas 價格最清楚的就是那些礦工,所以礦工們也提供了一些服務,讓用戶可以實時地了解到當前 gas 價格的分布。比如 GasNow 就是一個比較常用的服務,現在很多錢包中都在使用這個來為錢包的用戶提供 gas 價格建議。
如果你提交的交易不緊急,那麼使用當前的平均 gas 價格就可以,如果需要提交緊急的交易,那麼就需要設置更高的 gas 價格。
文 / Rayjun