5

There have been only two large re-orgs in Bitcoin's history. The first is the value overflow incident in August 2010 that caused a re-org of 53 blocks and the March 12, 2013 fork that caused a re-org of 24 blocks. Value Overflow Bug On August 15 2010, it was discovered that block 74,638 contained a transaction that created 184.4 billion bitcoins for three ...


3

What you are referring to are stale blocks. Orphaned blocks are one for which the previous (parent) hash field points to an unknown block or to a block not yet processed by the local node. Since Bitcoin Core follows headers first approach, block headers are downloaded and validated first before downloading the block data. As a result, full nodes will never ...


2

If ‘block finalization’ is needed, then your chain is broken. I say this because PoW is the method by which the Bitcoin network maintains consensus, and so the only reason we may introduce a ‘block finalization’ is if we worry that PoW will not be able to accomplish it’s job. If PoW cannot accomplish its job, then the system is already broken. It really is ...


2

valid-fork means that the blocks were fully downloaded and validated. It is likely that they were part of the active chain but were reorganized after a better chain was received. valid-headers means that the blocks were fully downloaded but not fully validated. Only the headers were validated to have a valid Proof of Work before the block was written to ...


1

Is this expected behaviour? During a chain-reorganization, can I only expect ZMQ to publish the tip of the new chain Yes, a ZMQ notification is emitted any time the active tip of the chain changes. If you have a chain B1-B2-B3, and there is a 1-deep reorg that rewrites B3, you end up with B1-B2-B3'-B4. The tip changes here from B3 to B4; it does not go ...


1

Block tree is stored on-disk. During startup, is read into memory. When read, BlockManager::m_block_index field is filled with data - CBlockIndexes. Every CBlockIndex contains memory-only field arith_uint256 nChainWork, which is a total amount of work in the chain up to (and including) current block. Best chain is selected as maximum among all nChainWork of ...


1

This shows the inherent flaw with the idea of increasing block sizes if the network cannot handle them propagating in a timely manner. If the block sizes are huge and the mempools of the connected nodes are way out of sync, the full node will basically have to download almost entire block before adding to its chain and then transmitting this block to the ...


1

As soon as miners find a solution to the block header, they relay the block to the full nodes in their network. These full nodes will validate the block and will add the block that reaches to them first on top of the existing blockchain. Later, when they receive the other block at the same height, they will not discard it but maintain a copy of it. However, ...


Only top voted, non community-wiki answers of a minimum length are eligible