Proposed new policy for transactions that depend on other unconfirmed transactions [combined summary]



Individual post summaries: Click here to read the original discussion on the bitcoin-dev mailing list

Published on: 2015-10-08T06:10:37+00:00


Summary:

The proposed policy limits on unconfirmed transaction chains in Bitcoin Core are currently under discussion among developers. The existing limits for descendant packages are 1000 transactions and 2500kb total size, while for ancestor packages, the limits are 100 transactions and 900kb total size. However, there is a proposal to change these limits to 25 transactions and 100kb total size for both types of packages. It is important to note that these proposed limits are not a change to consensus rules and can be adjusted on an individual node basis in Bitcoin Core.In addition to the proposed limits on unconfirmed transaction chains, Alex Morcos has put forward a set of requirements for accepting new transactions into the mempool and relaying them. The aim of this policy is to limit the size of the mempool and ensure that a new transaction can cover the costs of any dependent transactions it may displace. Four new policy limits have been proposed, all of which can be configured using command line settings. In April and May of this year, these proposed limits would have affected less than 2% of transactions entering the mempool. However, during a stress test period, as many as 25% of transactions would have been impacted.The reason for reducing the limits on unconfirmed transaction chains is primarily due to concerns about mempool congestion and relay fee boosting attacks. The current limits for ancestor packages are 100 transactions and 900kb total size, while for descendant packages, the limits are 1000 transactions and 2500kb total size. The proposed new limits for both types of packages would be 25 transactions and 100kb total size. It is worth noting that these limits do not alter consensus rules and can be customized for each individual node using Bitcoin Core.Alex Morcos has made significant proposals to decrease the current policy limits on unconfirmed transaction chains. The existing limits for ancestor packages are 100 transactions and 900 kilobytes of total size, while for descendant packages, the limits are 1000 transactions and 2500 kilobytes of total size. The proposed new limits for both types of packages are 25 transactions and 100 kilobytes of total size. These limits can be adjusted at the command line level on each node that utilizes Bitcoin Core.To ensure a smooth and efficient transaction process, certain limits have been established. The first limit restricts transactions larger than 100 kilobytes from being accepted. This ensures that the size of transactions remains within a reasonable range. The second limit focuses on the fee rate, disallowing transactions with a fee rate equal to or less than 1 satoshi per byte. This encourages users to attach an appropriate fee, which helps prioritize their transactions. The third limit aims to prevent transaction flooding attacks by rejecting transactions that would cause the mempool's total size to exceed 300 megabytes. This safeguard protects the network from becoming overwhelmed by a large number of transactions. Lastly, the fourth limit maintains the policy that all transactions in the mempool should be mineable in the next block. To achieve this, transactions will not be accepted if the total size of all unconfirmed ancestor transactions is too large. By default, this limit is set at 1 megabyte.It is important to note that these limits would have affected less than 2% of transactions entering the mempool in April or May of this year. However, during the stress test period from July 6th to July 14th, up to 25% of the transactions would have been impacted. For those interested in the technical details, the code to implement these changes can be found in pull request 6557, which is based on pull request 6470. These pull requests contain the necessary modifications to enforce the aforementioned limits and enhance the overall transaction process.


Updated on: 2023-08-01T15:15:59.869443+00:00