Bitcoin Forum
July 12, 2024, 05:05:03 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Rules for TXN propogation, minRelayTxFee and FeeFilter with CPFP  (Read 152 times)
brianddk (OP)
Jr. Member
*
Offline Offline

Activity: 47
Merit: 16


View Profile WWW
May 21, 2020, 09:12:15 PM
Merited by ranochigo (2), ABCbits (1), joniboini (1)
 #1

Looking at the default reference implementation, I'm trying to get an idea has to how minRelayFee, FeeFilterand CPFP work. So maybe someone can tell me where I'm off track.

  • I think fee-per-KB is fee per 1000 vbytes, not 1024 (KB -vs- KiB)
  • I think that minRelayTxFee, and FeeFilter does calculations in vbytes not bytes
  • I think that minRelayTxFee, and FeeFilter ignore CPFP relations

To restate, I think each Tx must meet the requirements for minRelayTxFee, and FeeFilter on its own merits and without CPFP relations, but that segwit sizing is taken into consideration.

Thoughts?
nc50lc
Legendary
*
Online Online

Activity: 2478
Merit: 5786


Self-proclaimed Genius


View Profile
May 22, 2020, 02:06:25 AM
Merited by ABCbits (1)
 #2

Thoughts?
I also think that it's vBytes, the fee rate is also based from vBytes not Bytes.
Because if the minRelayTxFee is based from Bytes, then 1input-2output 1sat/vB TXns w/ SegWit data will be lower than the
default minRelayTxFee & FeeFilter which would be rejected by most of the nodes, which doesn't usually happen.

Example:
A SegWit transaction of 166vBytes with 1sat/B transaction fee would have 0.67sat/B if it will be computed based on Raw Bytes (approx 247B).
Or just take a look at blockstream's data from a random SegWit Tx: 5de78791f4c7d545c5c03eda1953a62da7d4b9a07416687c851988b57ce1807f
"Transaction fees" is based from vBytes.

Just my thoughts.

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
ranochigo
Legendary
*
Offline Offline

Activity: 2982
Merit: 4193



View Profile
May 22, 2020, 02:41:24 AM
Merited by ABCbits (1), hugeblack (1), brianddk (1)
 #3


I think fee-per-KB is fee per 1000 vbytes, not 1024 (KB -vs- KiB)
That is correct. Bitcoin uses kilobytes and not kilobits.
I think that minRelayTxFee, and FeeFilter does calculations in vbytes not bytes
This is also correct. Transactions are calculated in vbytes instead of bytes.
I think that minRelayTxFee, and FeeFilter ignore CPFP relations
For now. minRelayTXfee and FeeFilter cannot judge transactions based on CPFP outright as there is no way to know whether a transaction has CPFP until the child transaction gets relayed.

However, there is a pull requests which fixes this, slated for release in v0.20.0 [1]. The pull requests is beneficial for CPFP as the node would be able to fetch the parent transaction after seeing the child transaction.

[1] https://github.com/bitcoin/bitcoin/pull/16851

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
brianddk (OP)
Jr. Member
*
Offline Offline

Activity: 47
Merit: 16


View Profile WWW
May 22, 2020, 05:24:46 AM
 #4

For now. minRelayTXfee and FeeFilter cannot judge transactions based on CPFP outright as there is no way to know whether a transaction has CPFP until the child transaction gets relayed.

However, there is a pull requests which fixes this, slated for release in v0.20.0 [1]. The pull requests is beneficial for CPFP as the node would be able to fetch the parent transaction after seeing the child transaction.

[1] https://github.com/bitcoin/bitcoin/pull/16851

Very cool... thank you.  I had seen an article or interview with some LN people and they were discussing a proposal to handle cooperative closing with a form of CPFP.  The idea was that either, or both operators could broadcast a 0 sat/b txn.  This would give a little more options for handling the channel reserve and allow both parties to split the cost of closing with 0 sat/b + CPFP.  Of course the same could be done for the opening channel TXN as well.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!