In Bitcoin Classic the block size is no longer limited by rules set by software developers. It is set by you, the person running the software.
This article explains how this works.
In Bitcoin transactions are gathered in blocks which are structured in a chain. The reason we use a chain is because of the main innovation of Bitcoin which combines it with Proof of Work to have a global consensus about the transactions that are accepted.
The size of this block has never been relevant to this process and we can see that over the lifetime of Bitcoin the size of blocks has grown based solely on the requirements of the network.
Miners have always been the ones to decide on the block size, and they have always done this in a coordinated fashion. This is a natural consequence of the rather elegant (economic) design of Bitcoin.
- Miners earn more fee-based income when they produce bigger blocks.
- Miners take more risk of their blocks being orphaned with bigger blocks.
- Miners want to avoid emptying the memory pool every block as that removes a total need for users to pay fees.
- Miners want to make sure the mempool does not become backlogged because users that do not see their transactions confirmed will get disappointed and find other means to do payments. Which hurts the price and in effect hurts the miners income.
This behaviour in block size means blocks will not get huge and they will not stay small either, because there are reasons for both. And so the size will be something in the middle. The most correct block size is completely dependent on the amount of paying users and the state of technology. To get the most profit out of the system the miners will have to find a market-equilibrium for the block size. That market equilibrium happens to be the best for all players in Bitcoin.
Classic will accept blocks produced by all other current implementations of node software, including Core, Unlimited, etc. Blocks produced by Classic will be accepted by all other softwares, including Core, if less than 1MB and by Unlimited and others but not by Core if blocks created are 1MB or larger.
Classic will put the user-selected (or default) block size limit in the
coinbase message in the form "EB2" where the number is the amount of
megabytes this node accepts.
Similarly, the user-agent string send to peers on the handshake will have this comment so sites that connect to all peers can get an idea of what is supported.
Bitcoin Classic has removed the 1MB centrally planned maximum block size limits from its software and gives tools to the miners and users to protect themselves from malicious actors at the same time. We call that the accept limit.
The main change is that a Bitcoin Classic node can now be configured manually to have any block size limit.
First there is the new
blocksizeacceptlimit config setting that
allows a user to limit blocks by size they will accept from the
network. For instance if the user would set
states that any block over 4.2MB is rejected as too large.
The old config option
blockmaxsize is unchanged and this is the option
that miners set to determine the maximum block size they would create.
The additional change is that Bitcoin Classic creates block templates for miners which put the blocksizeacceptlimit value in the coinbase comment. This has the effect that a miner's limits are stored in the blockchain and for everyone available to see. Any miner can check the blockchain and find out what a safe blockmaxsize setting will get his blocks accepted by other miners. But ultimately we expect miners to have a global conversation, in any forum that works for them, about the block size they will all use.
Additional safety measures
With the introduction of a more soft size limit, one that is no longer centrally planned by software developers but instead based on local configuration, we see an opportunity to introduce an extra fail-safe in rare situations where a node has settings slightly different than the rest of the world.
This safety measure is still in research and the initial results have been that block size limits are a bit more flexible interpreted if there are more miners that vote for this block size with their hashpower. This makes the network more robust and makes users and miners that run Bitcoin Classic be able to recover and get back onto the main chain in rare situations where a block is found that is larger than expected.
It is important to stress that this feature is made possible due to the flexible size limit, but just because it is now possible to protect against scenarios that could always happen does not mean we believe that the user configurable size limit will cause problems that need fixing.
This safety measure is currently still under development and is introduced on Toms blog here