[bitcoin-dev] Segregated witness p2p layer compatibility
eric at voskuil.org
Mon Mar 27 21:03:08 UTC 2017
-----BEGIN PGP SIGNED MESSAGE-----
On 03/27/2017 12:22 PM, Suhas Daftuar via bitcoin-dev wrote:
> Eric Voskuil wrote:
>> Given the protocol requirements of the segwit proposal this is
>> not the case. A miner running pre-segwit code will produce
>> blocks that no segwit node will ever receive.
> The phrase "protocol requirements of segwit" is confusing here,
> because there are two different layers that need consideration:
> the consensus protocol layer and the peer-to-peer protocol layer.
> But in neither layer is the behavior of not downloading blocks
> from non-NODE WITNESS peers a "requirement". This is an
> implementation detail in the Bitcoin Core code that alternate
> implementations compliant with BIP 144 could implement
I agree, and thanks for the detailed clarification. Clearly it is
possible for segwit blocks to be relayed. It is the implementation of
Bitcoin Core (at least), in the absence of sufficient relay, that
produces this outcome.
> This is an implementation detail in the Bitcoin Core code that
> alternate implementations compliant with BIP 144 could implement
> At the consensus layer, non-segwit blocks (described above) that
> are valid to older nodes are also valid to segwit nodes. That
> means that if a miner was using an older, pre-segwit version of
> Bitcoin Core to produce blocks after segwit activates, that blocks
> they find will be valid to all nodes.
IOW Bitcoin Core has been implemented so that it will not see valid
blocks announced by certain of its peers. Forcing it to see such
blocks requires the p2p network work around its implementation. I
agree that this is not inherent in the specifications for segwit, but
it reads more like a bug than an "implementation detail" to me.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
-----END PGP SIGNATURE-----
More information about the bitcoin-dev