Published on: 2017-03-27T21:03:08+00:00
A recent discussion on the Bitcoin-dev mailing list focused on the implementation of SegWit and its implications for miners and nodes. Eric Voskuil raised concerns that pre-SegWit miners would produce blocks that SegWit nodes would not receive due to the protocol requirements. However, Suhas Daftuar clarified that this is an "implementation detail" in the Bitcoin Core code and alternate implementations compliant with BIP 144 could handle it differently.At the consensus layer, non-SegWit blocks that are valid to older nodes are also valid to SegWit nodes. This means that if a miner is using an older version of Bitcoin Core before SegWit activates, the blocks they find will be valid to all nodes. Bitcoin Core has been designed to not see valid blocks announced by certain peers, and forcing it to do so requires the peer-to-peer network to work around its current implementation.The behavior of block download logic after SegWit activation was further discussed to address misconceptions. According to Suhas Daftuar, nodes will not download any blocks from non-SegWit peers after activation to prevent downloading invalid blocks. However, non-SegWit blocks are evaluated under the same rules as pre-SegWit software versions and remain valid to all types of nodes. The decision to not download blocks from non-witness peers is an implementation detail in the Bitcoin Core code, not a requirement.Responding to Eric Voskuil's comment, Suhas explained that miners who want to continue mining after SegWit activation using pre-SegWit software would need a way to relay their blocks to a SegWit-enabled peer. Several methods were suggested, including using the RPC call "submitblock" on a SegWit-enabled node, explicitly delivering the block to a SegWit node over the P2P network, running a bridge node, or peer directly with other miners. It is expected that non-SegWit miners' blocks will still be relayed post-SegWit activation through the bridge nodes currently running.In conclusion, the discussion clarified the behavior of the Bitcoin Core's Segregated Witness code and its impact on block download logic. While there are implementation details to consider, non-SegWit blocks remain valid to SegWit nodes, and there are various ways for miners using pre-SegWit software to relay their blocks to SegWit-enabled peers.
Updated on: 2023-08-01T19:56:34.409277+00:00