5 ms·
I tried being as neutral as possible but you're right that my language implies that they signed it. I should've worded that differently. However, I still wouldn
by theprotocol 9y ago
I tried being as neutral as possible but you're right that my language implies that they signed it. I should've worded that differently. However, I still wouldn't let them off the hook entirely: intentionally blocking nodes signaling Segwit2x in 0.15 is definitely a political move. There are clear sides that are forming; and I don't mean to make any value judgment here on which side is "in the right." I'm simply trying to explain the volatility of the current situation and the various points of contention between the groups that are forming.
- kobeya 9y ago> intentionally blocking nodes signaling Segwit2x in 0.15 is definitely a political move This is incorrect. There was a straightforward technical reason given in the pull request -- not enacting this change would likely partition the bitcoin network when the split happens. A network partition could be a drastic event that if exploited would result in much lost money and bankruptcy.
- theprotocol 9y agoCan you elaborate? What kind of partition are you referring to? Thanks.
- rothbardrand 9y agoDating back to the days of satoshi, the consensus would reject blocks that did not fit its rules. That way some node can't just make up its own rules. Rather than join a P2P network of nodes with wrong rules Core added code to not connect to nodes that give you blocks that violate consensus. It's not controversial but the anti-core forces have nothing of substance so they make up drama.
- theprotocol 9y agoI see. Thanks. Need to read more about this.
- kobeya 9y agoA partition of the connectivity graph. Imagine we have two Bitcoin Core nodes connected by an intermediate Segwit2X [sic] node: 1X(a) ----- 2X ----- 1X(b) When the 2x node starts relaying post-fork blocks, it is seen as misbehaving by the 1x peers and dropped by both of its neighbors. The unattended consequence is that 1x(a) is no longer connected to 1x(b). If the mining network is only connected to one of these partitioned networks, then it is possible that the other will not hear of new blocks. The bitcoin nodes will have a different view of the network simply because they are not connected to each other. Worse there might be a few miners on the less hashrate side that still move the network forward a few blocks. If this situation persists, e.g. because network operators are asleep at the wheel, it could be exploited by selectively connecting and broadcasting double-spends to the two networks. To prevent this from happening the Bitcoin Core team added code to 0.15 and higher that will per-emptively disconnect peers that advertise themselves as Segwit2x. Therefore a 0.15 node will only connect to peers that will relay good blocks from its perspective, and it is much less likely that such a network partition would occur. As long as there exists some nodes that don't auto-disconnect (e.g. old bitcoin nodes) then the Bitcoin Core 0.15+ and the Segwit2x networks will remain connected until the fork occurs.
- theprotocol 9y agoThanks, that was very helpful. This issue did not occur to me.
- bhaak 9y agoThat's technically correct (the best kind of correct!) but there was no need to block them now when those nodes are still compatible and in line with the consensus rules of the core code.
- jstanley 9y agoAs long as there exists one node which still connects to both types, there won't be a partition now.
- bhaak 9y agoBut that was not the argument with which this feature was justified. It wasn't "we can forgo replay protection with this" but (among others) "we are even helping the hardforking side, during the BCH hardfork many BCH nodes connected to BTC nodes and couldn't propagate their transactions". But as long as the hardfork hasn't happened, there is no reason to do this. This just makes signalling even less useful than it already is because nodes will be encouraged to lie about their intentions.
- kobeya 9y agoIt is exactly the argument that was used. I don't know where you are getting your information, but I would seriously question the veracity of whatever source you are using. You can read it yourself here: https://github.com/bitcoin/bitcoin/pull/10982 https://github.com/bitcoin/bitcoin/pull/10982