<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-06-17&#xA;📝 Original message:On Mon, Jun 15, 2015 at 09:00:19PM -0700, Aaron Voisine wrote:&#xA;&gt; Thanks Alex, the work you&#39;ve pointed out is helpful. Limiting mempool size&#xA;&gt; should at least prevent nodes from crashing. When I looked a few days ago I&#xA;&gt; only found a few old PRs that seemed to have fallen by the wayside, so this&#xA;&gt; new one is encouraging.&#xA;&#xA;BTW it&#39;s worth working out how many $ in fees you need for a given&#xA;amount of MB worth of mempool.&#xA;&#xA;At the current 10uBTC/KB minimim relay fee 1MB of txs requires just $2.5&#xA;worth of fees - kinda ridiculous when a block earns a miner $6250 in&#xA;revenue. Pretty much all txs pay significantly higher rates - more like&#xA;100uBTC/KB, or $25/MB. At that rate the 288MB max mempool size proposed&#xA;by Patrick Strateman&#39;s pull-req requires at least $7.2k worth of BTC to&#xA;fill to pay the fees, and in practice will probably quickly get higher.&#xA;&#xA;https://github.com/bitcoin/bitcoin/pull/6281&#xA;&#xA;&gt; I can respond in the PR comments if it&#39;s more appropriate there, but I&#xA;&gt; believe ejecting tx from mempools rather than preemptively refusing them&#xA;&gt; according to standard network wide propagation rules will result in spotty,&#xA;&gt; inconsistent tx propagation, and possibly a large increase in tx&#xA;&gt; re-broadcasts, so if those haven&#39;t been addressed they will need to be. It&#xA;&gt; would also be prudent to run some simulations to see what other issues are&#xA;&gt; going to pop-up.&#xA;&#xA;See above - filling the mempool like that will be both a slow process,&#xA;and require lots of funds. Equally, once full, the sensible thing to do&#xA;is raise the minimum relay fee appropriately, so those transactions that&#xA;pay too low a fee will simply be rejected.&#xA;&#xA;It&#39;d be reasonable to tell peers that, and what the minimum fee needed&#xA;for acceptance would be for that particular node.&#xA;&#xA;&gt; We&#39;re currently using CPFP already in breadwallet when spending unconfirmed&#xA;&gt; non-change inputs. A small percentage of hashing power is using it, but&#xA;&gt; enough to get a transaction unstuck assuming breadwallet&#39;s fee calculation&#xA;&gt; is better than the sender&#39;s.&#xA;&#xA;&gt; The problem with RBF is that there&#39;s currently no way to tell if your tx&#xA;&gt; has been picked up by miners or not in order to know if you need to replace&#xA;&gt; it. Miners broadcasting partial block solutions would be helpful in this&#xA;&gt; regard, but only for tx in the currently-being-worked-on block, not for tx&#xA;&gt; that won&#39;t be picked up until the block after. If miners were to eject tx&#xA;&gt; that were previously being worked on in favor of higher fee tx, then that&#xA;&gt; causes another set of problems for wallets that thought their tx was going&#xA;&gt; to get in but then it doesn&#39;t. The other problem with RBF is that users&#xA;&gt; don&#39;t know up front what fee they&#39;re actually going to pay which is a big&#xA;&gt; blow to real world usability. Also mobile wallets will have to sign lots of&#xA;&gt; tx up front and rely on a service to replace as necessary. And this is all&#xA;&gt; just on the send side.&#xA;&#xA;For an interactive, mobile wallet, the best thing to do is estimate the&#xA;fee correctly the first time, using RBF as a follow up mechanism only if&#xA;needed. For other users - e.g. exchanges handling customer withdrawals -&#xA;using RBF more agressively to get the minimum possible fee may make&#xA;sense.&#xA;&#xA;&gt; On the receive side it&#39;s much worse since you can&#39;t&#xA;&gt; rely on the sender to do the replacing. The real problem seems to be the&#xA;&gt; fact that RBF is an interactive iterative process rather than a&#xA;&gt; send-and-forget one.&#xA;&#xA;In any case, the *existance* of RBF makes no difference to any of these&#xA;problems; RBF does make solving the easier. You can always choose to not&#xA;use it after all, resulting in the same &#34;send-and-forget&#34; process.&#xA;Having it available allows mistakes to be fixed after the fact, always&#xA;an improved user experience over not being able to re-bid for block&#xA;space.&#xA;&#xA;&#xA;Incidentally, if my FSS-RBF bug bounty isn&#39;t collected in the next week&#xA;or two, we&#39;ll likely have a major double-digits % of hashing power&#xA;mining FSS-RBF soon after.&#xA;&#xA;http://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg08122.html&#xA;&#xA;&gt; What you really need is some way to tell up-front, is a transaction going&#xA;&gt; to get mined with a high probability? That problem seems really difficult&#xA;&gt; to solve with fixed-size blocks that are full.&#xA;&#xA;Have you looked at the fee estimation code in Bitcoin Core? I have no&#xA;reason to think it doesn&#39;t basically speaking work. Of course, SPV&#xA;wallets will need a semi-trusted third party to securely get that data,&#xA;but this seems to be a fundemental problem in a decentralized network -&#xA;the purpose of the blockchain itself is to prove that some data was&#xA;published to some audience, an analogous problem to proving to the SPV&#xA;wallet that their transaction actually reached miners and they actually&#xA;are considering it for inclusion.&#xA;&#xA;Guaranteed reliable transaction processing is only possible in&#xA;centralized environments that can make service guarantees.&#xA;&#xA;&gt; If the goal is simply to&#xA;&gt; reduce or limit the growth of the blockchain, then there are much simpler&#xA;&gt; solutions, which is why I&#39;ve advocated for the blocksize increase, followed&#xA;&gt; by tx selection and propagation rule changes to create fee pressure.&#xA;&#xA;Few if any of those mechanisms can be deployed in a consensus-critical&#xA;way that is resistant to attack; the blocksize limit is needed to -&#xA;among other things - resist attacks by one miner on another to reduce&#xA;the competitors profitability. Without an explicit limit tx selection&#xA;and propagation rule changes can be gamed.&#xA;&#xA;-- &#xA;&#39;peter&#39;[:-1]@petertodd.org&#xA;0000000000000000127ab1d576dc851f374424f1269c4700ccaba2c42d97e778&#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/20150617/46d63a0f/attachment.sig&gt;</html></oembed>