This post does not address mobile wallets or SPV wallets.
I am unsure about the ABC GUI wallet but the BitcoinUnlimited GUI wallet has the option to send a transaction with no fee. However, there is a priority requirement enforced by the BCH network that must be met for that free transaction to be included into a block by default (miners can override this but i wont get into that here).
PLEASE NOTE: The following calculation is not 100% correct and the reality is a bit more complicated but this serves as a good general guideline to follow to know if your tx will be accepted with no fee.
To be included in a block with no fee the transaction must destroy at least 1 coinday (57.600.000 "priority points"). The main reason for this is to prevent spam.
You can find how many coindays a transaction will destroy using the following formula: Sum up the "priority points" of each input by multiplying the age of the input in blocks with its value in satoshi. Add all of the "priority points" for all of the inputs together then divide by the size of the tx in bytes (Example below). If the result of that equation is greater than 1coinday (57.600.000) then a miner that supports free transactions under the default configuration will include it in the next block they mine.
The 57.600.000 is the result of COIN * 144 / 250. COIN is the number of satoshis that make up 1 whole bitcoin (100.000.000). 144 is how many blocks are mined in a day on average (6*24). 250 is a number that has to do with the transactions size but i wont get into that right now.
Example: if your tx spends 2 inputs, the first of which is 10 blocks old and has a value of 10.000 satoshi and the second is 20 blocks old and has a value of 7.500 satoshi and the size of the tx is 212 bytes then the transactions priority is (10 * 10.000) + (20 * 7.500) = 250.000 / 212 = ~1.179,25. 1.179,25 is clearly less than 57.600.000 and will need to sit in the mempool for some time to earn enough points to be included in a block. In general the formula favors older transactions that are smaller in size.
I hope this explanation helps you understand the free relay system a little bit better.
Edit: "priority points" is in quotes because its a term i just made up for the value so this explanation was easier to understand. internally in the code it is typically just called dPriority.
[link] [comments]
source https://www.reddit.com/r/btc/comments/b4s8n4/an_explanation_of_0fee_transactions_in_bch/
No comments:
Post a Comment