Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 314B9E8E9; Wed, 13 Feb 2019 05:56:13 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from ozlabs.org (ozlabs.org [203.11.71.1]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 99921FE; Wed, 13 Feb 2019 05:56:12 +0000 (UTC) Received: by ozlabs.org (Postfix, from userid 1011) id 43zpfy1QlMz9sDr; Wed, 13 Feb 2019 16:56:10 +1100 (AEDT) From: Rusty Russell To: Matt Corallo In-Reply-To: References: <878t163qzi.fsf@rustcorp.com.au> <725fc55a-6263-a9fc-74a5-1017cb1cc885@mattcorallo.com> <87wonfem03.fsf@rustcorp.com.au> Date: Wed, 13 Feb 2019 14:52:39 +1030 Message-ID: <87zhr0gvw0.fsf@rustcorp.com.au> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org X-Mailman-Approved-At: Thu, 14 Feb 2019 07:48:39 +0000 Cc: bitcoin-dev@lists.linuxfoundation.org, lightning-dev@lists.linuxfoundation.org Subject: Re: [bitcoin-dev] [Lightning-dev] CPFP Carve-Out for Fee-Prediction Issues in Contracting Applications (eg Lightning) X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Feb 2019 05:56:13 -0000 Matt Corallo writes: >>> Thus, even if you imagine a steady-state mempool growth, unless the >>> "near the top of the mempool" criteria is "near the top of the next >>> block" (which is obviously *not* incentive-compatible) >> >> I was defining "top of mempool" as "in the first 4 MSipa", ie. next >> block, and assumed you'd only allow RBF if the old package wasn't in the >> top and the replacement would be. That seems incentive compatible; more >> than the current scheme? > > My point was, because of block time variance, even that criteria doesn't hold up. If you assume a steady flow of new transactions and one or two blocks come in "late", suddenly "top 4MWeight" isn't likely to get confirmed until a few blocks come in "early". Given block variance within a 12 block window, this is a relatively likely scenario. [ Digging through old mail. ] Doesn't really matter. Lightning close algorithm would be: 1. Give bitcoind unileratal close. 2. Ask bitcoind what current expidited fee is (or survey your mempool). 3. Give bitcoind child "push" tx at that total feerate. 4. If next block doesn't contain unilateral close tx, goto 2. In this case, if you allow a simpified RBF where 'you can replace if 1. feerate is higher, 2. new tx is in first 4Msipa of mempool, 3. old tx isnt', it works. It allows someone 100k of free tx spam, sure. But it's simple. We could further restrict it by marking the unilateral close somehow to say "gonna be pushed" and further limiting the child tx weight (say, 5kSipa?) in that case. Cheers, Rusty.