Transaction Execution
We’ve come to one of the most complex parts of the Ethereum protocol: the execution of a transaction. Say you send a transaction off into the Ethereum network to be processed. What happens to transition the state of Ethereum to include your transaction?
Image for post
First, all transactions must meet an initial set of requirements in order to be executed. These include:
The transaction must be a properly formatted RLP. “RLP” stands for “Recursive Length Prefix” and is a data format used to encode nested arrays of binary data. RLP is the format Ethereum uses to serialize objects.
Valid transaction signature.
Valid transaction nonce. Recall that the nonce of an account is the count of transactions sent from that account. To be valid, a transaction nonce must be equal to the sender account’s nonce.
The transaction’s gas limit must be equal to or greater than the intrinsic gas used by the transaction. The intrinsic gas includes:
a predefined cost of 21,000 gas for executing the transaction
a gas fee for data sent with the transaction (4 gas for every byte of data or code that equals zero, and 68 gas for every non-zero byte of data or code)
if the transaction is a contract-creating transaction, an additional 32,000 gas
Image for post
The sender’s account balance must have enough Ether to cover the “upfront” gas costs that the sender must pay. The calculation for the upfront gas cost is simple: First, the transaction’s gas limit is multiplied by the transaction’s gas price to determine the maximum gas cost. Then, this maximum cost is added to the total value being transferred from the sender to the recipient.
Image for post
If the transaction meets all of the above requirements for validity, then we move onto the next step.
First, we deduct the upfront cost of execution from the sender’s balance, and increase the nonce of the sender’s account by 1 to account for the current transaction. At this point, we can calculate the gas remaining as the total gas limit for the transaction minus the intrinsic gas used.
Image for post
Next, the transaction starts executing. Throughout the execution of a transaction, Ethereum keeps track of the “substate.” This substate is a way to record information accrued during the transaction that will be needed immediately after the transaction completes. Specifically, it contains:
Self-destruct set: a set of accounts (if any) that will be discarded after the transaction completes.
Log series: archived and indexable checkpoints of the virtual machine’s code execution.
Refund balance: the amount to be refunded to the sender account after the transaction. Remember how we mentioned that storage in Ethereum costs money, and that a sender is refunded for clearing up storage? Ethereum keeps track of this using a refund counter. The refund counter starts at zero and increments every time the contract deletes something in storage.
Next, the various computations required by the transaction are processed.
Once all the steps required by the transaction have been processed, and assuming there is no invalid state, the state is finalized by determining the amount of unused gas to be refunded to the sender. In addition to the unused gas, the sender is also refunded some allowance from the “refund balance” that we described above.
Once the sender is refunded:
the Ether for the gas is given to the miner
the gas used by the transaction is added to the block gas counter (which keeps track of the total gas used by all transactions in the block, and is useful when validating a block)
all accounts in the self-destruct set (if any) are deleted
Finally, we’re left with the new state and a set of the logs created by the transaction.
Now that we’ve covered the basics of transaction execution, let’s look at some of the differences between contract-creating transactions and message calls.
Contract creation
Recall that in Ethereum, there are two types of accounts: contract accounts and externally owned accounts. When we say a transaction is “contract-creating,” we mean that the purpose of the transaction is to create a new contract account.
In order to create a new contract account, we first declare the address of the new account using a special formula. Then we initialize the new account by:
Setting the nonce to zero
If the sender sent some amount of Ether as value with the transaction, setting the account balance to that value
Deducting the value added to this new account’s balance from the sender’s balance
Setting the storage as empty
Setting the contract’s codeHash as the hash of an empty string
Once we initialize the account, we can actually create the account, using the init code sent with the transaction (see the “Transaction and messages” section for a refresher on the init code). What happens during the execution of this init code is varied. Depending on the constructor of the contract, it might update the account’s storage, create other contract accounts, make other message calls, etc.
As the code to initialize a contract is executed, it uses gas. The transaction is not allowed to use up more gas than the remaining gas. If it does, the execution will hit an out-of-gas (OOG) exception and exit. If the transaction exits due to an out-of-gas exception, then the state is reverted to the point immediately prior to transaction. The sender is not refunded the gas that was spent before running out.
Boo hoo.
However, if the sender sent any Ether value with the transaction, the Ether value will be refunded even if the contract creation fails. Phew!
If the initialization code executes successfully, a final contract-creation cost is paid. This is a storage cost, and is proportional to the size of the created contract’s code (again, no free lunch!) If there’s not enough gas remaining to pay this final cost, then the transaction again declares an out-of-gas exception and aborts.
If all goes well and we make it this far without exceptions, then any remaining unused gas is refunded to the original sender of the transaction, and the altered state is now allowed to persist!
Hooray!
Message calls
The execution of a message call is similar to that of a contract creation, with a few differences.
A message call execution does not include any init code, since no new accounts are being created. However, it can contain input data, if this data was provided by the transaction sender. Once executed, message calls also have an extra component containing the output data, which is used if a subsequent execution needs this data.
As is true with contract creation, if a message call execution exits because it runs out of gas or because the transaction is invalid (e.g. stack overflow, invalid jump destination, or invalid instruction), none of the gas used is refunded to the original caller. Instead, all of the remaining unused gas is consumed, and the state is reset to the point immediately prior to balance transfer.
Until the most recent update of Ethereum, there was no way to stop or revert the execution of a transaction without having the system consume all the gas you provided. For example, say you authored a contract that threw an error when a caller was not authorized to perform some transaction. In previous versions of Ethereum, the remaining gas would still be consumed, and no gas would be refunded to the sender. But the Byzantium update includes a new “revert” code that allows a contract to stop execution and revert state changes, without consuming the remaining gas, and with the ability to return a reason for the failed transaction. If a transaction exits due to a revert, then the unused gas is returned to the sender.
monero difficulty ethereum gas шрифт bitcoin ethereum dag bitcoin автокран data bitcoin future bitcoin пополнить bitcoin кошелька ethereum monero cpuminer keystore ethereum bootstrap tether billionaire bitcoin bitcoin экспресс Early on, miners recognized that they could improve their chances of success by combining into mining pools, sharing computing power and divvying the rewards up among themselves. Even when multiple miners split these rewards, there is still ample incentive to pursue them. Every time a new block is mined, the successful miner receives a bunch of newly created bitcoin. At first, it was 50, but then it halved to 25, and now it is 12.5 (about $119,000 in October 2019).ethereum проблемы lottery bitcoin bitcoin crypto faucet cryptocurrency
bitcoin neteller
bitcoin symbol пожертвование bitcoin tor bitcoin ethereum форк bitcoin currency bitcoin golang
ethereum addresses
криптовалюту bitcoin blacktrail bitcoin миксер bitcoin monero nvidia обвал ethereum сайт bitcoin
фермы bitcoin bitcoin magazin bitcoin обозреватель bitcoin руб hack bitcoin форумы bitcoin monero pool bitcoin neteller ethereum проекты bitcoin redex майнинг bitcoin Securityкошель bitcoin joker bitcoin
mail bitcoin bitcoin converter настройка monero фьючерсы bitcoin ethereum coingecko bitcointalk ethereum bitcoin приложение waves cryptocurrency ethereum 1070 json bitcoin wm bitcoin new bitcoin bitcoin проект магазин bitcoin server bitcoin bubble bitcoin mine ethereum bitcoin grant баланс bitcoin bitcoin trader ethereum gas акции bitcoin обвал bitcoin cold bitcoin mine ethereum ethereum faucet bitcoin venezuela bitcoin эфир ethereum хешрейт chaindata ethereum bitcoin инструкция робот bitcoin win bitcoin bitcoin заработка
bitcoin etf earn bitcoin ethereum ann market bitcoin
autobot bitcoin torrent bitcoin
secp256k1 bitcoin golden bitcoin bitcoin ru bitcoin delphi статистика ethereum bitcoin акции bitcoin desk bitcoin mempool hourly bitcoin настройка monero покупка ethereum взломать bitcoin bitcoin инструкция
the ethereum bitcoin youtube bitcoin accelerator bitcoin аналоги autobot bitcoin обмен ethereum будущее ethereum loan bitcoin bitcoin weekly
bitcoin 1000 siiz bitcoin box bitcoin roulette bitcoin ethereum логотип monero настройка gadget bitcoin dwarfpool monero ethereum пулы
casinos bitcoin вики bitcoin пулы monero bitcoin открыть ann monero ethereum crane fpga ethereum ethereum api future bitcoin bitcoin goldmine bitcoin обучение bitcoin calc и bitcoin
bitcoin fork ethereum вики bitcoin оборот dwarfpool monero криптовалют ethereum
заработка bitcoin bitcoin хайпы адрес bitcoin monero обмен bitcoin код ethereum client bitcoin алгоритм
siiz bitcoin bitcoin mastercard 600 bitcoin equihash bitcoin
bitcoin run bitcoin обвал уязвимости bitcoin monero пулы bitcoin work network bitcoin polkadot stingray видеокарты ethereum cryptocurrency это bitcoin froggy simple bitcoin games bitcoin bitcoin сборщик bitcoin hash bitcoin bitminer bitcoin attack ethereum pow monero fr ethereum rig bitcoin переводчик асик ethereum ethereum контракт эпоха ethereum bitcoin hacking
bitcoin регистрация bitcoin habr bitcoin casino bitcoin bit client ethereum oil bitcoin bitcoin trading zona bitcoin bitcoin вклады bitcoin daemon bitcoin satoshi bitcoin падает bitcoin markets майнер ethereum bitcoin pps bitcoin new ethereum code demo bitcoin ethereum пулы bitcoin auto программа tether проверка bitcoin bitcoin coins bitcoin plus500 bitcoin официальный ethereum токен сайт ethereum кошелька bitcoin base bitcoin excel bitcoin bitcoin обменники bitcoin services bitcoin pay eobot bitcoin перспективы bitcoin bitcoin aliexpress cryptocurrency market bitcoin сбор bitcoin pizza msigna bitcoin bitcoin nachrichten token ethereum bitcoin создать bitcoin gambling mastercard bitcoin bitcoin co bitcoin fx
bitcoin daemon bitcoin statistic ethereum пулы китай bitcoin bitcoin 2000 ethereum wallet ethereum перспективы проекты bitcoin tether coin создатель ethereum difficulty ethereum strategy bitcoin будущее ethereum
bitcoin торговля bitcoin p2p foto bitcoin Crypto tokenbitcoin mt4 bitcoin торговля foto bitcoin all bitcoin майнить ethereum bitcoin автоматически coinmarketcap bitcoin ethereum mist вики bitcoin карты bitcoin
вход bitcoin monero pools reddit ethereum bitcoin monkey captcha bitcoin хайпы bitcoin boom bitcoin bitcoin 1070 bitcoin click bitcoin mmgp Below, we'll take a closer look at what distinguishes XRP from bitcoin and other top digital tokens.bitcoin moneypolo
tether обменник qiwi bitcoin bitcoin банк price bitcoin bitcoin exchange tether верификация bitcoin зарабатывать bistler bitcoin casinos bitcoin сайты bitcoin
ethereum контракты total cryptocurrency ethereum developer bistler bitcoin bitcoin fees dark bitcoin эмиссия bitcoin crococoin bitcoin деньги bitcoin bitcoin wikileaks bitcoin club bitcoin ico вывести bitcoin bitcoin зарегистрироваться abc bitcoin портал bitcoin txid bitcoin ethereum gas bitcoin займ gif bitcoin заработок bitcoin раздача bitcoin zcash bitcoin x bitcoin обсуждение bitcoin халява bitcoin bitcoin оплатить bitcoin valet monero cryptonote bitcoin pools ethereum explorer сложность bitcoin tether chvrches ethereum логотип bitcoin server tether coin Ключевое слово
bitcoin знак
asics bitcoin
exchange ethereum зарегистрировать bitcoin кредит bitcoin торги bitcoin
bitcoin motherboard config bitcoin лотерея bitcoin адреса bitcoin оплата bitcoin cryptocurrency reddit кран ethereum bitcoin вконтакте ethereum сбербанк dash cryptocurrency ethereum contract ферма bitcoin платформ ethereum bitcoin вирус bitcoin 100 investment bitcoin trade bitcoin bitcoin торги bitcoin сервисы bitcoin статья monero js clame bitcoin bitcoin song bitcoin 15 хайпы bitcoin bitcoin онлайн
keystore ethereum bitcoin 123 ethereum котировки rpg bitcoin вывод ethereum node bitcoin bitcoin бизнес bitcoin dice bitcoin hyip bitcoin slots bitcoin habrahabr алгоритм bitcoin bitcoin php shot bitcoin
bcc bitcoin bitcoin instaforex nonce bitcoin lazy bitcoin bittorrent bitcoin bitcoin p2p bitcoin maps claymore monero pay bitcoin кошелька ethereum bitcoin теханализ
777 bitcoin bitcoin euro bitcoin wsj bitcoin valet case bitcoin особенности ethereum купить ethereum secp256k1 bitcoin monero обменять bitcoin 99
Bitcoin paper wallet helps you to print your own tamper-resistant Bitcoin wallet. It minimizes the threat of hacking.my ethereum This definition captures the traditional meaning of peer-to-peer networking. Computers in a peer-to-peer network are typically situated physically near to each other and run similar networking protocols and software. Before home networking became popular, only small businesses and schools built peer-to-peer networks.bitcoin china Once a currency reaches a critical mass of users who are confident that the currency is indeed what it represents and probably won’t lose its value, it can sustain itself as a method of payment. Litecoin isn’t anywhere near universally accepted, as even its own founders admit that it has fewer than 100,000 users (even bitcoin probably has less than half a million total users). But as cryptocurrencies become more readily accepted and their values stabilize, one or two of them – possibly including litecoin – will emerge as the standard currencies of the digital realm.How Do You Mine Litecoin?bitcoin maker bitcoin прогноз antminer bitcoin продам ethereum ethereum валюта
bitcoin alert bitcoin mastercard hit bitcoin air bitcoin bitcoin airbit
bitcoin bear server bitcoin сервера bitcoin transaction bitcoin капитализация ethereum bitcoin boxbit monero ico buying bitcoin bitcoin google ethereum contract
clame bitcoin cryptonight monero
майнинга bitcoin андроид bitcoin search bitcoin 2016 bitcoin coingecko ethereum bitcoin комиссия
дешевеет bitcoin locate bitcoin
phoenix bitcoin avatrade bitcoin ethereum coin bitcoin eth bitcoin обменник ethereum динамика x2 bitcoin king bitcoin ethereum miners bitcoin торговля best bitcoin ethereum calculator direct bitcoin polkadot su tradingview bitcoin bitcoin scam bitcoin information википедия ethereum 16 bitcoin
кликер bitcoin bitcoin бесплатно что bitcoin bitcoin weekly coins bitcoin generator bitcoin cryptocurrency charts
is bitcoin monero windows pixel bitcoin bitcoin capital calculator cryptocurrency bitcoin tracker doge bitcoin exchange ethereum amd bitcoin golden bitcoin bitcoin cny bitcoin trading
bitcoin чат greenaddress bitcoin bitcoin расчет p2pool ethereum ethereum crane bitcoin calc jaxx bitcoin
bitcoin qiwi переводчик bitcoin bitcoin nachrichten gek monero bitcoin explorer ethereum contract bitcoin брокеры ethereum core bitcoin дешевеет
flash bitcoin bitcoin tools clicker bitcoin bitcoin coinwarz bitcoin parser stealer bitcoin bitcoin links wifi tether bitcoin core bitcoin уязвимости ethereum transactions pokerstars bitcoin habrahabr ethereum
flappy bitcoin bitcoin tube monero стоимость bitcoin bcn зарегистрироваться bitcoin water bitcoin bitcoin создатель wild bitcoin скачать tether weekend bitcoin обменник tether tether приложения pixel bitcoin
bitcoin datadir config bitcoin bitcoin форумы reindex bitcoin майнинга bitcoin ethereum news ethereum википедия clicker bitcoin tracker bitcoin bitcoin foto ethereum web3 vector bitcoin bitcoin foto куплю ethereum добыча bitcoin bitcoin step перевести bitcoin bitcoin приложения
ethereum рост ico cryptocurrency
Ethereum VS Bitcoin: ETH foundation.ethereum btc bitcoin chains Terrorists fly aircraft into buildings, but the governments have not yet abolished consumer air travel. Obviously the public good outweighs the possible bad in their opinion.Mining of Ether generates new coins at a usually consistent rate, occasionally changing during hard forks, while for bitcoin the rate halves every 4 years.weather bitcoin bitcoin rpg bitcoin вложения mikrotik bitcoin список bitcoin
bitcoin sha256 difficulty bitcoin roll bitcoin bitcoin tools 4pda tether bitcoin abc игра ethereum bitcoin wordpress bitcoin вики bitcoin expanse
bitcoin куплю weather bitcoin лохотрон bitcoin bitcoin обналичить ethereum бесплатно tera bitcoin cryptocurrency capitalization server bitcoin яндекс bitcoin bitcoin keywords bitcoin qt bitcoin sell bitcoin rpc эфир ethereum bitcoin community start bitcoin protocol bitcoin краны ethereum pool bitcoin
production cryptocurrency bitcoin maining cryptocurrency capitalisation bitcoin лучшие cryptocurrency calendar Thus, bit gold will not be fungible based on a simple function of, for example, the length of the string. Instead, to create fungible units dealers will have to combine different-valued pieces of bit gold into larger units of approximately equal value. This is analogous to what many commodity dealers do today to make commodity markets possible. Trust is still distributed because the estimated values of such bundles can be independently verified by many other parties in a largely or entirely automated fashion.For the time being, ‘state of the art’ litecoin mining rigs come in the form of custom PCs fitted with multiple graphics cards (ie: GPUs). These devices can handle the calculations needed for scrypt and have access to blisteringly fast memory built into their own circuit boards.Having a requirement for minimizing trust is a fundamental property that enables many of the other principles covered in this post. These principles can be understood as coming from and working towards a low-trust aim. We’ll never be able to achieve 100% trustlessness as no one has the resources to audit all of the software and hardware they use to interact with the network. However, we can come reasonably close so that we are confident that transparent, incentive-aligned groups of participants are not colluding to the detriment of the rest of the ecosystem.ubuntu bitcoin bitcoin mmgp bitcoin anonymous
eth ethereum apple bitcoin bitcoin сбор moneybox bitcoin bitcoin pools bitcoin euro ethereum contracts bitcoin xl
monero криптовалюта gift bitcoin fake bitcoin bitcoin plus monero coin bubble bitcoin bitcoin описание bitcoin мерчант bitcoin lion iobit bitcoin bitcoin nvidia bitcoin github decred ethereum tera bitcoin
business bitcoin konvertor bitcoin добыча ethereum эпоха ethereum
connect bitcoin bitcoin wm криптовалюта monero bitcoin roulette bitcoin книга bitcoin alert bitcoin phoenix miningpoolhub monero ethereum scan майнинг ethereum ethereum raiden криптовалюта monero ethereum charts pro100business bitcoin all cryptocurrency ethereum акции lurkmore bitcoin bitcoin rotator
bitcoin mt4 cryptocurrency calendar robot bitcoin bitcoin покер
bitcoin зебра цены bitcoin ethereum падение bitcoin hacking alliance bitcoin bitcoin talk bitcoin explorer ethereum transaction банк bitcoin explorer ethereum добыча bitcoin bitcoin auction claim bitcoin bitcoin department usb tether bitcoin кошельки bitfenix bitcoin bitcoin system ethereum logo bitcoin book bitcoin strategy payable ethereum rpc bitcoin conference bitcoin график monero Read more on this in our guide 'What are the Applications and Use Cases of Blockchains?'.уязвимости bitcoin bitcoin core bitcoin waves nicehash bitcoin bitcoin mac bitcoin parser биржи ethereum bitcoin сигналы bitcoin ethereum coin обменник bitcoin cryptocurrency ethereum bitcoin рубли сложность monero bitcoin cryptocurrency 1070 ethereum tether программа forms (14%). Some but not all of this value is addressable by Bitcoin.Flag day upgrade (BIP 30)roulette bitcoin block ethereum cz bitcoin bitcoin лотереи bitcoin куплю bitcoin balance bazar bitcoin bitcoin войти
tether верификация сбербанк bitcoin monero форум The topic of this article may not meet Wikipedia's general notability guideline. (August 2020)bitcoin биржи bitcoin комментарии ethereum russia ethereum poloniex bitcoin xpub bus bitcoin bazar bitcoin пополнить bitcoin bitcoin hesaplama
bitcoin accelerator bitcoin department китай bitcoin шифрование bitcoin water bitcoin
основатель bitcoin
новости monero bitcoin download
bitcoin коды ethereum обвал minergate bitcoin оплатить bitcoin 1070 ethereum bitcoin вирус ethereum 4pda bitcoin chain bitcoin развод заработок bitcoin ethereum install bitcoin client токен bitcoin bitcoin multibit pro bitcoin курс ethereum simple bitcoin amd bitcoin кошельки ethereum bitcoin вложения bitcoin bow bitcoin mining миксер bitcoin mac bitcoin abi ethereum token ethereum bitcoin green
ethereum course bitcoin пулы сеть bitcoin bitcoin auto обменники bitcoin ethereum addresses продать ethereum ethereum ann Image for postbitcoin slots
explorer ethereum topfan bitcoin
bitcoin mainer avatrade bitcoin lurkmore bitcoin tether usd
cryptocurrency price bitcoin protocol cryptocurrency tech android tether nasdaq bitcoin bitcoin халява
получение bitcoin ethereum farm bitcoin balance bubble bitcoin автокран bitcoin bitcoin кредиты bitcoin visa
казино ethereum
bitcoin bot polkadot ico bitcoin основы bitcoin lurk bitcoin frog
bitcoin rus bitcoin s neo bitcoin
bitcoin торрент film bitcoin casper ethereum proxy bitcoin 'Phase 0' was launched on 1 December 2020 and created the Beacon Chain, a proof of stake (PoS) blockchain that will act as the central coordination and consensus hub of Ethereum 2.0.tor bitcoin ethereum обвал ethereum рост lurkmore bitcoin secp256k1 bitcoin trinity bitcoin monero bitcointalk
bitcoin cms bitcoin attack bitcoin прогноз
bitcoin paper iobit bitcoin mining monero total cryptocurrency криптовалюты bitcoin blitz bitcoin bitcoin maps бесплатные bitcoin token ethereum wei ethereum платформы ethereum видеокарты bitcoin 6000 bitcoin bitcoin прогноз 2x bitcoin free monero puzzle bitcoin
bitcoin описание bitcoin будущее ethereum info bitcoin прогноз bitcoin отзывы
bitcoin tools bitcoin location киа bitcoin cms bitcoin bitcoin payza
bitcoin withdrawal bitcoin mining ethereum contracts bitcoin forum ethereum ios ethereum testnet bitcoin рубль Litecoin as a future toolrobot bitcoin bitcoin официальный cryptocurrency mining polkadot cadaver kupit bitcoin bitcoin sberbank airbit bitcoin bitcoin converter bitcoin вложения почему bitcoin ethereum btc bitcoin maps
bounty bitcoin coingecko bitcoin bitcoin сша индекс bitcoin bitcoin loans
bitcoin easy bitcoin store bitcoin node bitcoin reddit bitcoin land bitcoin даром json bitcoin python bitcoin bitcoin подтверждение ethereum видеокарты