Return-Path: Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 4E626C0001 for ; Sat, 29 May 2021 06:33:08 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 34BFC60775 for ; Sat, 29 May 2021 06:33:08 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: 0.602 X-Spam-Level: X-Spam-Status: No, score=0.602 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: smtp3.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wuGDZ4kPfT4B for ; Sat, 29 May 2021 06:33:07 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) by smtp3.osuosl.org (Postfix) with ESMTPS id B4F32606C0 for ; Sat, 29 May 2021 06:33:06 +0000 (UTC) Received: by mail-wr1-x42a.google.com with SMTP id x8so5300659wrq.9 for ; Fri, 28 May 2021 23:33:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=kPBZk3/l8XT3KbKIw9ViwaJgPs2EEAUion7L9Twkecs=; b=BPz9nlc/l+XBRmsT5ZVqx3GgPKd4FkdcUoXV5eMk0ph1aztUfQcOTEQKJQpGeOTPUB 9/2Ir+hx3s77CAu36EtLopnHNhEqgqBH3mirfW8k+KFv/2DP1K3q4wJ9QIhkHM5GMAuO jGqyOMT2hOKqKOkS6NCL9UWg7R05AjtKcxkmFp8AmHmM3sse1uciU/BF1IM2su6tDDIj J31pjvJxUC2p/Ft86CSTACFWfCysN20/KHhTzw6Lud+TVqRBHbU81MWCtZ5AbBRY5oXW BZ2HMwAId1pUmjx8RMzR0oQNda92hiVD7QnNoqhJbnoMTXf/NPJTswvYt4578mICbd9s Y9BQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=kPBZk3/l8XT3KbKIw9ViwaJgPs2EEAUion7L9Twkecs=; b=JhdCxXBPZ9WwH/snJzg5tYUqaxjcoYC/qy0Lb/qOVeUZtgYkf++HzK+azE+5N0GYkg isoPioW0UpnrO1PFPNrBfPmc2lz+sEz/NVPtMRHR9htFEprFu9gMqQv0pYMo6Y+u6m0S tl0ZeG7ybWqmQVoC9tMwawtd/l5ZgNu5rjSJCFSeMRv/JwSK4ERm6V6f4UALdw4iwzu4 6PvrSUaFfJJNx1d6KXVB0jiW8TVobxHWqKlZ+PtTySC0tZz6l+uE80fG4oC0J1BnR3kL ZvhME32wNQn8E6GyZtv2X7v1AhB1Oe97ivyd0o445mf9V8t5gjHn9dOVezEf2F0ymqYx R0xQ== X-Gm-Message-State: AOAM530QLXINf8plvW/xfVKUw9WLphKEbuOWtQTw66O6tDHQIuBzU2MG l53M+Fd1a9c3/wOSW50MITU1yD48gOBa5xxubU2gjSIN6bKlWA== X-Google-Smtp-Source: ABdhPJz9tkE1xksiLQtbUVLgdDyxpupg59yLqGNLIPfkrr9EAyzzhYgJobFzqMJj1/PnW72v9kiMKUWZnoabzt4F8kA= X-Received: by 2002:a05:6000:184a:: with SMTP id c10mr12871600wri.244.1622269984892; Fri, 28 May 2021 23:33:04 -0700 (PDT) MIME-Version: 1.0 References: <25ab1452-78a8-90f1-9b47-8de050d632d2@murch.one> In-Reply-To: <25ab1452-78a8-90f1-9b47-8de050d632d2@murch.one> From: Antoine Riard Date: Sat, 29 May 2021 02:32:53 -0400 Message-ID: To: Murch , Bitcoin Protocol Discussion Content-Type: multipart/alternative; boundary="0000000000002deb8b05c3722afd" X-Mailman-Approved-At: Sat, 29 May 2021 13:23:40 +0000 Cc: clara@chaincode.com Subject: Re: [bitcoin-dev] Improvement on Blockbuilding X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2021 06:33:08 -0000 --0000000000002deb8b05c3722afd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Mark and Clara, Great research, thanks for it! Few questions out of mind after a first read. > This approach enables block building to consider Child Pays For Parent (CPFP) constellations. I think that's a really interesting point, it's likely that such transaction graphs with multiple disjunctive branches become far more regular in the future. One can think about OP_CTV's style congestion-tree, LN's splicing or chain of coinjoins. If this phenomenon happens, can you expect CSB feerate perf to improve ? > CSB is more complex and requires more computation Let's say a malicious miner identifies and connects to its competitors' mempools then starts to broadcast to them hard-to-traverse CPFP constellations. Doing so, this malicious miner would prevent them either from assembling block templates at all or slow down their assemblage computation enough to gain an advantage in fee collection. Following current mempools limits, it would be relevant to know by how much CSB makes that kind of DoS possible/efficient. > From the point of view of global blockspace demand, if miners generally became DPFA-sensitive, it could encourage creation of additional transactions for the sole purpose of bumping stuck ancestors. As ASB's ancestor set and CSB's candidate set, a fee bidder, we'll have to pay the feerate to cover the new transaction fields, high enough to catch up with the already-present feerate set ? Likely more feerate efficient to RBF the first child, though you have to swallow the replacement feerate penalty (default 1 sat/vbyte iirc) Antoine Le mar. 25 mai 2021 =C3=A0 10:34, Murch via bitcoin-dev < bitcoin-dev@lists.linuxfoundation.org> a =C3=A9crit : > Hi Bitcoin Devs, > > We are writing to share with you a suggested improvement to the current > bitcoin core block building algorithm. In short, currently Bitcoin Core > uses a straightforward greedy algorithm which evaluates each > transaction=E2=80=99s effective fee rate in the context of its unconfirme= d > ancestors. This overlooks situations in which multiple descendant > transactions could be grouped with their shared ancestors to form a more > attractive transaction set for block inclusion. > > For example, if we have 4 transactions A,B,C, and D, with fee rates and > weights as follows > > Tx Fee Weight > A 5 1 > B 10 1 > C 15 1 > D 14 1 > > And dependencies: > =E2=80=A2 B is a descendant of A > =E2=80=A2 C is a descendant of B > =E2=80=A2 D is a descendant of A > The current algorithm will consider {A,B,C} best which has an effective > fee rate of 10. Our suggested algorithm will also consider {A,B,C,D}, > which has an effective fee rate of 11. > > Experimental data shows that our suggested algorithm did better on more > than 94% of blocks (99% for times of high congestion). We have also > compared the results to CBC and SAT Linear Programming solvers. The LP > solvers did slightly better, at the price of longer running times. Greg > Maxwell has also studied LP solvers in the past, and his results suggest > that better running times are possible. > > The full details are given in this document, and we are happy to hear > any comment, critic or suggestion! > > Best, > Mark and Clara > > Full details: > > https://gist.github.com/Xekyo/5cb413fe9f26dbce57abfd344ebbfaf2#file-candi= date-set-based-block-building-md > > Research Code: > https://github.com/Xekyo/blockbuilding > > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > --0000000000002deb8b05c3722afd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Mark and Clara,

Great research, thanks for it!
Few questions out of mind after a first read.

> This approa= ch enables block building to consider Child Pays For Parent (CPFP) constell= ations.

I think that's a really interesting point, it's like= ly that such transaction graphs with multiple disjunctive branches become f= ar more regular in the future. One can think about OP_CTV's style
co= ngestion-tree, LN's splicing or chain of coinjoins. If this phenomenon = happens, can you expect CSB feerate perf to improve ?

> CSB is mo= re complex and requires more computation

Let's say a malicious = miner identifies and connects to its competitors' mempools then starts = to broadcast to them hard-to-traverse CPFP constellations. Doing so, this m= alicious miner would prevent them either from assembling block templates at= all or slow down their assemblage computation enough to gain an advantage = in fee collection. Following current mempools limits, it would be relevant = to know by how much CSB makes that kind of DoS possible/efficient.

&= gt; From the point of view of global blockspace demand, if miners generally= became DPFA-sensitive,
it could encourage creation of additional transa= ctions for the sole purpose of bumping stuck ancestors.

As ASB's= ancestor set and CSB's candidate set, a fee bidder, we'll have to = pay the feerate to cover the new transaction fields, high enough to catch u= p with the already-present feerate set ? Likely more feerate efficient to R= BF the first child, though you have to swallow the replacement feerate pena= lty (default 1 sat/vbyte iirc)

Antoine

Le=C2=A0mar. 25 mai 2021 = =C3=A0=C2=A010:34, Murch via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> a = =C3=A9crit=C2=A0:
https://gist.github.com/Xekyo/5cb413fe9f26dbce57abfd344ebbfaf2#file-ca= ndidate-set-based-block-building-md

Research Code:
https://github.com/Xekyo/blockbuilding

_______________________________________________
bitcoin-dev mailing list
= bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mail= man/listinfo/bitcoin-dev
--0000000000002deb8b05c3722afd--