<oembed><type>rich</type><version>1.0</version><author_name>npub1m230cem2yh3mtdzkg32qhj73uytgkyg5ylxsu083n3tpjnajxx4qqa2np2</author_name><author_url>https://nostr.ae/npub1m230cem2yh3mtdzkg32qhj73uytgkyg5ylxsu083n3tpjnajxx4qqa2np2</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-02-14&#xA;📝 Original message:I haven&#39;t bothered reading the thread, but I&#39;ll put this out there:&#xA;&#xA;The consensus critical Satoshi-derived sourcecode is a protocol&#xA;*specification* that happens to also be machine readable and executable.&#xA;Rewriting it is just as silly as as taking RFC 791 and rewriting it&#xA;because you wanted to &#34;decentralize control over the internet&#34;&#xA;&#xA;My replace-by-fee fork of Bitcoin Core is a perfect case in point: it&#xA;implements different non-consensus-critical policy than Bitcoin Core&#xA;does, while adhering to the same Bitcoin protocol by virtue of being the&#xA;same sourcecode - the same protocol specification. When I went to miners&#xA;asking them to implement it, the biggest concern for them is &#34;Will it&#xA;stay in consensus with other miners?&#34; If I had rewritten the whole thing&#xA;from scratch the fact is the honest answer to them would be no way in&#xA;hell - reimplementing Bitcoin and getting it right is software&#xA;engineering&#39;s Apollo Project and none of us have the resources to pull&#xA;that off. But I didn&#39;t, which means we might soon have a significant&#xA;chunk of hashing power implementing a completely different mining policy&#xA;than what is promoted by the Bitcoin Core maintainers.&#xA;&#xA;By reimplementing consensus code - rewriting the protocol spec - you&#xA;drop out of the political process that is Bitcoin development. You&#39;re&#xA;not decentralizing Bitcoin at all - you&#39;re contributing to its&#xA;centralization by not participating, leaving behind a smaller and more&#xA;centralized development process. Fact is, what you&#39;ve implemented in&#xA;libbitcoin just isn&#39;t the Bitcoin protocol and isn&#39;t going to get&#xA;adopted by miners nor used by serious merchants and exchanges - the&#xA;sources of real political power.&#xA;&#xA;&#xA;Right now we could live in a world where a dozen different groups&#xA;maintain Bitcoin implementations that are actually used by miners. We&#xA;could have genuine innovation on the p2p networking layer, encryption,&#xA;better privacy for SPV clients, better resistance to DoS attacks. We&#xA;could have diverse tx acceptance policies rather than wasting hundreds&#xA;of man hours bitching about how many bytes OP_RETURN should allow. We&#xA;could have voices from multiple groups at the table when the community&#xA;discusses how to scale Bitcoin up.&#xA;&#xA;Instead we have a world with a half dozen teams wasting hundreds if not&#xA;thousands of of man hours dicking around trying to rewrite consensus&#xA;critical *specifications* because they happen to be perfectly good&#xA;executable code, and the first thing a programmer thinks when they see&#xA;perfectly good battle-hardened code is &#34;Hey! Let&#39;s rewrite that from&#xA;scratch!&#34;&#xA;&#xA;&#xA;You know you does have significant political power over the development&#xA;of the Bitcoin protocol *other* than the Bitcoin Foundation?&#xA;&#xA;Luke Dashjr.&#xA;&#xA;Because he maintains the Eligius fork of Bitcoin Core that something&#xA;like %30 of the hashing power run. It Actually Works because it uses the&#xA;Actual Protocol Specification, and miners know if they run it they&#xA;aren&#39;t going to lose tens of thousands of dollars. It&#39;s why it&#39;s easy to&#xA;get transactiosn mined that don&#39;t meet the Bitcoin Core&#39;s IsStandard()&#xA;rules: they aren&#39;t part of the protocol spec, and Luke-Jr has different&#xA;views on what transactions should and should not be allowed into the&#xA;blockchain.&#xA;&#xA;And when Gavin Andresen starts negotiating with alt-implementations to&#xA;get his bloat coin proposals implemented, you know who&#39;s going to be at&#xA;the table? Luke-Jr again! Oh sure, the likes of btcd, libbitcoin, toshi,&#xA;etc. will get invited, but no-one&#39;s going to really care what they say.&#xA;Because at best only a tiny - and foolish - sliver of hashing power will&#xA;be using their implementations of Something Almost But Not Quite&#xA;Bitcoin™, and any sane merchant or exchange will be running at least one&#xA;or two Bitcoin Foundation Genuine Bitcoin Core™ nodes in front of any&#xA;from-scratch alt-implementation.&#xA;&#xA;&#xA;So stop wasting your time. Help get the consensus critical code out of&#xA;Bitcoin Core and into a stand-alone libconsensus library, wrap it in the&#xA;mempool policy, p2p networking code, and whatever else you feel like,&#xA;and convince some hashing power to adopt it. Then enjoy the fruits of&#xA;your efforts when the next time we decide to soft-fork Bitcoin the&#xA;process isn&#39;t some secretive IRC discussion by a half-dozen &#34;core&#xA;developers&#34; - and one guy who finds the term hilarious - but a full on&#xA;DIRECT DEMOCRACY OCCUPY WALL STREEET MODIFIED CONSENSUS POW-WOW,&#xA;complete with twinkle fingers. A pow-wow that you&#39;ll be an equal part&#xA;of, and your opinions will matter.&#xA;&#xA;Or you can be stereotypical programmers and dick around on github for&#xA;the next ten years chasing stupid consensus bugs in code no-one uses.&#xA;&#xA;The choice is yours.&#xA;&#xA;&#xA;On Sat, Feb 14, 2015 at 03:16:16AM -0800, Eric Voskuil wrote:&#xA;&gt; On 02/14/2015 01:51 AM, Jorge Timón wrote:&#xA;&gt; &gt; I agree that this conversation is not being productive anymore. I&#39;m&#xA;&gt; &gt; doing my best to understand you but I just happen to disagree with&#xA;&gt; &gt; many of your arguments.&#xA;&gt; &gt; I doubt it makes you feel better but it&#39;s being tedious and&#xA;&gt; &gt; frustrating for me as well.&#xA;&gt; &gt; I don&#39;t know about other people&#39;s intentions, but I know that my only&#xA;&gt; &gt; intention when recommending libbitcoin to depend on libconsensus is to&#xA;&gt; &gt; prevent its direct and indirect users from accidentally being forked&#xA;&gt; &gt; off the network due to a consensus failure.&#xA;&gt; &#xA;&gt; If you want to achieve that goal, I would again recommend that a&#xA;&gt; standard suite of test vectors be published that other implementations&#xA;&gt; can easily consume. Everyone runs the tests and compares results - just&#xA;&gt; like deterministic build verification.&#xA;&#xA;-- &#xA;&#39;peter&#39;[:-1]@petertodd.org&#xA;00000000000000000e95dcd2476d820f6fd26eb1a9411e961347260342458e9c&#xA;-------------- next part --------------&#xA;A non-text attachment was scrubbed...&#xA;Name: signature.asc&#xA;Type: application/pgp-signature&#xA;Size: 650 bytes&#xA;Desc: Digital signature&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150214/92986503/attachment.sig&gt;</html></oembed>