<p>The block gas limit is determined by miners. According to the <a href="https://github.com/ethereum/yellowpaper" rel="nofollow">Ethereum protocol</a>, they can raise/lower it by 1/1024 of the previous block. </p>

<p>Currently (11/20/2015), geth is set up to automatically increase the gas limit if the previous block used more than ⅔ of the previous block gas limit and automatically decrease it if it’s below the threshold. In practice, an increase (probably) never happens, and even if it does, most blocks are well below the ⅔ threshold, so the limit would fall back to pi million quickly. Gas usage is very spikey like that. See <a href="http://stats.ethdev.com" rel="nofollow">http://stats.ethdev.com</a> </p>

<p>Furthermore, for miners to amend the ⅔ logic, they’d need to alter geth’s code and build from source which is not going to happen en masse.</p>

<p>There are ongoing discussions about what to do about this on <a href="https://gitter.im/ethereum/research" rel="nofollow">https://gitter.im/ethereum/research</a>. Vitalik floated the idea of making the limit 4x its current limit and leaving the ⅔ logic the way it is. I support the 4x increase, but I think the ⅔ logic needs to be rethought.</p>

<p>UPDATE: I asked Vitalik about the low gas limit during DEVCON1. The reason there is no rush to raise the gas limit has to do with block propagation times. Every node in the ethereum network has to execute every transaction. If the gas limit were increased substantially, there might be delays in block times which would cause the network to go from 17 (current average) up north of 20 seconds. That's not the direction we want to be heading in.</p>

<p>I'll also say that one benefit of a low gas price is that it forces contract authors to create efficient code which, in turn, reduces blockchain bloat.</p>

CC BY-SA 3.0
2015-11-19T11:10:19.463Z
2016-09-08T15:43:16.930Z
2016-09-08T15:43:16.930Z
fivedogit
<p>as I understand it the reason for having a gas limit is to avoid nodes being burdened by the load of processing transactions during busy periods and thus reducing processing available for mining and thus delaying block creation and propagation.  This would result in longer block times or incentivise miners to create zero transaction blocks just to get the mining reward.</p>

<p>One way this effect could be mitigated would be to have a moving average gas limit.  eg: say 5 times pi million for the total of last five blocks.  Keeping the same pi million average per block.</p>

<p>This would allow sporadic peaks of high gas for deployment of large contracts without increasing the average processing load . This would allow deployment of high gas contracts but be preferable to increasing the average gas per block. </p>

CC BY-SA 3.0
2015-12-31T17:47:13.143Z
2015-12-31T17:47:13.143Z
pink penguin
<p>I'm having trouble publishing contracts and executing transactions due to the low gas limit (3.14 million gas ~0.15 ETH). How and when will the gas limit rise?</p>

CC BY-SA 3.0
2015-11-20T02:53:38.703Z
A workaround can be to use the Solidity optimization flags. In general, contracts shouldn't rely on a high gas limit and instead make use of libraries of contracts that have been factored into discrete components or even functionality stubs.
Taylor Gerring
<ethereum>
The Ethereum gas limit seems prohibitively low. Will it ever be raised? If so, when and how?
fivedogit
# The Ethereum gas limit seems prohibitively low. Will it ever be raised? If so, when and how?

(Asked by: username_0 on 2015-11-19)

I'm having trouble publishing contracts and executing transactions due to the low gas limit (3.14 million gas ~0.15 ETH). How and when will the gas limit rise?

**Tags:** ethereum

> **Comments:**
> **username_1**: A workaround can be to use the Solidity optimization flags. In general, contracts shouldn't rely on a high gas limit and instead make use of libraries of contracts that have been factored into discrete components or even functionality stubs.  

---

## 2 answers

### Answer by username_0 on 2015-11-19. Score: 2

The block gas limit is determined by miners. According to the [Ethereum protocol](https://github.com/ethereum/yellowpaper), they can raise/lower it by 1/1024 of the previous block.

Currently (11/20/2015), geth is set up to automatically increase the gas limit if the previous block used more than ⅔ of the previous block gas limit and automatically decrease it if it’s below the threshold. In practice, an increase (probably) never happens, and even if it does, most blocks are well below the ⅔ threshold, so the limit would fall back to pi million quickly. Gas usage is very spikey like that. See <http://stats.ethdev.com>

Furthermore, for miners to amend the ⅔ logic, they’d need to alter geth’s code and build from source which is not going to happen en masse.

There are ongoing discussions about what to do about this on <https://gitter.im/ethereum/research>. Vitalik floated the idea of making the limit 4x its current limit and leaving the ⅔ logic the way it is. I support the 4x increase, but I think the ⅔ logic needs to be rethought.

UPDATE: I asked Vitalik about the low gas limit during DEVCON1. The reason there is no rush to raise the gas limit has to do with block propagation times. Every node in the ethereum network has to execute every transaction. If the gas limit were increased substantially, there might be delays in block times which would cause the network to go from 17 (current average) up north of 20 seconds. That's not the direction we want to be heading in.

I'll also say that one benefit of a low gas price is that it forces contract authors to create efficient code which, in turn, reduces blockchain bloat.


---

### Answer by username_2 on 2015-12-31. Score: 1

as I understand it the reason for having a gas limit is to avoid nodes being burdened by the load of processing transactions during busy periods and thus reducing processing available for mining and thus delaying block creation and propagation. This would result in longer block times or incentivise miners to create zero transaction blocks just to get the mining reward.

One way this effect could be mitigated would be to have a moving average gas limit. eg: say 5 times pi million for the total of last five blocks. Keeping the same pi million average per block.

This would allow sporadic peaks of high gas for deployment of large contracts without increasing the average processing load . This would allow deployment of high gas contracts but be preferable to increasing the average gas per block.


---

