From 4767ee4805d608a6acb8f609077cfcd591af3c88 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Fri, 30 Jul 2021 13:16:22 +0100
Subject: [PATCH 01/38] Added Block Size and Base Fee sections
---
src/content/developers/docs/gas/index.md | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index a05eeddf58e..705d3dcf50a 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -3,7 +3,6 @@ title: Gas and fees
description:
lang: en
sidebar: true
-incomplete: true
---
Gas is essential to the Ethereum network. It is the fuel that allows it to operate, in the same way that a car needs gasoline to run.
@@ -23,6 +22,8 @@ _Diagram adapted from [Ethereum EVM illustrated](https://takenobu-hs.github.io/d
In essence, gas fees are paid in Ethereum's native currency, ether (ETH). Gas prices are denoted in gwei, which itself is a denomination of ETH - each gwei is equal to 0.000000001 ETH (10-9 ETH). For example, instead of saying that your gas costs 0.000000001 ether, you can say your gas costs 1 gwei.
+## Prior to the London update {#pre-london}
+
Let's say Alice has to pay Bob 1ETH.
In the transaction the gas limit is 21,000 units and the gas price is 200 gwei.
@@ -37,6 +38,20 @@ This video offers a concise overview of gas and why it exists:
+## After the London update {#post-london}
+
+### Base Fees {#base-fees}
+
+Every block has a base fee which acts as a reserve price. To be eligible for inclusion in a block the offered price per gas must at least equal the base fee. The base fee is calculated independently of the current block and instead is determined by the blocks before it - making transaction fees more predictable for users.
+
+This makes it economically unviable for block size to remain
+
+### Block Size
+
+EIP-1559 introduced variable-size blocks to Ethereum. Each block has a target size of 12.5 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 25 milion gas (2x block target size). An equilibrium block size of 12.5 million on average is achieved through the process of _tâtonnement_. This means if the block sizes is greater than the target block size, the base fee will increase . Similarly, if the block is less than the target block size the base fee will decrease. [More on blocks](/developers/docs/blocks/).
+
+### FeeCap {#feecap}
+
## Why do gas fees exist? {#why-do-gas-fees-exist}
In short, gas fees help keep the Ethereum network secure. By requiring a fee for every computation executed on the network, we prevent actors from spamming the network. In order to prevent accidental or hostile infinite loops or other computational wastage in code, each transaction is required to set a limit to how many computational steps of code execution it can use. The fundamental unit of computation is "gas".
From 7a8d710aeeb3f3f47eb71ec523c7fbbdf3b41976 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Fri, 30 Jul 2021 14:00:23 +0100
Subject: [PATCH 02/38] Added More on Base Fees section
---
src/content/developers/docs/gas/index.md | 26 +++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 705d3dcf50a..8cd0017b5f3 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -42,16 +42,36 @@ This video offers a concise overview of gas and why it exists:
### Base Fees {#base-fees}
-Every block has a base fee which acts as a reserve price. To be eligible for inclusion in a block the offered price per gas must at least equal the base fee. The base fee is calculated independently of the current block and instead is determined by the blocks before it - making transaction fees more predictable for users.
-
-This makes it economically unviable for block size to remain
+Every block has a base fee which acts as a reserve price. To be eligible for inclusion in a block the offered price per gas must at least equal the base fee. The base fee is calculated independently of the current block and is instead determined by the blocks before it - making transaction fees more predictable for users.
### Block Size
EIP-1559 introduced variable-size blocks to Ethereum. Each block has a target size of 12.5 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 25 milion gas (2x block target size). An equilibrium block size of 12.5 million on average is achieved through the process of _tâtonnement_. This means if the block sizes is greater than the target block size, the base fee will increase . Similarly, if the block is less than the target block size the base fee will decrease. [More on blocks](/developers/docs/blocks/).
+### More on Base Fees {#more-base-fees}
+
+The base fee will increase by a maximum of 12.5% per block if the target block size is exceeded. This exponential growth makes it economically non-viable for block size to remain high indefinitely.
+
+| Block Number | Included Gas | Fee Increase | Base Fee |
+| ------------ | -----------: | -----------: | ---------: |
+| 1 | 12.5M | 0% | 100 gwei |
+| 2 | 25M | 0% | 100 gwei |
+| 3 | 25M | 12.5% | 112.5 gwei |
+| 4 | 25M | 12.5% | 126.5 gwei |
+| 5 | 25M | 12.5% | 142.4 gwei |
+| 6 | 25M | 12.5% | 160.2 gwei |
+| 7 | 25M | 12.5% | 180.2 gwei |
+| 8 | 25M | 12.5% | 202.8 gwei |
+
+Relative to the pre-London gas auction market, this transaction-fee-mechanism change causes fee prediction for to be more reliable. Following the table above - to create a transaction on block number 9, a wallet will let the user know with certainty that the **maximum base fee** to be added to the next block is `current base fee * 112.5%` or `202.8 gwei * 112.5% = 256.8 gwei`.
+
### FeeCap {#feecap}
+## Implications of the London Upgrade on Fees
+
+- less sudden spikes in price
+- better user experience when transacting on the network
+
## Why do gas fees exist? {#why-do-gas-fees-exist}
In short, gas fees help keep the Ethereum network secure. By requiring a fee for every computation executed on the network, we prevent actors from spamming the network. In order to prevent accidental or hostile infinite loops or other computational wastage in code, each transaction is required to set a limit to how many computational steps of code execution it can use. The fundamental unit of computation is "gas".
From d7f029a05ffa38ab9b19123a61a6cfc1e23767a9 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Fri, 30 Jul 2021 14:30:57 +0100
Subject: [PATCH 03/38] Rewrite intro section
---
src/content/developers/docs/gas/index.md | 26 +++++++++++++++++-------
1 file changed, 19 insertions(+), 7 deletions(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 8cd0017b5f3..a72f936e5b0 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -24,21 +24,31 @@ In essence, gas fees are paid in Ethereum's native currency, ether (ETH). Gas pr
## Prior to the London update {#pre-london}
-Let's say Alice has to pay Bob 1ETH.
+The way transaction fees on the Ethereum network are calculated changed during the London upgrade. Here is a recap of how things used to work:
+
+Let's say Alice had to pay Bob 1ETH.
In the transaction the gas limit is 21,000 units and the gas price is 200 gwei.
-Total fee will be: `Gas units (limit) * Gas price per unit`
+Total fee would have been: `Gas units (limit) * Gas price per unit`
i.e `21,000 * 200 = 4,200,000 gwei` or 0.0042 ETH
-Now, when Alice sends the money, 1.0042 ETH will be deducted from Alice's account.
-Bob will be credited 1.0000 ETH.
-Miner gets 0.0042 ETH.
+Now, when Alice sent the money, 1.0042 ETH will be deducted from Alice's account.
+Bob would be credited 1.0000 ETH.
+Miner got 0.0042 ETH.
This video offers a concise overview of gas and why it exists:
-## After the London update {#post-london}
+## After to the London update {#post-london}
+
+Starting with the London update, every block has a base fee, the minimum per gas price for inclusion in this block, and a tip.
+
+Calculating the total fee works as follows: `Gas units (limit) * (Base fee per unit + Tip per unit)`
+
+Let’s say Jordan has to pay Taylor 1 ETH. In the transaction the gas limit is 21,000 units and the base fee is 100 gwei. Jordan includes a tip of 10 gwei.
+
+Using the formula above we can calculate this as `21,000 * (100 + 10) = 2,310,000 gwei` or 0.0023 ETH.
### Base Fees {#base-fees}
@@ -63,7 +73,9 @@ The base fee will increase by a maximum of 12.5% per block if the target block s
| 7 | 25M | 12.5% | 180.2 gwei |
| 8 | 25M | 12.5% | 202.8 gwei |
-Relative to the pre-London gas auction market, this transaction-fee-mechanism change causes fee prediction for to be more reliable. Following the table above - to create a transaction on block number 9, a wallet will let the user know with certainty that the **maximum base fee** to be added to the next block is `current base fee * 112.5%` or `202.8 gwei * 112.5% = 256.8 gwei`.
+Relative to the pre-London gas auction market, this transaction-fee-mechanism change causes fee prediction to be more reliable. Following the table above - to create a transaction on block number 9, a wallet will let the user know with certainty that the **maximum base fee** to be added to the next block is `current base fee * 112.5%` or `202.8 gwei * 112.5% = 256.8 gwei`.
+
+## Tips {#tips}
### FeeCap {#feecap}
From 9a33190d08a78236a1d178f275556602b5d089b9 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Fri, 30 Jul 2021 15:33:18 +0100
Subject: [PATCH 04/38] Include tips and feecap
---
src/content/developers/docs/gas/index.md | 37 ++++++++++++------------
1 file changed, 18 insertions(+), 19 deletions(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index a72f936e5b0..0bd347eb480 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -52,43 +52,42 @@ Using the formula above we can calculate this as `21,000 * (100 + 10) = 2,310,00
### Base Fees {#base-fees}
-Every block has a base fee which acts as a reserve price. To be eligible for inclusion in a block the offered price per gas must at least equal the base fee. The base fee is calculated independently of the current block and is instead determined by the blocks before it - making transaction fees more predictable for users.
+Every block has a base fee which acts as a reserve price. To be eligible for inclusion in a block the offered price per gas must at least equal the base fee. The base fee is calculated independently of the current block and is instead determined by the blocks before it - making transaction fees more predictable for users. When the block is mined this base fee is "burned", removing it from circulation.
### Block Size
-EIP-1559 introduced variable-size blocks to Ethereum. Each block has a target size of 12.5 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 25 milion gas (2x block target size). An equilibrium block size of 12.5 million on average is achieved through the process of _tâtonnement_. This means if the block sizes is greater than the target block size, the base fee will increase . Similarly, if the block is less than the target block size the base fee will decrease. [More on blocks](/developers/docs/blocks/).
+EIP-1559 introduced variable-size blocks to Ethereum. Each block has a target size of 12.5 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 25 milion gas (2x block target size). An equilibrium block size of 12.5 million on average is achieved through the process of _tâtonnement_. This means if the block sizes is greater than the target block size, the base fee will increase . Similarly, if the block is less than the target block size the base fee will decrease. The amount the base fee is adjusted by is proportional to how far from the target the block size is. [More on blocks](/developers/docs/blocks/).
-### More on Base Fees {#more-base-fees}
+### Base Fees Continued {#base-fees-continued}
-The base fee will increase by a maximum of 12.5% per block if the target block size is exceeded. This exponential growth makes it economically non-viable for block size to remain high indefinitely.
+The base fee is calculated by a formula that compares the size of the previous block (the amount of gas used for all the transactions) with the target size. The base fee will increase by a maximum of 12.5% per block if the target block size is exceeded. This exponential growth makes it economically non-viable for block size to remain high indefinitely.
-| Block Number | Included Gas | Fee Increase | Base Fee |
-| ------------ | -----------: | -----------: | ---------: |
-| 1 | 12.5M | 0% | 100 gwei |
-| 2 | 25M | 0% | 100 gwei |
-| 3 | 25M | 12.5% | 112.5 gwei |
-| 4 | 25M | 12.5% | 126.5 gwei |
-| 5 | 25M | 12.5% | 142.4 gwei |
-| 6 | 25M | 12.5% | 160.2 gwei |
-| 7 | 25M | 12.5% | 180.2 gwei |
-| 8 | 25M | 12.5% | 202.8 gwei |
+| Block Number | Included Gas | Fee Increase | Current Base Fee |
+| ------------ | -----------: | -----------: | ---------------: |
+| 1 | 12.5M | 0% | 100 gwei |
+| 2 | 25M | 0% | 100 gwei |
+| 3 | 25M | 12.5% | 112.5 gwei |
+| 4 | 25M | 12.5% | 126.5 gwei |
+| 5 | 25M | 12.5% | 142.4 gwei |
+| 6 | 25M | 12.5% | 160.2 gwei |
+| 7 | 25M | 12.5% | 180.2 gwei |
+| 8 | 25M | 12.5% | 202.8 gwei |
Relative to the pre-London gas auction market, this transaction-fee-mechanism change causes fee prediction to be more reliable. Following the table above - to create a transaction on block number 9, a wallet will let the user know with certainty that the **maximum base fee** to be added to the next block is `current base fee * 112.5%` or `202.8 gwei * 112.5% = 256.8 gwei`.
## Tips {#tips}
-### FeeCap {#feecap}
+As the base fee (which in the previous transaction fee mechanism would have gone to the miner) is burned, a tip is used to incentivise miners to include a transaction in the block they are mining. Without tips, it would be economically viable for miners to mine empty blocks, as they would receive the same block reward. Under normal conditions a small tip provides miners a minimal incentive to include a transaction and high tips can provide incentive for special treatment.
-## Implications of the London Upgrade on Fees
+### Fee Cap {#feecap}
-- less sudden spikes in price
-- better user experience when transacting on the network
+To execute a transaction on the network users are able to specify a maximum limit they are willing to pay for their transaction to be executed. This optional parameter is known as a `fee cap`. In order for a transaction to be executed the fee cap must exceed the sum of the base fee and the tip.
## Why do gas fees exist? {#why-do-gas-fees-exist}
In short, gas fees help keep the Ethereum network secure. By requiring a fee for every computation executed on the network, we prevent actors from spamming the network. In order to prevent accidental or hostile infinite loops or other computational wastage in code, each transaction is required to set a limit to how many computational steps of code execution it can use. The fundamental unit of computation is "gas".
-Although a transaction includes a limit, any gas not used in a transaction is returned to the user.
+Although a transaction includes a limit, any gas not used in a transaction is returned to the user (i.e `fee cap - (base fee + tip)` is returned).
![Diagram showing how unused gas is refunded](../transactions/gas-tx.png)
_Diagram adapted from [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_
From 7cfdcf5c9e4747666390f2c4fdda5f759af99bd1 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Fri, 30 Jul 2021 15:44:50 +0100
Subject: [PATCH 05/38] Restructure paragraphs
---
src/content/developers/docs/gas/index.md | 66 +++++++-----------------
1 file changed, 18 insertions(+), 48 deletions(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 0bd347eb480..67b1d00f357 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -42,7 +42,7 @@ This video offers a concise overview of gas and why it exists:
## After to the London update {#post-london}
-Starting with the London update, every block has a base fee, the minimum per gas price for inclusion in this block, and a tip.
+Starting with [the London update](/history/#london), every block has a base fee, the minimum per gas price for inclusion in this block, and a tip.
Calculating the total fee works as follows: `Gas units (limit) * (Base fee per unit + Tip per unit)`
@@ -50,15 +50,15 @@ Let’s say Jordan has to pay Taylor 1 ETH. In the transaction the gas limit is
Using the formula above we can calculate this as `21,000 * (100 + 10) = 2,310,000 gwei` or 0.0023 ETH.
-### Base Fees {#base-fees}
+## Base Fees {#base-fees}
Every block has a base fee which acts as a reserve price. To be eligible for inclusion in a block the offered price per gas must at least equal the base fee. The base fee is calculated independently of the current block and is instead determined by the blocks before it - making transaction fees more predictable for users. When the block is mined this base fee is "burned", removing it from circulation.
-### Block Size
+## Block Size {#block-size}
EIP-1559 introduced variable-size blocks to Ethereum. Each block has a target size of 12.5 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 25 milion gas (2x block target size). An equilibrium block size of 12.5 million on average is achieved through the process of _tâtonnement_. This means if the block sizes is greater than the target block size, the base fee will increase . Similarly, if the block is less than the target block size the base fee will decrease. The amount the base fee is adjusted by is proportional to how far from the target the block size is. [More on blocks](/developers/docs/blocks/).
-### Base Fees Continued {#base-fees-continued}
+## Base Fees Continued {#base-fees-continued}
The base fee is calculated by a formula that compares the size of the previous block (the amount of gas used for all the transactions) with the target size. The base fee will increase by a maximum of 12.5% per block if the target block size is exceeded. This exponential growth makes it economically non-viable for block size to remain high indefinitely.
@@ -79,10 +79,22 @@ Relative to the pre-London gas auction market, this transaction-fee-mechanism ch
As the base fee (which in the previous transaction fee mechanism would have gone to the miner) is burned, a tip is used to incentivise miners to include a transaction in the block they are mining. Without tips, it would be economically viable for miners to mine empty blocks, as they would receive the same block reward. Under normal conditions a small tip provides miners a minimal incentive to include a transaction and high tips can provide incentive for special treatment.
-### Fee Cap {#feecap}
+## Fee Cap {#feecap}
To execute a transaction on the network users are able to specify a maximum limit they are willing to pay for their transaction to be executed. This optional parameter is known as a `fee cap`. In order for a transaction to be executed the fee cap must exceed the sum of the base fee and the tip.
+## The London update {#gas-price-london-update}
+
+This mechanism is more complicated than the simple gas price auction, but it has the advantage of making gas fees more predictable, as well as making ETH more
+valuable by removing some of it from circulation. The base fee functions as a [second price auction](https://oko.uk/blog/first-price-vs-second-price-auctions),
+which is more efficient than the previous mechanism that is a first price auction. Users can submit transactions with a much higher tip, corresponding
+to how much they need the transaction to happen, without having to worry that they will be overcharged.
+
+If you are interested you can read the exact
+[EIP-1559 specifications](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md).
+
+Continue down the rabbit hole with these [EIP-1559 Resources](https://hackmd.io/@timbeiko/1559-resources).
+
## Why do gas fees exist? {#why-do-gas-fees-exist}
In short, gas fees help keep the Ethereum network secure. By requiring a fee for every computation executed on the network, we prevent actors from spamming the network. In order to prevent accidental or hostile infinite loops or other computational wastage in code, each transaction is required to set a limit to how many computational steps of code execution it can use. The fundamental unit of computation is "gas".
@@ -98,51 +110,9 @@ Gas limit refers to the maximum amount of gas you are willing to consume on a tr
For example if you put a gas limit of 50,000 for a simple ETH transfer, the EVM would consume 21,000, and you would get back the remaining 29,000. However, if you specify too little gas say for example, a gas limit of 20,000 for a simple ETH transfer, the EVM will consume your 20,000 gas units attempting to fulfill the txn, but it will not complete. The EVM then reverts any changes, but since 20k gas units worth of work has already been done by the miner, that gas is consumed.
-## What is gas price? {#what-is-gas-price}
-
-Gas price refers to the amount of Ether you are willing to pay for every unit of gas, and this is usually measured in 'gwei'. Prior to
-[the London update](/history/#london), you specify in the transaction how much you are willing to pay per gas, and you pay exactly that amount.
-Different transactions in the same block can have very different gas prices.
-
-### The London update {#gas-price-london-update}
-
-Starting with the London update, every block has a base fee, the minimum per gas price for inclusion in this block. The base fee is calculated by a formula
-that compares the size of the previous block (the amount of gas used for all the transactions) with a target size. This upgrade will double the allowable block size, while targeting blocks to be 50% full. If the block size is higher than the target, there is more demand for inclusion in the blockchain than targeted supply, so the base fee in the subsequent block is increased. If the block size is lower than the target then there is less demand for block space than targeted supply, so the base fee is subsequently decreased. The amount the base fee is adjusted by is proportional to how far from the target the block size is. This base fee is "burned", removing it from circulation.
-
-Transactions can either specify a gas price using the old mechanism, or specify two other parameters:
-
-- Maximum Fee per Gas: The maximum gas price the transaction can be charged.
-- Maximum Priority Fee per Gas (a.k.a. Tip): The maximum priority fee the transaction signer is willing to pay the miner per gas to be included.
- If the base fee plus this amount is less than the maximum fee per gas, this is the priority fee. Otherwise, the priority fee is the maximum
- fee minus the base fee.
-
-For example, imagine a block with a base fee of 100 gwei. The pool of available transactions contains the transactions
-in the table below. Transactions A-C are type 2, so they include both a maximum fee per gas and a maximum priority fee per gas.
-Transaction D is an older transaction type (either 0, without an access list, or 1, which does have an access list), so it only specifies
-a gas price. That gas price is used for both maximum fee per gas and maximum priority fee per gas.
-
-| ID | Maximum Fee per Gas | Maximum Priority Fee per Gas | Actual Priority Fee | Actual Gas Price | Remarks |
-| --- | ------------------: | ---------------------------: | ------------------: | ---------------: | --------------------------------------------------------------- |
-| A | 90 gwei | 90 gwei | N/A | N/A | This transaction is not going in the block |
-| B | 200 gwei | 5 gwei | 5 gwei | 105 gwei | The priority fee is the maximum priority fee |
-| C | 120 gwei | 30 gwei | 20 gwei | 120 gwei | The priority fee is the maximum (total) fee minus the base fee |
-| D | 200 gwei | 200 gwei | 100 gwei | 200 gwei | Transactions that specify gas price are charged the full amount |
-
-Miners and validators are expected to choose the transactions that will pay them the highest priority fees.
-
-This mechanism is more complicated than the simple gas price auction, but it has the advantage of making gas fees more predictable, as well as making ETH more
-valuable by removing some of it from circulation. The maximum fee per gas functions as a [second price auction](https://oko.uk/blog/first-price-vs-second-price-auctions),
-which is more efficient than the previous mechanism that is a first price auction. Users can submit transactions with a much higher maximum fee per gas, corresponding
-to how much they need the transaction to happen, without having to worry that they will be overcharged.
-
-If you are interested you can read the exact
-[EIP-1559 specifications](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md).
-
-Continue down the rabbit hole with these [EIP-1559 Resources](https://hackmd.io/@timbeiko/1559-resources).
-
## Why can gas fees get so high? {#why-can-gas-fees-get-so-high}
-High gas fees are due to the popularity of Ethereum. Performing any operation on Ethereum requires consuming gas, and gas space is limited per block. This includes calculations, storing or manipulating data, or transferring tokens, each consuming different amounts of "gas" units. As dapp functionality grows more complex, the number of operations a smart contract performs grows too, meaning each transaction takes up more space of a limited size block. If there's too much demand, users must offer a higher gas price to try and out-bid other users' transactions. A higher price can make it more likely that your transaction will get into the next block.
+High gas fees are due to the popularity of Ethereum. Performing any operation on Ethereum requires consuming gas, and gas space is limited per block. This includes calculations, storing or manipulating data, or transferring tokens, each consuming different amounts of "gas" units. As dapp functionality grows more complex, the number of operations a smart contract performs grows too, meaning each transaction takes up more space of a limited size block. If there's too much demand, users must offer a higher tip amount to try and out-bid other users' transactions. A higher tip can make it more likely that your transaction will get into the next block.
Gas price alone does not actually determine how much we have to pay for a particular transaction. To calculate the transaction fee we have to multiply the gas used by gas price, which is measured in gwei.
From 0a2906e277bfb78f6eb5bd7bb9e932f9b2cce0d7 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Fri, 30 Jul 2021 15:48:10 +0100
Subject: [PATCH 06/38] Rewording a sentence
---
src/content/developers/docs/gas/index.md | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 67b1d00f357..fc4b9035571 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -47,7 +47,6 @@ Starting with [the London update](/history/#london), every block has a base fee,
Calculating the total fee works as follows: `Gas units (limit) * (Base fee per unit + Tip per unit)`
Let’s say Jordan has to pay Taylor 1 ETH. In the transaction the gas limit is 21,000 units and the base fee is 100 gwei. Jordan includes a tip of 10 gwei.
-
Using the formula above we can calculate this as `21,000 * (100 + 10) = 2,310,000 gwei` or 0.0023 ETH.
## Base Fees {#base-fees}
@@ -85,7 +84,7 @@ To execute a transaction on the network users are able to specify a maximum limi
## The London update {#gas-price-london-update}
-This mechanism is more complicated than the simple gas price auction, but it has the advantage of making gas fees more predictable, as well as making ETH more
+The post-London transaction fee mechanism is more complicated than the simple gas price auction, but it has the advantage of making gas fees more predictable, as well as making ETH more
valuable by removing some of it from circulation. The base fee functions as a [second price auction](https://oko.uk/blog/first-price-vs-second-price-auctions),
which is more efficient than the previous mechanism that is a first price auction. Users can submit transactions with a much higher tip, corresponding
to how much they need the transaction to happen, without having to worry that they will be overcharged.
From d916a2ed43f0ecead871ba58b5b43b0adb5c5521 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Tue, 3 Aug 2021 21:29:11 +0100
Subject: [PATCH 07/38] Complete gas and fees page
---
src/content/developers/docs/gas/index.md | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index fc4b9035571..7383b083cd9 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -55,7 +55,7 @@ Every block has a base fee which acts as a reserve price. To be eligible for inc
## Block Size {#block-size}
-EIP-1559 introduced variable-size blocks to Ethereum. Each block has a target size of 12.5 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 25 milion gas (2x block target size). An equilibrium block size of 12.5 million on average is achieved through the process of _tâtonnement_. This means if the block sizes is greater than the target block size, the base fee will increase . Similarly, if the block is less than the target block size the base fee will decrease. The amount the base fee is adjusted by is proportional to how far from the target the block size is. [More on blocks](/developers/docs/blocks/).
+EIP-1559 introduced variable-size blocks to Ethereum. Each block has a target size of 12.5 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 25 milion gas (2x block target size). An equilibrium block size of 12.5 million on average is achieved through the process of _tâtonnement_. This means if the block size is greater than the target block size, the base fee will increase. Similarly, if the block size is less than the target block size the base fee will decrease. The amount the base fee is adjusted by is proportional to how far from the target the block size is. [More on blocks](/developers/docs/blocks/).
## Base Fees Continued {#base-fees-continued}
@@ -89,6 +89,10 @@ valuable by removing some of it from circulation. The base fee functions as a [s
which is more efficient than the previous mechanism that is a first price auction. Users can submit transactions with a much higher tip, corresponding
to how much they need the transaction to happen, without having to worry that they will be overcharged.
+This video explains EIP-1559 and the benefits it brings:
+
+
+
If you are interested you can read the exact
[EIP-1559 specifications](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md).
@@ -96,7 +100,7 @@ Continue down the rabbit hole with these [EIP-1559 Resources](https://hackmd.io/
## Why do gas fees exist? {#why-do-gas-fees-exist}
-In short, gas fees help keep the Ethereum network secure. By requiring a fee for every computation executed on the network, we prevent actors from spamming the network. In order to prevent accidental or hostile infinite loops or other computational wastage in code, each transaction is required to set a limit to how many computational steps of code execution it can use. The fundamental unit of computation is "gas".
+In short, gas fees help keep the Ethereum network secure. By requiring a fee for every computation executed on the network, we prevent bad actors from spamming the network. In order to prevent accidental or hostile infinite loops or other computational wastage in code, each transaction is required to set a limit to how many computational steps of code execution it can use. The fundamental unit of computation is "gas".
Although a transaction includes a limit, any gas not used in a transaction is returned to the user (i.e `fee cap - (base fee + tip)` is returned).
@@ -113,11 +117,7 @@ For example if you put a gas limit of 50,000 for a simple ETH transfer, the EVM
High gas fees are due to the popularity of Ethereum. Performing any operation on Ethereum requires consuming gas, and gas space is limited per block. This includes calculations, storing or manipulating data, or transferring tokens, each consuming different amounts of "gas" units. As dapp functionality grows more complex, the number of operations a smart contract performs grows too, meaning each transaction takes up more space of a limited size block. If there's too much demand, users must offer a higher tip amount to try and out-bid other users' transactions. A higher tip can make it more likely that your transaction will get into the next block.
-Gas price alone does not actually determine how much we have to pay for a particular transaction. To calculate the transaction fee we have to multiply the gas used by gas price, which is measured in gwei.
-
-This video about gas fees explains fully why fees can be so expensive:
-
-
+Gas price alone does not actually determine how much we have to pay for a particular transaction. To calculate the transaction fee we have to multiply the gas used by the transaction fee, which is measured in gwei.
## Initiatives to reduce gas costs {#initiatives-to-reduce-gas-costs}
@@ -131,7 +131,7 @@ Anyone with at least 32 ETH is able to stake them and become a validator respons
## Strategies for you to reduce gas costs {#strategies-for-you-to-reduce-gas-costs}
-If you are looking to reduce gas costs for your ETH you are able to set the price of your own gas fees and choose the priority level of your transaction. Miners will 'work on' and execute transactions that offer a higher gas price, as they get to keep the fees that you pay and will be less inclined to execute transactions with lower gas fees set. The gas price you set is how much you are willing to pay per unit of gas. However if you set the amount of gas too low you will not be able to send your ETH as you will run out of gas, you would then have to resubmit your transaction costing you more in gas fees. You can do this from some wallet providers when sending ETH.
+If you are looking to reduce gas costs for your ETH you are able to set a tip to indicate the priority level of your transaction. Miners will 'work on' and execute transactions that offer a higher tip per gas, as they get to keep the tips that you pay and will be less inclined to execute transactions with lower tips set.
If you want to monitor gas prices so you are able to send your ETH for less you can use many different tools such as:
@@ -140,7 +140,6 @@ If you want to monitor gas prices so you are able to send your ETH for less you
## Further Reading {#further-reading}
-- [Understanding Ethereum Gas, Blocks and the Fee Market](https://medium.com/@eric.conner/understanding-ethereum-gas-blocks-and-the-fee-market-d5e268bf0a0e)
- [Ethereum Gas Explained](https://defiprime.com/gas)
- [Is Ethereum more expensive to use as price rises?](https://docs.ethhub.io/questions-about-ethereum/is-ethereum-more-expensive-to-use-as-price-rises/)
- [Reducing the gas consumption of your Smart Contracts](https://medium.com/coinmonks/8-ways-of-reducing-the-gas-consumption-of-your-smart-contracts-9a506b339c0a)
From 0ada868b321c69ad083a7ae71921365caebba8a6 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Tue, 3 Aug 2021 21:59:07 +0100
Subject: [PATCH 08/38] Update block page
---
src/content/developers/docs/blocks/index.md | 4 +++-
src/content/developers/docs/gas/index.md | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/content/developers/docs/blocks/index.md b/src/content/developers/docs/blocks/index.md
index 6e045c59ab3..0c10da6b2c4 100644
--- a/src/content/developers/docs/blocks/index.md
+++ b/src/content/developers/docs/blocks/index.md
@@ -46,6 +46,8 @@ Proof of work means the following:
- Timestamp – the time when the block was mined.
- Block number – the length of the blockchain in blocks.
+- Base Fee Per Gas - the fee per gas required for a transaction to be included in the block.
+- Burnt Fees - the amount of ETH from base fees burnt by the block.
- Difficulty – the effort required to mine the block.
- mixHash – a unique identifier for that block.
- A parent hash – the unique identifier for the block that came before (this is how blocks are linked in a chain).
@@ -55,7 +57,7 @@ Proof of work means the following:
## Block size {#block-size}
-A final important note is that blocks themselves are bounded in size. Each block has a block gas limit which is set by the network and the miners collectively: the total amount of gas expended by all transactions in the block must be less than the block gas limit. This is important because it ensures that blocks can’t be arbitrarily large. If blocks could be arbitrarily large, then less performant full nodes would gradually stop being able to keep up with the network due to space and speed requirements. The block gas limit at block 0 was initialized to 5,000; any miner who mines a new block can alter the gas limit by up to about 0.1% in either direction from the parent block gas limit. The gas limit as of April 2021 currently hovers around 15,000,000.
+A final important note is that, as of the London Upgrade, blocks themselves are no longer bounded in size. Each block has a target size of 12.5 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 25 milion gas (2x target block size). The total amount of gas expended by all transactions in the block must be less than the block gas limit. This is important because it ensures that blocks can’t be arbitrarily large. If blocks could be arbitrarily large, then less performant full nodes would gradually stop being able to keep up with the network due to space and speed requirements.
## Further reading {#further-reading}
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 7383b083cd9..bef7982ecb6 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -55,7 +55,7 @@ Every block has a base fee which acts as a reserve price. To be eligible for inc
## Block Size {#block-size}
-EIP-1559 introduced variable-size blocks to Ethereum. Each block has a target size of 12.5 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 25 milion gas (2x block target size). An equilibrium block size of 12.5 million on average is achieved through the process of _tâtonnement_. This means if the block size is greater than the target block size, the base fee will increase. Similarly, if the block size is less than the target block size the base fee will decrease. The amount the base fee is adjusted by is proportional to how far from the target the block size is. [More on blocks](/developers/docs/blocks/).
+EIP-1559 introduced variable-size blocks to Ethereum. Each block has a target size of 12.5 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 25 milion gas (2x target block size). An equilibrium block size of 12.5 million on average is achieved through the process of _tâtonnement_. This means if the block size is greater than the target block size, the base fee will increase. Similarly, if the block size is less than the target block size the base fee will decrease. The amount the base fee is adjusted by is proportional to how far from the target the block size is. [More on blocks](/developers/docs/blocks/).
## Base Fees Continued {#base-fees-continued}
From 3d3b4179cc45f305e531521b070afa6de3425aa9 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Tue, 3 Aug 2021 22:38:32 +0100
Subject: [PATCH 09/38] Update transactions page to include 1559 changes
---
.../developers/docs/transactions/index.md | 21 ++++++++++++-------
1 file changed, 13 insertions(+), 8 deletions(-)
diff --git a/src/content/developers/docs/transactions/index.md b/src/content/developers/docs/transactions/index.md
index 43fe31f11be..d22202ca3f3 100644
--- a/src/content/developers/docs/transactions/index.md
+++ b/src/content/developers/docs/transactions/index.md
@@ -34,8 +34,10 @@ A submitted transaction includes the following information:
- `data` – optional field to include arbitrary data
- `gasLimit` – the maximum amount of gas units that can be consumed by the transaction. Units of gas represent computational steps
- `gasPrice` – the fee the sender pays per unit of gas
+- `maxPriorityFeePerGas` - the maximum amount of gas to be included as a tip to the miner
+- `maxFeePerGas` - the maximum amount of gas willing to be paid for the transaction (inclusive of `baseFeePerGas` and `maxPriorityFeePerGas`)
-Gas is a reference to the computation required to process the transaction by a miner. Users have to pay a fee for this computation. The `gasLimit` and `gasPrice` determine the maximum transaction fee paid to the miner. [More on Gas](/developers/docs/gas/).
+Gas is a reference to the computation required to process the transaction by a miner. Users have to pay a fee for this computation. The `gasLimit`, and `maxPriorityFeePerGas` determine the maximum transaction fee paid to the miner. [More on Gas](/developers/docs/gas/).
The transaction object will look a little like this:
@@ -44,7 +46,8 @@ The transaction object will look a little like this:
from: "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8",
to: "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a",
gasLimit: "21000",
- gasPrice: "200",
+ maxFeePerGas: "300"
+ maxPriorityFeePerGas: "10"
nonce: "0",
value: "10000000000",
}
@@ -65,7 +68,8 @@ Example [JSON-RPC](https://eth.wiki/json-rpc/API) call:
{
"from": "0x1923f626bb8dc025849e00f99c25fe2b2f7fb0db",
"gas": "0x55555",
- "gasPrice": "0x1234",
+ "maxFeePerGas": "0x1234",
+ "maxPriorityFeePerGas": "0x1234",
"input": "0xabcd",
"nonce": "0x0",
"to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0",
@@ -85,7 +89,8 @@ Example response:
"raw": "0xf88380018203339407a565b7ed7d7a678680a4c162885bedbb695fe080a44401a6e4000000000000000000000000000000000000000000000000000000000000001226a0223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20ea02aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663",
"tx": {
"nonce": "0x0",
- "gasPrice": "0x1234",
+ "maxFeePerGas": "0x1234",
+ "maxPriorityFeePerGas": "0x1234",
"gas": "0x55555",
"to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0",
"value": "0x1234",
@@ -108,10 +113,10 @@ With the signature hash, the transaction can be cryptographically proven that it
As mentioned, transactions cost [gas](/developers/docs/gas/) to execute. Simple transfer transactions require 21000 units of Gas.
-So for Bob to send Alice 1 ETH at a `gasPrice` of 200 gwei, Bob will need to pay the following fee:
+So for Bob to send Alice 1 ETH at a `baseFeePerGas` of 200 gwei and `maxPriorityFeePerGas` of 1 gwei, Bob will need to pay the following fee:
```
-200 * 21000 = 4,200,000 gwei
+(200 + 1) * 21000 = 4,221,100 gwei
--or--
0.0042 ETH
```
@@ -120,7 +125,7 @@ Bob's account will be debited **-1.0042 ETH**
Alice's account will be credited **+1.0 ETH**
-The miner processing the transaction will get **+0.0042 ETH**
+The base fee will be burned **-0.0042**
Gas is required for any smart contract interaction too.
@@ -137,7 +142,7 @@ Once the transaction has been submitted the following happens:
`0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017`
2. The transaction is then broadcast to the network and included in a pool with lots of other transactions.
3. A miner must pick your transaction and include it in a block in order to verify the transaction and consider it "successful".
- - You may end up waiting at this stage if the network is busy and miners aren't able to keep up. Miners will always prioritise transactions with higher `GASPRICE` because they get to keep the fees.
+ - You may end up waiting at this stage if the network is busy and miners aren't able to keep up.
4. Your transaction will also get a block confirmation number. This is the number of blocks created since the block that your transaction was included in. The higher the number, the greater the certainty that the transaction was processed and recognised by the network. This is because sometimes the block your transaction was included in may not have made it into the chain.
- The larger the block confirmation number the more immutable the transaction is. So for higher value transactions, more block confirmations may be desired.
From 70bf47352195cbf5e6610462263e19c498daaf9d Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Tue, 3 Aug 2021 22:51:53 +0100
Subject: [PATCH 10/38] Update gas page
---
src/content/developers/docs/gas/index.md | 30 ++++++++++++------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index bef7982ecb6..6a7fd11b3dd 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -42,9 +42,9 @@ This video offers a concise overview of gas and why it exists:
## After to the London update {#post-london}
-Starting with [the London update](/history/#london), every block has a base fee, the minimum per gas price for inclusion in this block, and a tip.
+Starting with [the London update](/history/#london), every block has a base fee, the minimum per gas price for inclusion in this block. Optionally, users can set a priority fee (tip).
-Calculating the total fee works as follows: `Gas units (limit) * (Base fee per unit + Tip per unit)`
+Calculating the total fee works as follows: `Gas units (limit) * (Base fee + Tip)`
Let’s say Jordan has to pay Taylor 1 ETH. In the transaction the gas limit is 21,000 units and the base fee is 100 gwei. Jordan includes a tip of 10 gwei.
Using the formula above we can calculate this as `21,000 * (100 + 10) = 2,310,000 gwei` or 0.0023 ETH.
@@ -55,7 +55,7 @@ Every block has a base fee which acts as a reserve price. To be eligible for inc
## Block Size {#block-size}
-EIP-1559 introduced variable-size blocks to Ethereum. Each block has a target size of 12.5 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 25 milion gas (2x target block size). An equilibrium block size of 12.5 million on average is achieved through the process of _tâtonnement_. This means if the block size is greater than the target block size, the base fee will increase. Similarly, if the block size is less than the target block size the base fee will decrease. The amount the base fee is adjusted by is proportional to how far from the target the block size is. [More on blocks](/developers/docs/blocks/).
+EIP-1559 introduced variable-size blocks to Ethereum. Each block has a target size of 15 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 30 milion gas (2x target block size). An equilibrium block size of 15 million on average is achieved through the process of _tâtonnement_. This means if the block size is greater than the target block size, the base fee will increase. Similarly, if the block size is less than the target block size the base fee will decrease. The amount the base fee is adjusted by is proportional to how far from the target the block size is. [More on blocks](/developers/docs/blocks/).
## Base Fees Continued {#base-fees-continued}
@@ -63,24 +63,24 @@ The base fee is calculated by a formula that compares the size of the previous b
| Block Number | Included Gas | Fee Increase | Current Base Fee |
| ------------ | -----------: | -----------: | ---------------: |
-| 1 | 12.5M | 0% | 100 gwei |
-| 2 | 25M | 0% | 100 gwei |
-| 3 | 25M | 12.5% | 112.5 gwei |
-| 4 | 25M | 12.5% | 126.5 gwei |
-| 5 | 25M | 12.5% | 142.4 gwei |
-| 6 | 25M | 12.5% | 160.2 gwei |
-| 7 | 25M | 12.5% | 180.2 gwei |
-| 8 | 25M | 12.5% | 202.8 gwei |
+| 1 | 15M | 0% | 100 gwei |
+| 2 | 30M | 0% | 100 gwei |
+| 3 | 30M | 12.5% | 112.5 gwei |
+| 4 | 30M | 12.5% | 126.5 gwei |
+| 5 | 30M | 12.5% | 142.4 gwei |
+| 6 | 30M | 12.5% | 160.2 gwei |
+| 7 | 30M | 12.5% | 180.2 gwei |
+| 8 | 30M | 12.5% | 202.8 gwei |
Relative to the pre-London gas auction market, this transaction-fee-mechanism change causes fee prediction to be more reliable. Following the table above - to create a transaction on block number 9, a wallet will let the user know with certainty that the **maximum base fee** to be added to the next block is `current base fee * 112.5%` or `202.8 gwei * 112.5% = 256.8 gwei`.
## Tips {#tips}
-As the base fee (which in the previous transaction fee mechanism would have gone to the miner) is burned, a tip is used to incentivise miners to include a transaction in the block they are mining. Without tips, it would be economically viable for miners to mine empty blocks, as they would receive the same block reward. Under normal conditions a small tip provides miners a minimal incentive to include a transaction and high tips can provide incentive for special treatment.
+As the base fee (which in the previous transaction fee mechanism would have gone to the miner) is burned, a priority fee (tip) is used to incentivise miners to include a transaction in the block they are mining. Without tips, it would be economically viable for miners to mine empty blocks, as they would receive the same block reward. Under normal conditions a small tip provides miners a minimal incentive to include a transaction and high tips can provide incentive for special treatment.
-## Fee Cap {#feecap}
+## Max Fee {#maxfee}
-To execute a transaction on the network users are able to specify a maximum limit they are willing to pay for their transaction to be executed. This optional parameter is known as a `fee cap`. In order for a transaction to be executed the fee cap must exceed the sum of the base fee and the tip.
+To execute a transaction on the network users are able to specify a maximum limit they are willing to pay for their transaction to be executed. This optional parameter is known as the `maxFeePerGas`. In order for a transaction to be executed the max fee must exceed the sum of the base fee and the tip.
## The London update {#gas-price-london-update}
@@ -102,7 +102,7 @@ Continue down the rabbit hole with these [EIP-1559 Resources](https://hackmd.io/
In short, gas fees help keep the Ethereum network secure. By requiring a fee for every computation executed on the network, we prevent bad actors from spamming the network. In order to prevent accidental or hostile infinite loops or other computational wastage in code, each transaction is required to set a limit to how many computational steps of code execution it can use. The fundamental unit of computation is "gas".
-Although a transaction includes a limit, any gas not used in a transaction is returned to the user (i.e `fee cap - (base fee + tip)` is returned).
+Although a transaction includes a limit, any gas not used in a transaction is returned to the user (i.e `max fee - (base fee + tip)` is returned).
![Diagram showing how unused gas is refunded](../transactions/gas-tx.png)
_Diagram adapted from [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_
From 42c62a276ab49d93dae59adb9a0a3e2cab6d017b Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Tue, 3 Aug 2021 22:52:58 +0100
Subject: [PATCH 11/38] Add internal link to London Update on blocks page
---
src/content/developers/docs/blocks/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/developers/docs/blocks/index.md b/src/content/developers/docs/blocks/index.md
index 0c10da6b2c4..7999131a238 100644
--- a/src/content/developers/docs/blocks/index.md
+++ b/src/content/developers/docs/blocks/index.md
@@ -57,7 +57,7 @@ Proof of work means the following:
## Block size {#block-size}
-A final important note is that, as of the London Upgrade, blocks themselves are no longer bounded in size. Each block has a target size of 12.5 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 25 milion gas (2x target block size). The total amount of gas expended by all transactions in the block must be less than the block gas limit. This is important because it ensures that blocks can’t be arbitrarily large. If blocks could be arbitrarily large, then less performant full nodes would gradually stop being able to keep up with the network due to space and speed requirements.
+A final important note is that, as of with [the London update](/history/#london), blocks themselves are no longer bounded in size. Each block has a target size of 15 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 30 milion gas (2x target block size). The total amount of gas expended by all transactions in the block must be less than the block gas limit. This is important because it ensures that blocks can’t be arbitrarily large. If blocks could be arbitrarily large, then less performant full nodes would gradually stop being able to keep up with the network due to space and speed requirements.
## Further reading {#further-reading}
From 7d9288846fc379783cb5342b5e2aa3722f61967e Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Tue, 3 Aug 2021 22:53:42 +0100
Subject: [PATCH 12/38] Wording on gas page: London upgrade to london update
---
src/content/developers/docs/gas/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 6a7fd11b3dd..3166c0dd69b 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -24,7 +24,7 @@ In essence, gas fees are paid in Ethereum's native currency, ether (ETH). Gas pr
## Prior to the London update {#pre-london}
-The way transaction fees on the Ethereum network are calculated changed during the London upgrade. Here is a recap of how things used to work:
+The way transaction fees on the Ethereum network are calculated changed during the London update. Here is a recap of how things used to work:
Let's say Alice had to pay Bob 1ETH.
In the transaction the gas limit is 21,000 units and the gas price is 200 gwei.
From c57cbedcb55eeb41e14201304a5fc2961f58fc19 Mon Sep 17 00:00:00 2001
From: Joshua <62268199+minimalsm@users.noreply.github.com>
Date: Tue, 3 Aug 2021 23:33:38 +0100
Subject: [PATCH 13/38] Remove gasPrice from Transactions page
---
src/content/developers/docs/transactions/index.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/content/developers/docs/transactions/index.md b/src/content/developers/docs/transactions/index.md
index d22202ca3f3..fd853b2592e 100644
--- a/src/content/developers/docs/transactions/index.md
+++ b/src/content/developers/docs/transactions/index.md
@@ -33,7 +33,6 @@ A submitted transaction includes the following information:
- `value` – amount of ETH to transfer from sender to recipient (in WEI, a denomination of ETH)
- `data` – optional field to include arbitrary data
- `gasLimit` – the maximum amount of gas units that can be consumed by the transaction. Units of gas represent computational steps
-- `gasPrice` – the fee the sender pays per unit of gas
- `maxPriorityFeePerGas` - the maximum amount of gas to be included as a tip to the miner
- `maxFeePerGas` - the maximum amount of gas willing to be paid for the transaction (inclusive of `baseFeePerGas` and `maxPriorityFeePerGas`)
From 791b37b16f69dbb578e88cff1a5f77b12306e01a Mon Sep 17 00:00:00 2001
From: Joshua <62268199+minimalsm@users.noreply.github.com>
Date: Wed, 4 Aug 2021 00:18:21 +0100
Subject: [PATCH 14/38] Update src/content/developers/docs/gas/index.md
Co-authored-by: Sam Richards
---
src/content/developers/docs/gas/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 3166c0dd69b..abf975501e0 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -34,7 +34,7 @@ i.e `21,000 * 200 = 4,200,000 gwei` or 0.0042 ETH
Now, when Alice sent the money, 1.0042 ETH will be deducted from Alice's account.
Bob would be credited 1.0000 ETH.
-Miner got 0.0042 ETH.
+Miner would receive 0.0042 ETH.
This video offers a concise overview of gas and why it exists:
From cf6f6d80a1c3d73e4f16cfa84b69a7c85e380d3a Mon Sep 17 00:00:00 2001
From: Joshua <62268199+minimalsm@users.noreply.github.com>
Date: Wed, 4 Aug 2021 00:18:34 +0100
Subject: [PATCH 15/38] Update src/content/developers/docs/gas/index.md
Co-authored-by: Sam Richards
---
src/content/developers/docs/gas/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index abf975501e0..ff8d8d111d5 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -32,7 +32,7 @@ In the transaction the gas limit is 21,000 units and the gas price is 200 gwei.
Total fee would have been: `Gas units (limit) * Gas price per unit`
i.e `21,000 * 200 = 4,200,000 gwei` or 0.0042 ETH
-Now, when Alice sent the money, 1.0042 ETH will be deducted from Alice's account.
+When Alice sent the money, 1.0042 ETH would be deducted from Alice's account.
Bob would be credited 1.0000 ETH.
Miner would receive 0.0042 ETH.
From 8e2510ea1ae84905863a58131f0921a7ff008eaa Mon Sep 17 00:00:00 2001
From: Joshua <62268199+minimalsm@users.noreply.github.com>
Date: Wed, 4 Aug 2021 00:18:41 +0100
Subject: [PATCH 16/38] Update src/content/developers/docs/gas/index.md
Co-authored-by: Sam Richards
---
src/content/developers/docs/gas/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index ff8d8d111d5..04bbff90bcd 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -26,7 +26,7 @@ In essence, gas fees are paid in Ethereum's native currency, ether (ETH). Gas pr
The way transaction fees on the Ethereum network are calculated changed during the London update. Here is a recap of how things used to work:
-Let's say Alice had to pay Bob 1ETH.
+Let's say Alice had to pay Bob 1 ETH.
In the transaction the gas limit is 21,000 units and the gas price is 200 gwei.
Total fee would have been: `Gas units (limit) * Gas price per unit`
From 3284f0b9430dea2d5b3d965ed6a8ee82eff5f5e8 Mon Sep 17 00:00:00 2001
From: Joshua <62268199+minimalsm@users.noreply.github.com>
Date: Wed, 4 Aug 2021 00:18:52 +0100
Subject: [PATCH 17/38] Update src/content/developers/docs/gas/index.md
Co-authored-by: Sam Richards
---
src/content/developers/docs/gas/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 04bbff90bcd..84e1525257e 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -24,7 +24,7 @@ In essence, gas fees are paid in Ethereum's native currency, ether (ETH). Gas pr
## Prior to the London update {#pre-london}
-The way transaction fees on the Ethereum network are calculated changed during the London update. Here is a recap of how things used to work:
+The way transaction fees on the Ethereum network are calculated changed during the London network upgrade. Here is a recap of how things used to work:
Let's say Alice had to pay Bob 1 ETH.
In the transaction the gas limit is 21,000 units and the gas price is 200 gwei.
From 1d1a0d69612bd29ce9e2c71b9f52d516f024c69a Mon Sep 17 00:00:00 2001
From: Joshua <62268199+minimalsm@users.noreply.github.com>
Date: Wed, 4 Aug 2021 00:19:01 +0100
Subject: [PATCH 18/38] Update src/content/developers/docs/gas/index.md
Co-authored-by: Sam Richards
---
src/content/developers/docs/gas/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 84e1525257e..e1b6ae9347b 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -20,7 +20,7 @@ Since each Ethereum transaction requires computational resources to execute, eac
![A diagram showing where gas is needed in EVM operations](./gas.png)
_Diagram adapted from [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_
-In essence, gas fees are paid in Ethereum's native currency, ether (ETH). Gas prices are denoted in gwei, which itself is a denomination of ETH - each gwei is equal to 0.000000001 ETH (10-9 ETH). For example, instead of saying that your gas costs 0.000000001 ether, you can say your gas costs 1 gwei.
+Gas fees are paid in Ethereum's native currency, ether (ETH). Gas prices are denoted in gwei, which itself is a denomination of ETH - each gwei is equal to 0.000000001 ETH (10-9 ETH). For example, instead of saying that your gas costs 0.000000001 ether, you can say your gas costs 1 gwei.
## Prior to the London update {#pre-london}
From 93d30890904c70668e8fa805690d62b6d7da465d Mon Sep 17 00:00:00 2001
From: Joshua <62268199+minimalsm@users.noreply.github.com>
Date: Wed, 4 Aug 2021 00:19:15 +0100
Subject: [PATCH 19/38] Update src/content/developers/docs/gas/index.md
Co-authored-by: Sam Richards
---
src/content/developers/docs/gas/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index e1b6ae9347b..e1e2416d3e2 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -22,7 +22,7 @@ _Diagram adapted from [Ethereum EVM illustrated](https://takenobu-hs.github.io/d
Gas fees are paid in Ethereum's native currency, ether (ETH). Gas prices are denoted in gwei, which itself is a denomination of ETH - each gwei is equal to 0.000000001 ETH (10-9 ETH). For example, instead of saying that your gas costs 0.000000001 ether, you can say your gas costs 1 gwei.
-## Prior to the London update {#pre-london}
+## Prior to the London upgrade {#pre-london}
The way transaction fees on the Ethereum network are calculated changed during the London network upgrade. Here is a recap of how things used to work:
From e270160390fa0ee05b0361fd937347ab8976e351 Mon Sep 17 00:00:00 2001
From: Joshua <62268199+minimalsm@users.noreply.github.com>
Date: Wed, 4 Aug 2021 00:19:24 +0100
Subject: [PATCH 20/38] Update src/content/developers/docs/gas/index.md
Co-authored-by: Sam Richards
---
src/content/developers/docs/gas/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index e1e2416d3e2..6d87feff3aa 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -40,7 +40,7 @@ This video offers a concise overview of gas and why it exists:
-## After to the London update {#post-london}
+## After to the London upgrade {#post-london}
Starting with [the London update](/history/#london), every block has a base fee, the minimum per gas price for inclusion in this block. Optionally, users can set a priority fee (tip).
From 352495d2edcccb09209def916c9612753bfdc357 Mon Sep 17 00:00:00 2001
From: Joshua <62268199+minimalsm@users.noreply.github.com>
Date: Wed, 4 Aug 2021 13:38:56 +0100
Subject: [PATCH 21/38] Update src/content/developers/docs/gas/index.md
Co-authored-by: Sam Richards
---
src/content/developers/docs/gas/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 6d87feff3aa..49b51a001d7 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -42,7 +42,7 @@ This video offers a concise overview of gas and why it exists:
## After to the London upgrade {#post-london}
-Starting with [the London update](/history/#london), every block has a base fee, the minimum per gas price for inclusion in this block. Optionally, users can set a priority fee (tip).
+Starting with [the London network upgrade](/history/#london), every block has a base fee - the minimum per gas price for inclusion in this block. Optionally, users can set a priority fee (tip).
Calculating the total fee works as follows: `Gas units (limit) * (Base fee + Tip)`
From 6b86af77a89839fcde17410f6d48180d7e4cf483 Mon Sep 17 00:00:00 2001
From: Joshua <62268199+minimalsm@users.noreply.github.com>
Date: Wed, 4 Aug 2021 13:42:21 +0100
Subject: [PATCH 22/38] Update src/content/developers/docs/gas/index.md
Co-authored-by: Sam Richards
---
src/content/developers/docs/gas/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 49b51a001d7..08b94021d5a 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -44,7 +44,7 @@ This video offers a concise overview of gas and why it exists:
Starting with [the London network upgrade](/history/#london), every block has a base fee - the minimum per gas price for inclusion in this block. Optionally, users can set a priority fee (tip).
-Calculating the total fee works as follows: `Gas units (limit) * (Base fee + Tip)`
+Calculating the total transaction fee works as follows: `Gas units (limit) * (Base fee + Tip)`
Let’s say Jordan has to pay Taylor 1 ETH. In the transaction the gas limit is 21,000 units and the base fee is 100 gwei. Jordan includes a tip of 10 gwei.
Using the formula above we can calculate this as `21,000 * (100 + 10) = 2,310,000 gwei` or 0.0023 ETH.
From 14d8ab06ce597c515b9702c4581f0ab13e33b038 Mon Sep 17 00:00:00 2001
From: Joshua <62268199+minimalsm@users.noreply.github.com>
Date: Wed, 4 Aug 2021 13:52:53 +0100
Subject: [PATCH 23/38] Update src/content/developers/docs/gas/index.md
Co-authored-by: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
---
src/content/developers/docs/gas/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 08b94021d5a..d35ce698bc3 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -55,7 +55,7 @@ Every block has a base fee which acts as a reserve price. To be eligible for inc
## Block Size {#block-size}
-EIP-1559 introduced variable-size blocks to Ethereum. Each block has a target size of 15 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 30 milion gas (2x target block size). An equilibrium block size of 15 million on average is achieved through the process of _tâtonnement_. This means if the block size is greater than the target block size, the base fee will increase. Similarly, if the block size is less than the target block size the base fee will decrease. The amount the base fee is adjusted by is proportional to how far from the target the block size is. [More on blocks](/developers/docs/blocks/).
+EIP-1559 introduced variable-size blocks to Ethereum. Each block has a target size of 15 million gas but the size of blocks will increase or decrease in accordance with network demand, up until the block limit of 30 million gas (2x the target block size). The protocol achieves an equilibrium block size of 15 million on average through the process of _tâtonnement_. This means if a block size is greater than the target block size, the protocol will increase the base fee for the following block. Similarly, if a block size is less than the target block size, the protocol will decrease the base fee. The amount the base fee is adjusted by is proportional to how far from the target the block size is. [More on blocks](/developers/docs/blocks/).
## Base Fees Continued {#base-fees-continued}
From 0fa9a5ed5982798f000dd8841f46c28b953d55aa Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Wed, 4 Aug 2021 14:28:14 +0100
Subject: [PATCH 24/38] Update Whats in a block to camelCase
---
src/content/developers/docs/blocks/index.md | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/content/developers/docs/blocks/index.md b/src/content/developers/docs/blocks/index.md
index 7999131a238..64bb0775974 100644
--- a/src/content/developers/docs/blocks/index.md
+++ b/src/content/developers/docs/blocks/index.md
@@ -44,16 +44,16 @@ Proof of work means the following:
## What's in a block? {#block-anatomy}
-- Timestamp – the time when the block was mined.
-- Block number – the length of the blockchain in blocks.
-- Base Fee Per Gas - the fee per gas required for a transaction to be included in the block.
-- Burnt Fees - the amount of ETH from base fees burnt by the block.
-- Difficulty – the effort required to mine the block.
+- timestamp – the time when the block was mined.
+- blockNumber – the length of the blockchain in blocks.
+- baseFeePerGas - the fee per gas required for a transaction to be included in the block.
+- burntFees - the amount of ETH from base fees burnt by the block.
+- difficulty – the effort required to mine the block.
- mixHash – a unique identifier for that block.
-- A parent hash – the unique identifier for the block that came before (this is how blocks are linked in a chain).
-- Transactions list – the transactions included in the block.
-- State root – the entire state of the system: account balances, contract storage, contract code and account nonces are inside.
-- Nonce – a hash that, when combined with the mixHash, proves that the block has gone through [proof of work](/developers/docs/consensus-mechanisms/pow/).
+- parentHash – the unique identifier for the block that came before (this is how blocks are linked in a chain).
+- transactions – the transactions included in the block.
+- stateRoot – the entire state of the system: account balances, contract storage, contract code and account nonces are inside.
+- nonce – a hash that, when combined with the mixHash, proves that the block has gone through [proof of work](/developers/docs/consensus-mechanisms/pow/).
## Block size {#block-size}
From d2b3328b760fff026c3469689013586a12b0d00d Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Wed, 4 Aug 2021 14:29:00 +0100
Subject: [PATCH 25/38] Update Whats in a block to camelCase
---
src/content/developers/docs/blocks/index.md | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/content/developers/docs/blocks/index.md b/src/content/developers/docs/blocks/index.md
index 64bb0775974..d3a109322dc 100644
--- a/src/content/developers/docs/blocks/index.md
+++ b/src/content/developers/docs/blocks/index.md
@@ -44,16 +44,16 @@ Proof of work means the following:
## What's in a block? {#block-anatomy}
-- timestamp – the time when the block was mined.
-- blockNumber – the length of the blockchain in blocks.
-- baseFeePerGas - the fee per gas required for a transaction to be included in the block.
-- burntFees - the amount of ETH from base fees burnt by the block.
-- difficulty – the effort required to mine the block.
-- mixHash – a unique identifier for that block.
-- parentHash – the unique identifier for the block that came before (this is how blocks are linked in a chain).
-- transactions – the transactions included in the block.
-- stateRoot – the entire state of the system: account balances, contract storage, contract code and account nonces are inside.
-- nonce – a hash that, when combined with the mixHash, proves that the block has gone through [proof of work](/developers/docs/consensus-mechanisms/pow/).
+- `timestamp` – the time when the block was mined.
+- `blockNumber` – the length of the blockchain in blocks.
+- `baseFeePerGas` - the fee per gas required for a transaction to be included in the block.
+- `burntFees` - the amount of ETH from base fees burnt by the block.
+- `difficulty` – the effort required to mine the block.
+- `mixHash` – a unique identifier for that block.
+- `parentHash` – the unique identifier for the block that came before (this is how blocks are linked in a chain).
+- `transactions` – the transactions included in the block.
+- `stateRoot` – the entire state of the system: account balances, contract storage, contract code and account nonces are inside.
+- `nonce` – a hash that, when combined with the mixHash, proves that the block has gone through [proof of work](/developers/docs/consensus-mechanisms/pow/).
## Block size {#block-size}
From ad48b9b2fb08bd17428df5bfdc4ac1208f7da071 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Wed, 4 Aug 2021 14:31:14 +0100
Subject: [PATCH 26/38] Update phrase wording on gas page
---
src/content/developers/docs/gas/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index d35ce698bc3..2dee2e8777f 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -42,7 +42,7 @@ This video offers a concise overview of gas and why it exists:
## After to the London upgrade {#post-london}
-Starting with [the London network upgrade](/history/#london), every block has a base fee - the minimum per gas price for inclusion in this block. Optionally, users can set a priority fee (tip).
+Starting with [the London network upgrade](/history/#london), every block has a base fee - the minimum price per unit of gas for inclusion in this block. Optionally, users can set a priority fee (tip).
Calculating the total transaction fee works as follows: `Gas units (limit) * (Base fee + Tip)`
From 37738a12ca61356120f2bdb1e75de868796f82e7 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Wed, 4 Aug 2021 14:38:05 +0100
Subject: [PATCH 27/38] Change London Upgrade header to EIP-1559 and reword
---
src/content/developers/docs/gas/index.md | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 2dee2e8777f..df5b4c6c364 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -82,10 +82,9 @@ As the base fee (which in the previous transaction fee mechanism would have gone
To execute a transaction on the network users are able to specify a maximum limit they are willing to pay for their transaction to be executed. This optional parameter is known as the `maxFeePerGas`. In order for a transaction to be executed the max fee must exceed the sum of the base fee and the tip.
-## The London update {#gas-price-london-update}
+## EIP-1559 {#eip-1559}
-The post-London transaction fee mechanism is more complicated than the simple gas price auction, but it has the advantage of making gas fees more predictable, as well as making ETH more
-valuable by removing some of it from circulation. The base fee functions as a [second price auction](https://oko.uk/blog/first-price-vs-second-price-auctions),
+The implementation of [EIP-1559](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md) in the London Upgrade makes the transaction fee mechanism more complicated than the simple gas price auction, but it has the advantage of making gas fees more predictable, as well as making ETH more valuable by removing some of it from circulation. The base fee functions as a [second price auction](https://oko.uk/blog/first-price-vs-second-price-auctions),
which is more efficient than the previous mechanism that is a first price auction. Users can submit transactions with a much higher tip, corresponding
to how much they need the transaction to happen, without having to worry that they will be overcharged.
From ae2c5994d5686b737f9d7f8895c6340ddb2c5478 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Wed, 4 Aug 2021 14:59:19 +0100
Subject: [PATCH 28/38] Reorder base fee and block size content, refactor block
size paragraph
---
src/content/developers/docs/gas/index.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index df5b4c6c364..a6299beb6a7 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -49,15 +49,15 @@ Calculating the total transaction fee works as follows: `Gas units (limit) * (Ba
Let’s say Jordan has to pay Taylor 1 ETH. In the transaction the gas limit is 21,000 units and the base fee is 100 gwei. Jordan includes a tip of 10 gwei.
Using the formula above we can calculate this as `21,000 * (100 + 10) = 2,310,000 gwei` or 0.0023 ETH.
-## Base Fees {#base-fees}
+## Block Size {#block-size}
-Every block has a base fee which acts as a reserve price. To be eligible for inclusion in a block the offered price per gas must at least equal the base fee. The base fee is calculated independently of the current block and is instead determined by the blocks before it - making transaction fees more predictable for users. When the block is mined this base fee is "burned", removing it from circulation.
+Before the London Upgrade, Ethereum had fixed-sized blocks. In times of high network demand, these blocks operated at total capacity. As a result, users often had to wait for high demand to reduce to get included in a block, which led to a poor user experience.
-## Block Size {#block-size}
+The London Upgrade introduced variable-size blocks to Ethereum. Each block has a target size of 15 million gas but, the size of blocks will increase or decrease in accordance with network demand, up until the block limit of 30 million gas (2x the target block size). The protocol achieves an equilibrium block size of 15 million on average through the process of _tâtonnement_. This means if the block size is greater than the target block size, the protocol will increase the base fee for the following block. Similarly, the protocol will decrease the base fee if the block size is less than the target block size. The amount the base fee is adjusted by is proportional to how far from the current block size is from the target. [More on blocks](/developers/docs/blocks/).
-EIP-1559 introduced variable-size blocks to Ethereum. Each block has a target size of 15 million gas but the size of blocks will increase or decrease in accordance with network demand, up until the block limit of 30 million gas (2x the target block size). The protocol achieves an equilibrium block size of 15 million on average through the process of _tâtonnement_. This means if a block size is greater than the target block size, the protocol will increase the base fee for the following block. Similarly, if a block size is less than the target block size, the protocol will decrease the base fee. The amount the base fee is adjusted by is proportional to how far from the target the block size is. [More on blocks](/developers/docs/blocks/).
+## Base Fees {#base-fees}
-## Base Fees Continued {#base-fees-continued}
+Every block has a base fee which acts as a reserve price. To be eligible for inclusion in a block the offered price per gas must at least equal the base fee. The base fee is calculated independently of the current block and is instead determined by the blocks before it - making transaction fees more predictable for users. When the block is mined this base fee is "burned", removing it from circulation.
The base fee is calculated by a formula that compares the size of the previous block (the amount of gas used for all the transactions) with the target size. The base fee will increase by a maximum of 12.5% per block if the target block size is exceeded. This exponential growth makes it economically non-viable for block size to remain high indefinitely.
From efb358b1af91701ae9bbc4277b5456cdaf333e35 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Wed, 4 Aug 2021 15:19:52 +0100
Subject: [PATCH 29/38] Refactor Tips section
---
src/content/developers/docs/gas/index.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index a6299beb6a7..25ae61a9f87 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -76,7 +76,9 @@ Relative to the pre-London gas auction market, this transaction-fee-mechanism ch
## Tips {#tips}
-As the base fee (which in the previous transaction fee mechanism would have gone to the miner) is burned, a priority fee (tip) is used to incentivise miners to include a transaction in the block they are mining. Without tips, it would be economically viable for miners to mine empty blocks, as they would receive the same block reward. Under normal conditions a small tip provides miners a minimal incentive to include a transaction and high tips can provide incentive for special treatment.
+Before the London Upgrade, miners would receive the total gas fee from any transaction included in a block.
+
+With the new base fee getting burned, the London Upgrade introduced a priority fee (tip) to incentivize miners to include a transaction in the block. Without tips, miners would find it economically viable to mine empty blocks, as they would receive the same block reward. Under normal conditions, a small tip provides miners a minimal incentive to include a transaction. For transactions that need to get preferentially executed ahead of other transactions in the same block, a higher tip will be necessary to attempt to outbid competing transactions.
## Max Fee {#maxfee}
From 9c8dc15ad0431244148d68bb0f76a2456fe8ce19 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Wed, 4 Aug 2021 15:36:02 +0100
Subject: [PATCH 30/38] Refactor on gas section
---
src/content/developers/docs/transactions/index.md | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/content/developers/docs/transactions/index.md b/src/content/developers/docs/transactions/index.md
index fd853b2592e..bc5051af3cd 100644
--- a/src/content/developers/docs/transactions/index.md
+++ b/src/content/developers/docs/transactions/index.md
@@ -112,10 +112,10 @@ With the signature hash, the transaction can be cryptographically proven that it
As mentioned, transactions cost [gas](/developers/docs/gas/) to execute. Simple transfer transactions require 21000 units of Gas.
-So for Bob to send Alice 1 ETH at a `baseFeePerGas` of 200 gwei and `maxPriorityFeePerGas` of 1 gwei, Bob will need to pay the following fee:
+So for Bob to send Alice 1 ETH at a `baseFeePerGas` of 190 gwei and `maxPriorityFeePerGas` of 10 gwei, Bob will need to pay the following fee:
```
-(200 + 1) * 21000 = 4,221,100 gwei
+(190 + 10) * 21000 = 4,200,000 gwei
--or--
0.0042 ETH
```
@@ -124,7 +124,9 @@ Bob's account will be debited **-1.0042 ETH**
Alice's account will be credited **+1.0 ETH**
-The base fee will be burned **-0.0042**
+The base fee will be burned **-0.003735 ETH**
+
+Miner keeps the tip **+0.000197**
Gas is required for any smart contract interaction too.
From c077cad5853ad449b610e8db37b8cfc627bdb8e0 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Wed, 4 Aug 2021 15:36:46 +0100
Subject: [PATCH 31/38] Clarified After the London Upgrade section
---
src/content/developers/docs/gas/index.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 25ae61a9f87..d01b21b3e49 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -40,9 +40,9 @@ This video offers a concise overview of gas and why it exists:
-## After to the London upgrade {#post-london}
+## After the London Upgrade {#post-london}
-Starting with [the London network upgrade](/history/#london), every block has a base fee - the minimum price per unit of gas for inclusion in this block. Optionally, users can set a priority fee (tip).
+Starting with [the London network upgrade](/history/#london), every block has a base fee, the minimum price per unit of gas for inclusion in this block, calculated by the network protocol based on network demand. Optionally, users can also set a priority fee (tip).
Calculating the total transaction fee works as follows: `Gas units (limit) * (Base fee + Tip)`
From 5fc90c62694490247ff0be4b01562fade3ca1980 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Wed, 4 Aug 2021 15:37:24 +0100
Subject: [PATCH 32/38] Refactor on gas section
---
src/content/developers/docs/transactions/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/developers/docs/transactions/index.md b/src/content/developers/docs/transactions/index.md
index bc5051af3cd..b42c9db9c3b 100644
--- a/src/content/developers/docs/transactions/index.md
+++ b/src/content/developers/docs/transactions/index.md
@@ -126,7 +126,7 @@ Alice's account will be credited **+1.0 ETH**
The base fee will be burned **-0.003735 ETH**
-Miner keeps the tip **+0.000197**
+Miner keeps the tip **+0.000197 ETH**
Gas is required for any smart contract interaction too.
From 8f63cb2f4ea2229cc38f617824fe5a9b995f0e35 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Wed, 4 Aug 2021 15:57:02 +0100
Subject: [PATCH 33/38] Add example of new transactions
---
src/content/developers/docs/gas/index.md | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index d01b21b3e49..fbbbe907eb1 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -47,8 +47,14 @@ Starting with [the London network upgrade](/history/#london), every block has a
Calculating the total transaction fee works as follows: `Gas units (limit) * (Base fee + Tip)`
Let’s say Jordan has to pay Taylor 1 ETH. In the transaction the gas limit is 21,000 units and the base fee is 100 gwei. Jordan includes a tip of 10 gwei.
+
Using the formula above we can calculate this as `21,000 * (100 + 10) = 2,310,000 gwei` or 0.0023 ETH.
+When Jordan sends the money, 1.0023 ETH will be deducted from Jordan's account.
+Taylor will be credited 1.0000 ETH.
+Miner receives the tip of 0.000195 ETH.
+Base fee of 0.001953 ETH is burned.
+
## Block Size {#block-size}
Before the London Upgrade, Ethereum had fixed-sized blocks. In times of high network demand, these blocks operated at total capacity. As a result, users often had to wait for high demand to reduce to get included in a block, which led to a poor user experience.
From a092cf20927e312d3b153159df2432d6ea2c62ec Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Wed, 4 Aug 2021 16:14:10 +0100
Subject: [PATCH 34/38] Add Intro to After London section
---
src/content/developers/docs/gas/index.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index fbbbe907eb1..46b41555350 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -42,7 +42,9 @@ This video offers a concise overview of gas and why it exists:
## After the London Upgrade {#post-london}
-Starting with [the London network upgrade](/history/#london), every block has a base fee, the minimum price per unit of gas for inclusion in this block, calculated by the network protocol based on network demand. Optionally, users can also set a priority fee (tip).
+[The London Upgrade](/history/#london) aims to make transacting on Ethereum more predictable for users by overhauling Ethereum's transaction-fee-mechanism. The high-level benefits introduced by this change include better transaction fee estimation, generally quicker transaction inclusion, and reducing the ETH rate of inflation by burning a percentage of transaction fees.
+
+Starting with the London network upgrade, every block has a base fee, the minimum price per unit of gas for inclusion in this block, calculated by the network protocol based on network demand. Optionally, users can also set a priority fee (tip).
Calculating the total transaction fee works as follows: `Gas units (limit) * (Base fee + Tip)`
From 57d21ed7aba705d457e6b102843286abaef272e8 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Wed, 4 Aug 2021 16:28:48 +0100
Subject: [PATCH 35/38] Add refund information
---
src/content/developers/docs/gas/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 46b41555350..e167bcc010d 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -90,7 +90,7 @@ With the new base fee getting burned, the London Upgrade introduced a priority f
## Max Fee {#maxfee}
-To execute a transaction on the network users are able to specify a maximum limit they are willing to pay for their transaction to be executed. This optional parameter is known as the `maxFeePerGas`. In order for a transaction to be executed the max fee must exceed the sum of the base fee and the tip.
+To execute a transaction on the network users are able to specify a maximum limit they are willing to pay for their transaction to be executed. This optional parameter is known as the `maxFeePerGas`. In order for a transaction to be executed the max fee must exceed the sum of the base fee and the tip. The transaction sender is refunded the difference between the max fee and the sum of the base fee and tip.
## EIP-1559 {#eip-1559}
From d9388ee6b76d1775f5b0c5f31b605e3a7712d59d Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Wed, 4 Aug 2021 16:33:10 +0100
Subject: [PATCH 36/38] Move three sections to subsections of After London
Upgrade
---
src/content/developers/docs/gas/index.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index e167bcc010d..19b99960b75 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -57,13 +57,13 @@ Taylor will be credited 1.0000 ETH.
Miner receives the tip of 0.000195 ETH.
Base fee of 0.001953 ETH is burned.
-## Block Size {#block-size}
+### Block Size {#block-size}
Before the London Upgrade, Ethereum had fixed-sized blocks. In times of high network demand, these blocks operated at total capacity. As a result, users often had to wait for high demand to reduce to get included in a block, which led to a poor user experience.
The London Upgrade introduced variable-size blocks to Ethereum. Each block has a target size of 15 million gas but, the size of blocks will increase or decrease in accordance with network demand, up until the block limit of 30 million gas (2x the target block size). The protocol achieves an equilibrium block size of 15 million on average through the process of _tâtonnement_. This means if the block size is greater than the target block size, the protocol will increase the base fee for the following block. Similarly, the protocol will decrease the base fee if the block size is less than the target block size. The amount the base fee is adjusted by is proportional to how far from the current block size is from the target. [More on blocks](/developers/docs/blocks/).
-## Base Fees {#base-fees}
+### Base Fees {#base-fees}
Every block has a base fee which acts as a reserve price. To be eligible for inclusion in a block the offered price per gas must at least equal the base fee. The base fee is calculated independently of the current block and is instead determined by the blocks before it - making transaction fees more predictable for users. When the block is mined this base fee is "burned", removing it from circulation.
@@ -82,13 +82,13 @@ The base fee is calculated by a formula that compares the size of the previous b
Relative to the pre-London gas auction market, this transaction-fee-mechanism change causes fee prediction to be more reliable. Following the table above - to create a transaction on block number 9, a wallet will let the user know with certainty that the **maximum base fee** to be added to the next block is `current base fee * 112.5%` or `202.8 gwei * 112.5% = 256.8 gwei`.
-## Tips {#tips}
+### Tips {#tips}
Before the London Upgrade, miners would receive the total gas fee from any transaction included in a block.
With the new base fee getting burned, the London Upgrade introduced a priority fee (tip) to incentivize miners to include a transaction in the block. Without tips, miners would find it economically viable to mine empty blocks, as they would receive the same block reward. Under normal conditions, a small tip provides miners a minimal incentive to include a transaction. For transactions that need to get preferentially executed ahead of other transactions in the same block, a higher tip will be necessary to attempt to outbid competing transactions.
-## Max Fee {#maxfee}
+### Max Fee {#maxfee}
To execute a transaction on the network users are able to specify a maximum limit they are willing to pay for their transaction to be executed. This optional parameter is known as the `maxFeePerGas`. In order for a transaction to be executed the max fee must exceed the sum of the base fee and the tip. The transaction sender is refunded the difference between the max fee and the sum of the base fee and tip.
From 03f06ca61bafa27b0d2db39798ba340248e05291 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Wed, 4 Aug 2021 20:30:56 +0100
Subject: [PATCH 37/38] Remove burnt fees from block anatomy
---
src/content/developers/docs/blocks/index.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/content/developers/docs/blocks/index.md b/src/content/developers/docs/blocks/index.md
index d3a109322dc..5a1bdfbc7e6 100644
--- a/src/content/developers/docs/blocks/index.md
+++ b/src/content/developers/docs/blocks/index.md
@@ -47,7 +47,6 @@ Proof of work means the following:
- `timestamp` – the time when the block was mined.
- `blockNumber` – the length of the blockchain in blocks.
- `baseFeePerGas` - the fee per gas required for a transaction to be included in the block.
-- `burntFees` - the amount of ETH from base fees burnt by the block.
- `difficulty` – the effort required to mine the block.
- `mixHash` – a unique identifier for that block.
- `parentHash` – the unique identifier for the block that came before (this is how blocks are linked in a chain).
From 6145f531f4e2e32123c1dc1c832d60db8982ebf3 Mon Sep 17 00:00:00 2001
From: Joshua <30259508@cityofglacol.ac.uk>
Date: Wed, 4 Aug 2021 21:14:22 +0100
Subject: [PATCH 38/38] Add more suggested changes
---
src/content/developers/docs/blocks/index.md | 4 ++--
src/content/developers/docs/gas/index.md | 24 +++++++++++++++------
2 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/src/content/developers/docs/blocks/index.md b/src/content/developers/docs/blocks/index.md
index 5a1bdfbc7e6..dd2415ec041 100644
--- a/src/content/developers/docs/blocks/index.md
+++ b/src/content/developers/docs/blocks/index.md
@@ -46,7 +46,7 @@ Proof of work means the following:
- `timestamp` – the time when the block was mined.
- `blockNumber` – the length of the blockchain in blocks.
-- `baseFeePerGas` - the fee per gas required for a transaction to be included in the block.
+- `baseFeePerGas` - the minimum fee per gas required for a transaction to be included in the block.
- `difficulty` – the effort required to mine the block.
- `mixHash` – a unique identifier for that block.
- `parentHash` – the unique identifier for the block that came before (this is how blocks are linked in a chain).
@@ -56,7 +56,7 @@ Proof of work means the following:
## Block size {#block-size}
-A final important note is that, as of with [the London update](/history/#london), blocks themselves are no longer bounded in size. Each block has a target size of 15 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 30 milion gas (2x target block size). The total amount of gas expended by all transactions in the block must be less than the block gas limit. This is important because it ensures that blocks can’t be arbitrarily large. If blocks could be arbitrarily large, then less performant full nodes would gradually stop being able to keep up with the network due to space and speed requirements.
+A final important note is that blocks themselves are bounded in size. Each block has a target size of 15 million gas but the size of blocks will increase or decrease in accordance with network demands, up until the block limit of 30 milion gas (2x target block size). The total amount of gas expended by all transactions in the block must be less than the block gas limit. This is important because it ensures that blocks can’t be arbitrarily large. If blocks could be arbitrarily large, then less performant full nodes would gradually stop being able to keep up with the network due to space and speed requirements.
## Further reading {#further-reading}
diff --git a/src/content/developers/docs/gas/index.md b/src/content/developers/docs/gas/index.md
index 19b99960b75..bc4067caa51 100644
--- a/src/content/developers/docs/gas/index.md
+++ b/src/content/developers/docs/gas/index.md
@@ -42,9 +42,9 @@ This video offers a concise overview of gas and why it exists:
## After the London Upgrade {#post-london}
-[The London Upgrade](/history/#london) aims to make transacting on Ethereum more predictable for users by overhauling Ethereum's transaction-fee-mechanism. The high-level benefits introduced by this change include better transaction fee estimation, generally quicker transaction inclusion, and reducing the ETH rate of inflation by burning a percentage of transaction fees.
+[The London Upgrade](/history/#london) aims to make transacting on Ethereum more predictable for users by overhauling Ethereum's transaction-fee-mechanism. The high-level benefits introduced by this change include better transaction fee estimation, generally quicker transaction inclusion, and offsetting the ETH issuance by burning a percentage of transaction fees.
-Starting with the London network upgrade, every block has a base fee, the minimum price per unit of gas for inclusion in this block, calculated by the network protocol based on network demand. Optionally, users can also set a priority fee (tip).
+Starting with the London network upgrade, every block has a base fee, the minimum price per unit of gas for inclusion in this block, calculated by the network based on demand for block space. As the base fee of the transaction fee is burnt, users are also expected to set a tip (priority fee) in their transactions. The tip compensates miners for executing and propagating user transactions in blocks and is expected to be set automatically by most wallets.
Calculating the total transaction fee works as follows: `Gas units (limit) * (Base fee + Tip)`
@@ -57,13 +57,15 @@ Taylor will be credited 1.0000 ETH.
Miner receives the tip of 0.000195 ETH.
Base fee of 0.001953 ETH is burned.
+Additionally, Jordan can also set a max fee (`maxFeePerGas`) for the transaction. The difference between the max fee and the actual fee is refunded to Jordan, i.e. `refund = max fee - (base fee + priority fee)`. Jordan can set a maximum amount to pay for the transaction to execute and not worry about are overpaying "beyond" the base fee when the transaction is executed.
+
### Block Size {#block-size}
Before the London Upgrade, Ethereum had fixed-sized blocks. In times of high network demand, these blocks operated at total capacity. As a result, users often had to wait for high demand to reduce to get included in a block, which led to a poor user experience.
The London Upgrade introduced variable-size blocks to Ethereum. Each block has a target size of 15 million gas but, the size of blocks will increase or decrease in accordance with network demand, up until the block limit of 30 million gas (2x the target block size). The protocol achieves an equilibrium block size of 15 million on average through the process of _tâtonnement_. This means if the block size is greater than the target block size, the protocol will increase the base fee for the following block. Similarly, the protocol will decrease the base fee if the block size is less than the target block size. The amount the base fee is adjusted by is proportional to how far from the current block size is from the target. [More on blocks](/developers/docs/blocks/).
-### Base Fees {#base-fees}
+### Base Fee {#base-fee}
Every block has a base fee which acts as a reserve price. To be eligible for inclusion in a block the offered price per gas must at least equal the base fee. The base fee is calculated independently of the current block and is instead determined by the blocks before it - making transaction fees more predictable for users. When the block is mined this base fee is "burned", removing it from circulation.
@@ -82,7 +84,17 @@ The base fee is calculated by a formula that compares the size of the previous b
Relative to the pre-London gas auction market, this transaction-fee-mechanism change causes fee prediction to be more reliable. Following the table above - to create a transaction on block number 9, a wallet will let the user know with certainty that the **maximum base fee** to be added to the next block is `current base fee * 112.5%` or `202.8 gwei * 112.5% = 256.8 gwei`.
-### Tips {#tips}
+It's also important to note it is unlikely we will see extended spikes of full blocks because of the speed at which the base fee increases proceeding a full block.
+
+| Block Number | Included Gas | Fee Increase | Current Base Fee |
+| ------------ | -----------: | -----------: | ---------------: |
+| 30 | 30M | 12.5% | 2705.6 gwei |
+| ... | ... | 12.5% | ... |
+| 50 | 30M | 12.5% | 28531.3 gwei |
+| ... | ... | 12.5% | ... |
+| 100 | 30M | 12.5% | 10302608.57 gwei |
+
+### Priority Fee (Tips) {#priority-fee}
Before the London Upgrade, miners would receive the total gas fee from any transaction included in a block.
@@ -94,9 +106,7 @@ To execute a transaction on the network users are able to specify a maximum limi
## EIP-1559 {#eip-1559}
-The implementation of [EIP-1559](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md) in the London Upgrade makes the transaction fee mechanism more complicated than the simple gas price auction, but it has the advantage of making gas fees more predictable, as well as making ETH more valuable by removing some of it from circulation. The base fee functions as a [second price auction](https://oko.uk/blog/first-price-vs-second-price-auctions),
-which is more efficient than the previous mechanism that is a first price auction. Users can submit transactions with a much higher tip, corresponding
-to how much they need the transaction to happen, without having to worry that they will be overcharged.
+The implementation of [EIP-1559](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md) in the London Upgrade makes the transaction fee mechanism more complex than the current gas price auction, but it has the advantage of making gas fees more predictable, resulting in a more efficient transaction fee market. Users can submit transactions with a `maxFeePerGas` corresponding to how much they are willing to pay for the transaction to be executing, knowing that they will not pay more than the market price for gas (`baseFeePerGas`), and get any extra, minus their tip, refunded.
This video explains EIP-1559 and the benefits it brings: