And if they are, why not be user defined like Bitcoin. Here we go again. My question does not have enough words in it so I am just typing.
1 Answer
They are hardcoded in the wallet software, not the protocol. That said, the protocol expects a non-zero fee for each transaction. The Monero protocol does not do fee free transactions so that it can prevent node, and blockchain spamming. Nodes also have the option of deciding which fee paying transactions they will relay of not, and if an enterprising users wishes to recompile the wallet client to send lower fees they can do so and take their chances on the transaction propagating and being mined.
The code in question, can be found here
-
Plz consider updating this answer if the answer by @arnuschky is correct Commented Oct 12, 2016 at 9:42
-
1It's not incorrect, I've already asked fluffypony about this and he clarified that it can be any fee but nodes by default will be unlikely to relay a transaction lower than the client default, what arnuschuky refers to is not consensus code. Commented Oct 12, 2016 at 14:09
-
It should be updated though, as it's not only the wallet software setting the fees. Effectively, if your wallet software produces a low-fee transaction you can't even distribute it in the network as the Monero nodes don't accept it into their mempool. (Which means for normal users that it practically behaves as if there's a hard-coded consensus rule.) Commented Oct 13, 2016 at 8:10
-
The only way you can produce a low fee transaction is if you explicitly tell it to, by default the wallet will not do this. This is not a problem as once the miners become discerning enough, they'll begin to tweak their qualifying criteria, and a fee market will evolve around that such that wallets will be able to more intelligently guess the best fees. The answer I've already given very clearly satisfies the question being asked. If you want to explore unrelated corner cases regarding fees, then please post another question. Commented Oct 13, 2016 at 10:34