Post-clustermempool package RBF: per-chunk processing

Post-clustermempool package RBF: per-chunk processing

Original Postby sdaftuar

Posted on: November 15, 2023 16:07 UTC

The discussion emphasizes the importance of simplifying how package relay and transaction fees are considered within wallet software.

It suggests that defining a single transaction chunk, possibly described as the "highest feerate topologically valid subset," would be more straightforward than dealing with multiple chunks. This approach aligns with the viewpoint that increasing the processing unit size—from individual transactions to larger packages—should only be done to the extent necessary for fulfilling specific use cases, advocating for simplicity by focusing on the smallest viable unit.

There is a concern highlighted regarding the potential complexity and unintended consequences of allowing lower feerate chunks to satisfy the anti-DoS (Denial of Service) rules for a higher feerate chunk. Specifically, the additional implementation complexity needed to ensure that bundled chunks for validation are interconnected and the possibility of high feerate chunks meeting the incentive compatibility rule for lower-feerate chunks are seen as undesirable outcomes. Such arrangements could lead to unexpected behaviors in validation logic, particularly when it comes to handling transactions that fall under Replace-By-Fee (RBF) and Child-Pays-For-Parent (CPFP) scenarios. The interplay between RBF and CPFP is discussed, noting that situations requiring these mechanisms to work in tandem could introduce unnecessary complications.

The conclusion drawn advocates for limiting validation logic to single chunks and suggests that peer-to-peer code should handle larger transactions by first breaking them down into these manageable units for individual processing. This perspective aims to streamline the handling of transactions and maintain system integrity by avoiding overly complex arrangements that could arise from trying to accommodate multiple fee rates and transaction dependencies within a single validation framework.