<div dir="ltr"><div class="gmail_default" style="color:rgb(51,102,102)">I feel compelled to re-share Mike Hearn&#39;s counter-argument <i>against </i>replace-by-fee:</div><div class="gmail_default"><font color="#336666"><a href="https://medium.com/@octskyward/replace-by-fee-43edd9a1dd6d" target="_blank">https://medium.com/@octskyward/replace-by-fee-43edd9a1dd6d</a></font><br></div><div class="gmail_default"><font color="#336666"><br></font></div><div class="gmail_default"><font color="#336666">Please carefully consider the effects of replace-by-fee before applying Peter&#39;s patch.</font></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, May 3, 2015 at 9:36 PM, Peter Todd <span dir="ltr">&lt;<a href="mailto:pete@petertodd.org" target="_blank">pete@petertodd.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">My replace-by-fee patch is now available for the v0.10.1 release:<br>
<br>
    <a href="https://github.com/petertodd/bitcoin/tree/replace-by-fee-v0.10.1" target="_blank">https://github.com/petertodd/bitcoin/tree/replace-by-fee-v0.10.1</a><br>
<br>
No new features in this version; this is simply a rebase for the Bitcoin<br>
Core v0.10.1 release. (there weren&#39;t even any merge conflicts) As with<br>
the Bitcoin Core v0.10.1, it&#39;s recommended to upgrade.<br>
<br>
<br>
The following text is the copied verbatim from the previous release:<br>
<br>
What&#39;s replace-by-fee?<br>
----------------------<br>
<br>
Currently most Bitcoin nodes accept the first transaction they see<br>
spending an output to the mempool; all later transactions are rejected.<br>
Replace-by-fee changes this behavior to accept the transaction paying<br>
the highest fee, both absolutely, and in terms of fee-per-KB. Replaced<br>
children are also considered - a chain of transactions is only replaced<br>
if the replacement has a higher fee than the sum of all replaced<br>
transactions.<br>
<br>
Doing this aligns standard node behavior with miner incentives: earn the<br>
most amount of money per block. It also makes for a more efficient<br>
transaction fee marketplace, as transactions that are &quot;stuck&quot; due to bad<br>
fee estimates can be &quot;unstuck&quot; by double-spending them with higher<br>
paying versions of themselves. With scorched-earth techniques⁵ it gives<br>
a path to making zeroconf transactions economically secure by relying on<br>
economic incentives, rather than &quot;honesty&quot; and alturism, in the same way<br>
Bitcoin mining itself relies on incentives rather than &quot;honesty&quot; and<br>
alturism.<br>
<br>
Finally for miners adopting replace-by-fee avoids the development of an<br>
ecosystem that relies heavily on large miners punishing smaller ones for<br>
misbehavior, as seen in Harding&#39;s proposal⁶ that miners collectively 51%<br>
attack miners who include doublespends in their blocks - an unavoidable<br>
consequence of imperfect p2p networking in a decentralized system - or<br>
even Hearn&#39;s proposal⁷ that a majority of miners be able to vote to<br>
confiscate the earnings of the minority and redistribute them at will.<br>
<br>
<br>
Installation<br>
------------<br>
<br>
Once you&#39;ve compiled the replace-by-fee-v0.10.1 branch just run your<br>
node normally. With -debug logging enabled, you&#39;ll see messages like the<br>
following in your ~/.bitcoin/debug.log indicating your node is replacing<br>
transactions with higher-fee paying double-spends:<br>
<br>
    2015-02-12 05:45:20 replacing tx ca07cc2a5eaf55ab13be7ed7d7526cb9d303086f116127608e455122263f93ea with c23973c08d71cdadf3a47bae45566053d364e77d21747ae7a1b66bf1dffe80ea for 0.00798 BTC additional fees, -1033 delta bytes<br>
<br>
Additionally you can tell if you are connected to other replace-by-fee<br>
nodes, or Bitcoin XT nodes, by examining the service bits advertised by<br>
your peers:<br>
<br>
    $ bitcoin-cli getpeerinfo | grep services | egrep &#39;((0000000000000003)|(0000000004000001))&#39;<br>
            &quot;services&quot; : &quot;0000000000000003&quot;,<br>
            &quot;services&quot; : &quot;0000000004000001&quot;,<br>
            &quot;services&quot; : &quot;0000000004000001&quot;,<br>
            &quot;services&quot; : &quot;0000000000000003&quot;,<br>
            &quot;services&quot; : &quot;0000000004000001&quot;,<br>
            &quot;services&quot; : &quot;0000000004000001&quot;,<br>
            &quot;services&quot; : &quot;0000000000000003&quot;,<br>
            &quot;services&quot; : &quot;0000000000000003&quot;,<br>
<br>
Replace-by-fee nodes advertise service bit 26 from the experimental use<br>
range; Bitcoin XT nodes advertise service bit 1 for their getutxos<br>
support. The code sets aside a certain number of outgoing and incoming<br>
slots just for double-spend relaying nodes, so as long as everything is<br>
working you&#39;re node should be connected to like-minded nodes a within 30<br>
minutes or so of starting up.<br>
<br>
If you *don&#39;t* want to advertise the fact that you are running a<br>
replace-by-fee node, just checkout a slightly earlier commit in git; the<br>
actual mempool changes are separate from the preferential peering<br>
commits. You can then connect directly to a replace-by-fee node using<br>
the -addnode command line flag.<br>
<br>
1) <a href="https://github.com/bitcoinxt/bitcoinxt" target="_blank">https://github.com/bitcoinxt/bitcoinxt</a><br>
2) <a href="https://github.com/bitcoin/bitcoin/pull/3883" target="_blank">https://github.com/bitcoin/bitcoin/pull/3883</a><br>
3) <a href="https://github.com/bitcoin/bitcoin/pull/3883#issuecomment-45543370" target="_blank">https://github.com/bitcoin/bitcoin/pull/3883#issuecomment-45543370</a><br>
4) <a href="https://github.com/luke-jr/bitcoin/tree/0.10.x-ljrP" target="_blank">https://github.com/luke-jr/bitcoin/tree/0.10.x-ljrP</a><br>
5) <a href="http://www.mail-archive.com/bitcoin-development%40lists.sourceforge.net/msg05211.html" target="_blank">http://www.mail-archive.com/bitcoin-development%40lists.sourceforge.net/msg05211.html</a><br>
6) <a href="http://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg06970.html" target="_blank">http://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg06970.html</a><br>
7) <a href="http://www.mail-archive.com/bitcoin-development%40lists.sourceforge.net/msg04972.html" target="_blank">http://www.mail-archive.com/bitcoin-development%40lists.sourceforge.net/msg04972.html</a><br>
<span><font color="#888888"><br>
--<br>
&#39;peter&#39;[:-1]@<a href="http://petertodd.org" target="_blank">petertodd.org</a><br>
0000000000000000059a3dd65f0e5ffb8fdf316d6f31921fefcf0ef726120be9<br>
</font></span><br>------------------------------------------------------------------------------<br>
One dashboard for servers and applications across Physical-Virtual-Cloud<br>
Widest out-of-the-box monitoring support with 50+ applications<br>
Performance metrics, stats and reports that give you Actionable Insights<br>
Deep dive visibility with transaction tracing using APM Insight.<br>
<a href="http://ad.doubleclick.net/ddm/clk/290420510;117567292;y" target="_blank">http://ad.doubleclick.net/ddm/clk/290420510;117567292;y</a><br>_______________________________________________<br>
Bitcoin-development mailing list<br>
<a href="mailto:Bitcoin-development@lists.sourceforge.net" target="_blank">Bitcoin-development@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/bitcoin-development" target="_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-development</a><br>
<br></blockquote></div><br></div></div>