I've checked the applied fees on existing tx, and here is the result (i didn't include small tx than can be free [with 2 txIn and 2 txOut for exemple]) :
Hash : e25860839f74665bbf887844b90785223c2033ab3f852daaca7693b88cf3e713
Size : 991 bytes
Nb in : 3
Nb out : 13
NMC in : 0.34035895
NMC out : 0.30035895
Fees : 0.04
Small tx, 7 txOut dust (8x0.005)
Small tx but lot of dust (~30 outputs < 0.01NMC) (31x0.005)
Big tx (41x0.005)
Big tx (98×0,005)
Big tx, 1 dust output (this tx does not follow client fees of 35x0.005=0.175)
Small tx, no dust (3x0.005)
Small tx, no dust (2x0.005)
As you can see, fees are not so small (and if NMC value increase, it'll be expensive), if the tx follow the default fee mechanism with a base fee of 0.005 in the client.
The default client fee of 0.005 has been changed in version 3.5 (if I'm right), to adjust to something more reasonable and coupled with dust spam filter it seems to generate correct fees.
But, to avoid a hard fork, the relay fee is still set to 0.0001 (50 times lower), so it's possible to pay 50 times less.
So, to resume problems :
- the dust filter is a bit "raw" (for each output below 0.01NMC, add the default fee) and not suited for tx like 1c30f791638ce5dfd9dcd48b0a17bcd86f30df673659b91fdd56adeaaba956a7 & f519d0eef901e9920bbb532239f55304f66ae05f8e2f01b112d02a4d88699bb4.
- relay fees are too low
- if we both changes the way to calculate fees & relay fees, default fees will be too high.
Maybe we can :
- update the dust filter to use 0.001 as limit (instead of 0.01NMC) and add 10xFees when dust
- complete by "add fee for each txOut above the second one" (too much split penalized)
- change the relay fee to 0.0002
- change the client fee to 0.0020
About name_* transactions, we can choose to add fees in any case (so, 0.002NMC for client / 0.0002NMC for relay)
About locked coins in name_new, we can change the value to 0.0001NMC, but we'll raise the anti-dust feature
(it may be a way to force fees), so, 0.001NMC ?
With those 2 changes, people have an incentive to update to this new version (0.005NMC instead of 0.01NMC for name_new + name_firstupdate) and each name_update will cost at least 0.002NMC
Result on TXs above (currentFee => new ClientFee / new RelayFee) :
Fees : 0.04 => 0.022 / 0.0022 (0k + 13 out)
Fees : 0.155 => 0.080 / 0.0080 (1k + 41 out)
Fees : 0.206 => 0.080 / 0.0080 (40k)
Fees : 0.49 => 0.192 / 0.0192 (96k)
Fees : 0.017 => 0.086 / 0.0086 (33k + 1 dust)
Fees : 0.015 => 0.142 / 0.0142 (2k + 71 out)
Fees : 0.01 => 0.064 / 0.0064 (1k + 33 out)
* khal will read those things about bindings and similar idea.
As I don't understand very well what it means :p