欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

當(dāng)前位置:主頁 > 區(qū)塊鏈 > 區(qū)塊鏈技術(shù) > 以太坊中的賬戶、交易、Gas 和區(qū)塊 Gas

科普:以太坊中的賬戶、交易、Gas 和區(qū)塊 Gas Limit

2021-12-08 17:42:12 | 來源: | 作者:佚名
這篇文章主要介紹了科普:以太坊中的賬戶、交易、Gas 和區(qū)塊 Gas Limit的相關(guān)資料,希望這篇關(guān)于以太坊中的賬戶、交易、Gas 和區(qū)塊 Gas Limit的文章,能夠幫助各位朋友對(duì)以太坊有個(gè)更加深入的了解。

ETH(Ethereum)以太坊錢包基本概念介紹:http://www.dbjr.com.cn/blockchain/801260.html

這篇文章是用來幫助人們理解以太坊網(wǎng)絡(luò)上的一些基本概念和體系,包括賬戶體系、gas、礦工在區(qū)塊大小設(shè)置機(jī)制里的角色等。

科普:以太坊中的賬戶、交易、Gas 和區(qū)塊 Gas Limit

什么是賬戶?

外部擁有賬戶 vs 合約賬戶

以太坊中有兩種賬戶

  • 外部擁有賬戶(EOA)
  • 合約賬戶

這個(gè)區(qū)別在即將到來的大都會(huì)升級(jí)中將會(huì)被抽象化。

外部擁有賬戶

一個(gè)外部擁有賬戶具有一下特性:

  • 有一個(gè)以太幣余額
  • 可以發(fā)送交易(以太幣轉(zhuǎn)賬或者激活合約代碼)
  • 通過私鑰控制
  • 沒有相關(guān)聯(lián)的代碼

合約賬戶

一個(gè)合約賬戶擁有一下特性:

  • 有一個(gè)以太幣余額
  • 有相關(guān)聯(lián)的代碼
  • 代碼執(zhí)行是通過交易或者其他合約發(fā)送的call來激活
  • 當(dāng)被執(zhí)行時(shí) -- 運(yùn)行在隨機(jī)復(fù)雜度 (圖靈完備性)-- 只能操作其擁有的特定儲(chǔ)存,例如可以擁有其永久state -- 可以call其他合約

所有以太坊區(qū)塊鏈上的行動(dòng)都是由各賬戶發(fā)送的交易激活。每次一個(gè)合約賬戶收到一個(gè)交易,交易自帶的參數(shù)都會(huì)成為代碼的輸入值運(yùn)行。合約代碼會(huì)被以太坊虛擬機(jī)(EVM)在每一個(gè)參與網(wǎng)絡(luò)的節(jié)點(diǎn)上運(yùn)行,以作為它們新區(qū)塊的驗(yàn)證。

什么是交易和消息?

交易

"交易"這個(gè)術(shù)語在以太坊里被用來指代一個(gè)用來存儲(chǔ)消息的被簽名數(shù)據(jù)包在區(qū)塊鏈上從一個(gè)外部擁有賬戶發(fā)送至另一個(gè)賬戶的過程。

交易包括:

這個(gè)消息的接收者

一個(gè)簽名,用來證明發(fā)送者有意向通過區(qū)塊鏈向接收者發(fā)送消息

價(jià)值域 - 從發(fā)送方轉(zhuǎn)移到接受方的wei (ether/10^18) 的數(shù)量

一個(gè)可選的數(shù)據(jù)域,用來儲(chǔ)存發(fā)送給合約的消息

一個(gè)GASLIMIT值,代表了這個(gè)交易的執(zhí)行最多被允許使用的計(jì)算步驟

一個(gè)GASPRICE值,代表了交易發(fā)送者愿意支付的gas費(fèi)用。一個(gè)單位的gas表示了執(zhí)行一個(gè)基本指令,例如一個(gè)計(jì)算步驟

消息

合約具有發(fā)送"消息"到其他合約的能力。消息是一個(gè)永不串行且只在以太坊執(zhí)行環(huán)境中存在的虛擬對(duì)象。他們可以被理解為函數(shù)調(diào)用(function calls)。

一個(gè)消息包括:

  • 明確的消息發(fā)送者
  • 消息的接收者
  • 一個(gè)可選的數(shù)據(jù)域,這是合約實(shí)際上的輸入數(shù)據(jù)
  • 一個(gè)GASLIMIT值,用來限制這個(gè)消息出發(fā)的代碼執(zhí)行可用的最大gas數(shù)量

總的來說,一個(gè)消息就像是一個(gè)交易,除了它不是由外部賬戶生成,而是合約賬戶生成。當(dāng)合約正在執(zhí)行的代碼中運(yùn)行了CALL 或者DELEGATECALL這兩個(gè)命令時(shí),就會(huì)生成一個(gè)消息。消息有的時(shí)候也被稱為"內(nèi)部交易"。與一個(gè)交易類似,一個(gè)消息會(huì)引導(dǎo)接收的賬戶運(yùn)行它的代碼。因此,合約賬戶可以與其他合約賬戶發(fā)生關(guān)系,這點(diǎn)和外部賬戶一樣。有許多人會(huì)誤用交易這個(gè)詞指代消息,所以可能消息這個(gè)詞已經(jīng)由于社區(qū)的共識(shí)而慢慢退出大家的視野,不再被使用。

什么是 gas?

以太坊在區(qū)塊鏈上實(shí)現(xiàn)了一個(gè)運(yùn)行環(huán)境,被稱為以太坊虛擬機(jī)(EVM)。每個(gè)參與到網(wǎng)絡(luò)的節(jié)點(diǎn)都會(huì)運(yùn)行都會(huì)運(yùn)行EVM作為區(qū)塊驗(yàn)證協(xié)議的一部分。他們會(huì)驗(yàn)證區(qū)塊中涵蓋的每個(gè)交易并在EVM中運(yùn)行交易所觸發(fā)的代碼。每個(gè)網(wǎng)絡(luò)中的全節(jié)點(diǎn)都會(huì)進(jìn)行相同的計(jì)算并儲(chǔ)存相同的值。合約執(zhí)行會(huì)在所有節(jié)點(diǎn)中被多次重復(fù),這個(gè)事實(shí)得使得合約執(zhí)行的消耗變得昂貴,所以這也促使大家將能在鏈下進(jìn)行的運(yùn)算都不放到區(qū)塊鏈上進(jìn)行。對(duì)于每個(gè)被執(zhí)行的命令都會(huì)有一個(gè)特定的消耗,用單位gas計(jì)數(shù)。每個(gè)合約可以利用的命令都會(huì)有一個(gè)相應(yīng)的gas值。這里列了一些命令的gas消耗。

gas和交易消耗的gas

每筆交易都被要求包括一個(gè)gas limit(有的時(shí)候被稱為startGas)和一個(gè)交易愿為單位gas支付的費(fèi)用。礦工可以有選擇的打包這些交易并收取這些費(fèi)用。在現(xiàn)實(shí)中,今天所有的交易最終都是由礦工選擇的,但是用戶所選擇支付的交易費(fèi)用多少會(huì)影響到該交易被打包所需等待的時(shí)長。如果該交易由于計(jì)算,包括原始消息和一些觸發(fā)的其他消息,需要使用的gas數(shù)量小于或等于所設(shè)置的gas limit,那么這個(gè)交易會(huì)被處理。如果gas總消耗超過gas limit,那么所有的操作都會(huì)被復(fù)原,但交易是成立的并且交易費(fèi)任會(huì)被礦工收取。區(qū)塊鏈會(huì)顯示這筆交易完成嘗試,但因?yàn)闆]有提供足夠的gas導(dǎo)致所有的合約命令都被復(fù)原。所以交易里沒有被使用的超量gas都會(huì)以以太幣的形式打回給交易發(fā)起者。因?yàn)間as消耗一般只是一個(gè)大致估算,所以許多用戶會(huì)超額支付gas來保證他們的交易會(huì)被接受。這沒什么問題,因?yàn)槎嘤嗟膅as會(huì)被退回給你。

估算交易消耗

一個(gè)交易的交易費(fèi)由兩個(gè)因素組成:

gasUsed:該交易消耗的總gas數(shù)量

gasPrice:該交易中單位gas的價(jià)格(用以太幣計(jì)算)

交易費(fèi) = gasUsed * gasPrice

gasUsed

每個(gè)EVM中的命令都被設(shè)置了相應(yīng)的gas消耗值。gasUsed是所有被執(zhí)行的命令的gas消耗值總和。

如果希望估算gasUsed,可以使用這個(gè)estimateGas的API

gasPrice

一個(gè)用戶可以構(gòu)建和簽名一筆交易,但每個(gè)用戶都可以各自設(shè)置自己希望使用的gasPrice,甚至可以是0。然而,以太坊客戶端的Frontier版本有一個(gè)默認(rèn)的gasPrice,即0.05e12 wei。礦工為了最大化他們的收益,如果大量的交易都是使用默認(rèn)gasPrice即0.05e12 wei,那么基本上就很難又礦工去接受一個(gè)低gasPrice交易,更別說0 gasPrice交易了。

交易費(fèi)案例

在被允許后,我將使用這個(gè)MyEtherWallet團(tuán)隊(duì)的例子并借用他們的分析。請(qǐng)參考他們與gas相關(guān)的介紹。他們還有一個(gè)小頁面方便大家把以太幣轉(zhuǎn)換成小單位的gas計(jì)數(shù)單位。

你可以將gasLimit理解為你汽車油箱的上限。同時(shí)將gasPrice理解為油價(jià)。

對(duì)于一輛車來說,油價(jià)可能是 $2.5(價(jià)格)每升(單位)。在以太坊中,就是20 GWei(價(jià)格)每gas(單位)。為了填滿你的"油箱",需要 10升$2.5的油 = $25。同樣的,21000個(gè)20 GWei的gas = 0.00042 ETH。

因此,總交易費(fèi)將會(huì)是0.00042以太幣。

發(fā)送代幣通常需要消耗大約5萬至10萬的gas,所以總交易費(fèi)會(huì)上升0.001至0.002個(gè)ETH。

什么是"區(qū)塊gas limit"?

區(qū)塊gas limit是單個(gè)區(qū)塊允許的最多gas總量,以此可以用來決定單個(gè)區(qū)塊中能打包多少筆交易。例如,我們有5筆交易的gas limit分別是10、20、30、40和50.如果區(qū)塊gas limit是100,那么前4筆交易就能被成功打包進(jìn)入這個(gè)區(qū)塊。礦工有權(quán)決定將哪些交易打包入?yún)^(qū)塊。所以,另一個(gè)礦工可以選擇打包最后兩筆交易進(jìn)入這個(gè)區(qū)塊(50+40),然后再將第一筆交易打包(10)。如果你嘗試將一個(gè)會(huì)使用超過當(dāng)前區(qū)塊gas limit的交易打包,這個(gè)交易會(huì)被網(wǎng)絡(luò)拒絕,你的以太坊客戶端會(huì)反饋錯(cuò)誤"交易超過區(qū)塊gas limit"。以下例子是來自于以太坊StackExhcange的帖子。

目前區(qū)塊的gas limit是 4,712,357 gas,數(shù)據(jù)來自于ethstats.net,這表示著大約224筆轉(zhuǎn)賬交易(gas limit為21000)可以被塞進(jìn)一個(gè)區(qū)塊(區(qū)塊時(shí)間大約在15-20秒間波動(dòng))。這個(gè)協(xié)議允許每個(gè)區(qū)塊的礦工調(diào)整區(qū)塊gas limit,任意加減 1/2024(0.0976%)。

誰來決定

區(qū)塊的gas limit是由在網(wǎng)絡(luò)上的礦工決定的。與可調(diào)整的區(qū)塊gas limit協(xié)議不同的是一個(gè)默認(rèn)的挖礦策略,即大多數(shù)客戶端默認(rèn)最小區(qū)塊gas limit為4,712,388。

區(qū)塊gas limit是怎樣改變的

以太坊上的礦工需要用一個(gè)挖礦軟件,例如ethminer。它會(huì)連接到一個(gè)geth或者Parity以太坊客戶端。Geth和Pairty都有讓礦工可以更改配置的選項(xiàng)。這里是geth挖礦命令行選項(xiàng)以及Parity的選項(xiàng)。

以太坊網(wǎng)絡(luò)上的"DoS"攻擊是什么?

最近有些評(píng)論表示以太坊網(wǎng)絡(luò)正在慢慢減速,變得擁堵甚至無法使用。這些評(píng)論把這個(gè)減速的過程稱為對(duì)以太坊網(wǎng)絡(luò)的"DoS"攻擊。當(dāng)以太坊網(wǎng)絡(luò)上持續(xù)地出現(xiàn)全滿區(qū)塊并且有大量交易在網(wǎng)絡(luò)上待處理時(shí)就會(huì)出現(xiàn)所謂的DoS情況。同時(shí),礦工有權(quán)利根據(jù)交易費(fèi)選擇打包哪些交易。如果當(dāng)時(shí)隊(duì)列中(交易池中)有上千筆交易正在等待打包,那么就有可能造成幾個(gè)小時(shí)的非正常交易延遲。DDoS可能是惡意的也有可能是非惡意的。

惡意的DoS

上個(gè)秋天,以太坊被某人或某個(gè)團(tuán)體攻擊了,通過大量制造垃圾交易。這次攻擊在如下博客有介紹:

攻擊者通過在他們的智能合約中反復(fù)的調(diào)用某些命令來讓客戶端難以處理這些計(jì)算,但是這些命令都只消耗少量的gas所以調(diào)用起來十分廉價(jià)。

在這次攻擊中,礦工被要求降低gas limit到150萬,在后來的另一次事件中更改到了200萬。也有幾次其他的事件要求礦工在網(wǎng)絡(luò)被攻擊時(shí)降低區(qū)塊gas limit。

非惡意的DoS

非惡意的DoS其實(shí)就是當(dāng)網(wǎng)絡(luò)面臨海量交易時(shí)需要比平常更多的時(shí)間來處理一筆交易。最近由于ICO的流行,以太坊網(wǎng)絡(luò)多次被交易填滿。Infura的朋友們寫過一篇與此相關(guān)的技術(shù)分析文章。

為什么區(qū)塊gas limit在區(qū)塊被填滿時(shí)不會(huì)自動(dòng)調(diào)整?

主要原因:礦工們沒有使用gas limit動(dòng)態(tài)調(diào)整的功能。

以太坊協(xié)議中存在著讓礦工可以通過投票來決定gas limit的機(jī)制,所以區(qū)塊容量不需要經(jīng)過硬分叉就可以調(diào)整。最初,這個(gè)機(jī)制和另一個(gè)默認(rèn)策略是綁定在一起的,即礦工默認(rèn)投票使區(qū)塊gas limit至少有470萬,并且趨向于最近1024個(gè)區(qū)塊gas使用量的1.5倍。這使得區(qū)塊容量會(huì)根據(jù)需求來自動(dòng)上升,同時(shí)也有一個(gè)可用來防御垃圾交易的限制。

就像"惡意的DoS"部分說的,在歷史上有幾次礦工因?yàn)楣舻脑虿坏貌皇褂梅悄J(rèn)設(shè)置來幫助降低攻擊造成的影響。但現(xiàn)在的問題是礦池在攻擊之后并沒有將設(shè)置改回默認(rèn)設(shè)置。大約一個(gè)月前,礦工被要求改變gas limit和gas price設(shè)置來再次加入gas limit動(dòng)態(tài)調(diào)整功能。因?yàn)樽罱拇鷰配N售火爆導(dǎo)致很多區(qū)塊被填滿并且區(qū)塊鏈交易堵塞。

ETH Gas Station是一個(gè)人們可以查閱最新區(qū)塊gas limit設(shè)置的網(wǎng)站。

礦工需要做什么才能修復(fù)這個(gè)問題?

礦工可以在Geth或者Parity客戶端中更改設(shè)置來重啟動(dòng)態(tài)gas limit調(diào)整。注意:這些設(shè)置是在這個(gè)Reddit帖子找到的,其實(shí)可以被設(shè)置的更高(參考這個(gè)帖子)。

Geth

推薦設(shè)置

--gasprice 4000000000 --targetgaslimit 4712388

解釋

--targetgaslimit Target gas limit sets the artificial target gas floor for the blocks to mine (default: “4712388”) --gasprice Minimal gas price to accept for mining a transactions (default: “20000000000”). Note: gasprice is listed in wei.

Parity

推薦設(shè)置

--gas-floor-target 4712388 --gas-cap 9000000 --gasprice 4000000000

解釋

--gas-floor-target Amount of gas per block to target when sealing a new block (default: 4700000).

--gas-cap A cap on how large we will raise the gas limit per block due to transaction volume (default: 6283184).

--gasprice Minimum amount of Wei per GAS to be paid for a transaction to be accepted for mining. Note: gasprice is listed in wei. Note 2: --gasprice is a “Legacy Option”

其他挖礦設(shè)置選項(xiàng)

可以參考CLI選項(xiàng)頁面來看看礦工還能如何調(diào)整優(yōu)化設(shè)置。

以上就是科普:以太坊中的賬戶、交易、Gas 和區(qū)塊 Gas Limit的詳細(xì)內(nèi)容,更多關(guān)于以太坊的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

免責(zé)聲明:本文只為提供市場訊息,所有內(nèi)容及觀點(diǎn)僅供參考,不構(gòu)成投資建議,不代表本站觀點(diǎn)和立場。投資者應(yīng)自行決策與交易,對(duì)投資者交易形成的直接或間接損失,作者及本站將不承擔(dān)任何責(zé)任。!

你可能感興趣的文章

更多

熱門幣種

  • 幣名
    最新價(jià)格
    24H漲幅
  • bitcoin BTC 比特幣

    BTC

    比特幣

    $ 106085.39¥ 755232.49
    +4.39%
  • ethereum ETH 以太坊

    ETH

    以太坊

    $ 3636.84¥ 25891.02
    +7.94%
  • tether USDT 泰達(dá)幣

    USDT

    泰達(dá)幣

    $ 0.9995¥ 7.1155
    -0.01%
  • ripple XRP 瑞波幣

    XRP

    瑞波幣

    $ 2.4401¥ 17.3713
    +8.01%
  • binance-coin BNB 幣安幣

    BNB

    幣安幣

    $ 1015.54¥ 7229.73
    +3.35%
  • solana SOL Solana

    SOL

    Solana

    $ 168.44¥ 1199.14
    +7.92%
  • usdc USDC USD Coin

    USDC

    USD Coin

    $ 1¥ 7.119
    -0.01%
  • tron TRX 波場

    TRX

    波場

    $ 0.2924¥ 2.0816
    +1.14%
  • dogecoin DOGE 狗狗幣

    DOGE

    狗狗幣

    $ 0.1818¥ 1.2942
    +5.45%
  • cardano ADA 艾達(dá)幣

    ADA

    艾達(dá)幣

    $ 0.5869¥ 4.1781
    +6.15%

幣圈快訊

  • SOL現(xiàn)貨ETF上周凈流入1.37億美元,BitwiseBSOL凈流入1.27億美元居首

    2025-11-10 11:44
    根據(jù)SoSoValue數(shù)據(jù),上周交易日SOL現(xiàn)貨ETF單周凈流入1.37億美元。上周單周凈流入最多的SOL現(xiàn)貨ETF為BitwiseSolana現(xiàn)貨ETFBSOL,周度凈流入1.27億美元,歷史總凈流入達(dá)3.24億美元;其次為灰度Solana現(xiàn)貨ETFGSOL,周度凈流入976萬美元,歷史總凈流入達(dá)1194萬美元。截至發(fā)稿前,比特幣現(xiàn)貨ETF總資產(chǎn)凈值為5.76億美元,ETF凈資產(chǎn)比率(市值較比特幣總市值占比)達(dá)0.64%,歷史累計(jì)凈流入已達(dá)3.36億美元。
  • HTX DeepThink:美政府停擺持續(xù)擾動(dòng)數(shù)據(jù)視野,美聯(lián)儲(chǔ)轉(zhuǎn)向后市場聚焦?jié)撛赒E

    2025-11-10 11:44
    HTX DeepThink專欄作者、HTX Research研究員Chloe(@ChloeTalk1)分析指出,美國政府停擺已持續(xù)一個(gè)多月,雖然參議院兩黨領(lǐng)袖近期表示正尋求“脫軌方案”,但議員們圍繞醫(yī)療補(bǔ)助等議題仍僵持不下,雙方只是表示有“初步進(jìn)展”,尚未達(dá)成真正的協(xié)議。由于停擺導(dǎo)致官方統(tǒng)計(jì)暫停,...
  • SOL現(xiàn)貨ETF上周凈流入1.37億美元,Bitwise BSOL凈流入1.27億美元居首

    2025-11-10 11:44
    根據(jù) SoSoValue 數(shù)據(jù),上周交易日(美東時(shí)間 11 月 3 日至 11 月 7 日)SOL現(xiàn)貨 ETF 單周凈流入 1.37 億美元。上周單周凈流入最多的SOL現(xiàn)貨 ETF 為Bitwise Solana 現(xiàn)貨 ETF BSOL, 周度凈流入 1.27 億美元,歷史總凈流入達(dá) 3.24 億...
  • Bitget推出雙11VIP尊享活動(dòng),限時(shí)解鎖VIP6權(quán)益并瓜分百萬空投

    2025-11-10 11:44
    Bitget 推出雙 11 VIP 尊享活動(dòng),華語地區(qū)用戶均可參與?;顒?dòng)期間,他所VIP 用戶僅需填寫表單信息,即可享受 15天 Bitget VIP 6 優(yōu)享費(fèi)率,Maker 低至0.008% ,Taker 0.03%。普通及他所用戶、或現(xiàn)有 VIP 報(bào)名后,通過合約交易量晉升 VIP+1 等級(jí)...
  • 以太坊現(xiàn)貨ETF上周凈流出5.08億美元,創(chuàng)歷史第三高

    2025-11-10 11:44
    根據(jù) SoSoValue 數(shù)據(jù),上周交易日(美東時(shí)間 11 月 3 日至 11 月 7 日)以太坊現(xiàn)貨 ETF 單周凈流出 5.08 億美元。上周單周凈流入最多的以太坊現(xiàn)貨 ETF 為 Invesco ETF QETH,周度凈流入 259 萬美元,目前 QETH 歷史總凈流入達(dá) 2390 萬美元;...
  • 查看更多