I am running coinsmack.com, which uses bitcoin micro-transactions to vote things up, and the person who posted
I am working on an automated payout system, and would like to make it fairly instant (the second you get bitcoins on your post, the post will send bitcoins to you).
Can anyone spell out what the most common mining software uses as an algorithm to ignore transactions it deems as likely spam? What is the calculation of the fee required, and is it based on the number of bitcoins in the transaction?
If the transaction has any output less than 0.01 it is considered suspiciously spamlike and will need to provide a fee, at least by most of the software out there (see also: https://en.bitcoin.it/wiki/Transaction_fees
). It isn't just mining nodes you need to worry about, without meeting this anti-DOS rule most nodes won't even forward your transactions along.
The unmodified reference client will automatically add the small fees it believes are _required_ by the network due to the anti-dos rules, even if you have paytxfee set to zero.
I encourage you to maintain a balance, and if you have auto-payout only pay when the users hit some fairly large threshold on the order of 0.1 to 1.0. By maintaining some balances and doing bulk operations you'll also increase your ability to use sendmany, which will reduce chain traffic and require less fees from you (less risk of looking spamlike).
A great number of users only run their clients intermittently and if they've been offline for a bit no transaction is going to be instant to their client from their perspective as they'll need to catch up. They probably won't see it at all until it's mined, which may be an especially long time if your payments look spammy. Payments within your system will always look instant to your users of course.
More importantly, you do your users a disservice by paying them tiny amounts frequently. When they go to respend those coins they'll each add to the input data size of their spending transaction— and the user will end up paying more fees overall then if they'd just been paid in bigger chunks a little less frequently.