Snipa22 / nodejs-pool

Other
479 stars 422 forks source link

I want to konw about feesForTXN #392

Open eeeeLeeee opened 6 years ago

eeeeLeeee commented 6 years ago

I know it is Transfer fee. But I donot konw its Decimal point. If I want to set it to 0.001XMR. How can I set it?

bobbieltd commented 6 years ago

feesForTXN : the amount of XMR (or coins) that the pool will keep to have money to pay the fees for sending payments. Putting it 1 (for all coins) will be safe. 0.001 is too low, unrecommended.

eeeeLeeee commented 6 years ago

As you know, every transfer has a transfer fee. I want to know who pays the transfer fee.

knoxcard commented 6 years ago

That would be the miners paying that fee. You are holding the extra reserves.

Venthos commented 6 years ago

Not necessarily true. It depends on your settings.

[ Fee Paid By Pool Owner ]

The pool owner always pays these fees from the pool's own wallet. No exceptions. "feesForTXN" is how much coin the pool will make sure to keep on hand to make sure it can cover transaction. This value here varies from coin-to-coin depending on its transactions fees.

However, you can help offset this cost by having your miners contribute towards transaction fees:

[ Fee Paid By Miner ] The pool operator has the choice of making the miner pay a fee, pay no fee, or pay a sliding scale fee based on how large their payout is.

For each wallet address that receives a payment, they are individually charged the value of feeSlewAmount from the MySQL pool config. Let's say that your payment page shows that you paid out 15 people a total of 1.8 XMR, and it cost you 0.039475982613 XMR to send that. and you had set a feeSlewAmount of 0.01 XMR. This means the pool would have individually "charged" 15 people 0.01 XMR, providing the pool wallet with 0.15 XMR in transaction fees. Since you had only spent 0.039475982613 XMR on that transaction, the pool wallet would have a bit of an extra amount of XMR for future fees.

Now, since Payment ID transactions must only ever be a single transaction to a single wallet, let's say someone earned 0.5 XMR and your wallet had to pay 0.021453535134 XMR to send it. Since your feeSlewAmount is 0.01 XMR, you would still only charge the miner 0.01 XMR and your pool wallet would be "in the hole" by 0.011453535134 XMR.

This is why nodejs-pool allows you to set a higher minimum for Payment ID addresses. The idea being that if they have a large payout, you will have likely earned enough coin through the standard pool fees to help cover the transaction fees.

Lastly, there is another value in MySQL called feeSlewEnd. If this is set to anything higher than your minimum payout, then you are enabling a "sliding scale fee" for your miners that would cause them to pay 0 XMR in fees when they reached a payout of at least feeSlewEnd's value.

So let's say feeSlewAmount is 0.01 XMR and feeSlewEnd is 2 XMR, and walletMin is 0.2 XMR.

Meaning if everyone on your pool set their payout threshold to be 2 XMR or higher, you (the pool owner) would pay all of the transaction fees out of pocket. However, the belief being that if that many people are sticking around to mine 2 XMR worth, they would have paid a decent amount of pool fees to you already and you would be happy to take on the transaction fees for them.