Updates & Forks - Discussion

@filip
you mentioned in the accidental fork section that when a block goes stale because of accidental forking it gets thrown away. But i thought it goes back to the mempool. So what happens to these stale blocks on the mempool? Do they eventually get deleted from the mempool?

I’m still confused about something: When and how is the validity of an individual transaction determined?

Hello @Alko89
Now I get it, :slight_smile: I’m sorry Ales I over analyzed it.
sometimes I over think too much. haha :smiley:

Thank you Ales for your help I really appreciate it. :slight_smile:

Its not that stale blocks return to the mempool, but its transactions are returned and put in a new block eventually :slight_smile:

1 Like

Each node validates every transaction it receives. :slight_smile: If you’re interested in the code part this verification I think most of it happens in either tx_verify.cpp and tx_check.cpp

1 Like

Thanks for that!

so the order of ā€œoperationā€ is:

transaction is constructed --> broadcast to nodes --> nodes validate and place tranaction in mempool —> miners collect transactions from mempool and mine to try to construct a block (before another miner does) ?

Well each miner (or the node miners connect to) have their own mempool so when miners are constructing their blocks they can create different ones, containing the same transactions.

1 Like

After a hard fork will all nodes not eventually update to the new rule or update?

That actually depends on the node runner :stuck_out_tongue: who knows, maybe someone out there is still running Bitcoin 0.1.0 :man_shrugging: not sure if it syncs though

1 Like

If I had let’s say eleven bitcoin locked in a wallet somewhere before the bitcoin cash fork and haven’t touched them, when I find the private keys, do I have eleven bitcoin as well as eleven bitcoin cash?

Thanks for your definition of hard and soft forks. You said that a hard fork was an expansion of the block size. Would a larger block size reduce congestion on the network, and as a result be necessary to reduce cost and meet the demands of an otherwise stressed system?

Related, would a soft fork signal less interest in the chain?

Thanks for answering my question.

Yes in case of a hard fork that results in the chain split into two currencies you will have the same amount of coins on both blockchains :slight_smile:

Yes and no, its kind of a temporary solution. Raising the block size would result in less congestion for a while, but what then when the block size of 2MB is not sufficient anymore? What then when the block size of 10MB is not enough…? In fact BSV has completely dropped the block size and accepts blocks of any size if I’m not mistaken. This can be done, but you need very performant hardware and high bandwidth to be able to process these blocks in time. This results in centralization of the blockchain since only the more well funded individuals are able to afford to run their nodes. While the bitcoin core node can run fine on a RPi.

Why is that? A soft fork can be a beneficial upgrade like Segwit. If the community accepts the fork its fine :slight_smile:

1 Like

Hey Filip,

I do not know, if you had this question in the past. If yes, sorry for the repetition :). My question is: If a stale block is created, what will happen with the block reward received by the miner? Do the miners actually receive block rewards also after 6 confirmations?

Many thanks in advance for the clarification!

Tamas

The block reward or coinbase is basically just a ā€œspecialā€ kind of transaction, usually the first one in the block explorers if you ever looked at the blocks :slight_smile: so it will get dropped as any tx in a stale block.

1 Like

Many thanks Alko89,

Yes, I have checked in the block explorer. So, if a miner- who’s block can be the part of the main chain, but also can be a stale block- queries the blockchain to get an update of his/her UTXOs, s(he) simply cannot see the block reward til. 6 confirmations (which means the miner’s block is part of the original block, not a stale block), right?

Because some valid blocks can become stale, The blockreward is unspendable for 100 blocks.
Stale blocks are just a result of 2 or more miners accidentally found a good nonce for their block at the same blockheight. But this doesn’t happens a lot. The bitcoin difficulty makes it statistically probable to be able to mine approximately 1 block every 10minutes.

2 Likes

Many thanks Fabrice,

Now I’ve got it :slight_smile: ! Thanks again both of you!

Filip says in the video the accidental block eventually gets resolved, but the race between two chains can continue for quite some time. Why would the race not stop immediately at the point that one chain wins the next block first? How many blocks does a chain have to be behind before the race ends?

Its all based on probability. Theoretically two miners could mine the next block on each chain at the same time again and in the next 10 minutes again two miners find a new block on each chain, and again and again…
The probability of this being the case is highly unlikely (as is in fact with two blocks being mined, usually this happens less than once in a year, but it does happen). The notion of 6 confirmations if a rule of thumb where the probability of blocs continue to get added on both blockchains is so low it will probably never happen.

2 Likes

Thank you for answering this.