Agreed with change to reduce minimum fee to 0.001 or 0.0001 PPC.
If we make this change, is it also worth thinking about future minimum fee changes. What if PPC price increased 10x or 100x and what would a fair minimum fee be under these conditions?
Or should these changes be on an ad-hoc basis?
Changing of the minimum transaction fee charging 0.003 for 300 bytes instead of charging 0.01 for 300 bytes sounds more like a “bugfix” than anything else. The letter of the law is being held intact.
Originally this is what the thread sounded like. However, as explained earlier the minimum fee is different from the fixed transaction fee per KB. So the price increase is orthogonal.
Changing the fixed transaction fee per KB 0.01/KB, while an interesting discussion, it is one of more significant consequence and should be analyzed more deeply with merits. In addition, the reward scheme must be analyzed as well, which has ramifications on the incentives and ultimately security of the system.
Unless a transaction can be processed without any bytes being used, all transactions necessarily have a fee.
So the issue need not be “should we create a lower minimum fee” but rather: should the fee reflect, in a proportional way, the number of bytes used, subject to a maximum fee of 0.01kb
If so, this means the 0.01kb would become a percentage fee - 0.01 PPC for 1kb, 0.005 PPC for 0.5kb, and so on - but the percentage aspect would not apply above 1kb, because the cap of 0.01PPC would apply.
Is this an accurate understanding?
I did not find anywhere mentioning a transaction fee maximum? Do you have a link to share?
This really seems more like a bugfix. The fee is 0.01 PPC per KB. Though anything smaller than 1 KB is still charged 0.01 PPC rather than the correct fraction. Anything over 1KB should corresponding have a fee greater than 0.01 PPC according to the 0.01 PPC per KB ratio. For example, 2KB should be charged 0.02 PPC.
I assumed a 0.01 PPC maximum because of Nagalim’s post here:
Maybe I have mis-interpreted “total” to mean a cap or maximum. Perhaps Nagalim can clarify?
Thinking more widely, for a moment, why does making the fee proportionate to the use of bytes even matter? What causes the byte size of transactions to vary? Can it be controlled? Do people even know what the byte consumption will be?
Essentially, I ask: why should the cost of a transaction not be the same for everyone? Why vary the fee on the basis of a technical issue such as the amounts of bytes, which users may not be able to control?
If a txn is 2.5KB we currently require a 0.03 PPC fee. If we make these changes, it would instead require a 0.025 PPC fee. There is no maximum.
PPC “cryptocurrency” transaction should have the same size and hence pay the same fee.
The bytes will vary due to other uses of the blockchain that leverage OP_RETURN, such as PeerAssets. As Peercoin is used to control and secure other digital assets, the number of use cases increases the varying amount of bytes being used. In the example above peerchemist mentioned using Peercoin as a notary for real estate. My understanding is that this data would be stored as OP_RETURN, not clear if a specific customization or done using PeerAssets.
Either way, applications that users decide to participate in is either under their control or the fee schedule is public and transparent, 0.01 PPC per KB.
This is for sure true. Also, someone that includes a dozen outputs should pretty clearly pay more fee than someone who includes only one.
While I understand the desire to look at this from the customer perspective, I instead urge you to look at this from a network stability perspective. The fee is first and foremost a spam filter. By requiring a fee burned from supply based on the data size, we ensure that Peercoin will never be bloated by spam (which is of course measured in data size). This allows us to take a philosophy about the blocksize debate that is unaffordable to a chain like bitcoin: namely that the blocksize limitation is not very important as a spam filter, such that we are confident we can get consensus raise it up off 1 MB when the time comes.
The consumer argument is as follows:
Shoes are priced the same, regardless of shoe size, so a big footed man pays the same price as a small footed man. Now, it may be said this is unfair, as the small footed man uses less leather, and should pay a lower price, but both men get the same product which does the same job - so, it is right that shoe shops charge the same for different sizes
This is my view on the fee variance. Why should two people pay a different fee for performing the same task on the network, which is to make a transaction? A nicely rounded 0.01 PPC for all transactions is desireable.
Unless, of course, there are reasons why it is not a good idea
Now we’re talking. I was not aware of the full significance of the data size. Preventing spam is essential to network health and can over-ride the consumer argument for a level fee. This means that there would be no minimum fee, and no maximum fee. The fee would simply reflect the number of bytes used. Is that right?
If they truly do the same task (same number of inputs and outputs), then they pay the same fee (regardless of how much coin they transact). The point is that someone that runs all the time and goes through twice as many shoes should pay twice as much as someone who doesn’t. This is reflected in the fee.
I would argue that the person who runs a lot is the equivalent to the person who sends many transactions.
But admittedly I don’t understand inputs and outputs - does this refer to what we can see in Coin Control, when the transaction collects together numerous little lumps of coins, and sends them together, thus creating more inputs/outputs? Is this what causes the data size to rise - or is it the number of coins that determines the data size? Thanks
If you send 10 coins to 5 people each, it will be a bigger transaction than if you send 50 coins to 1 person. These are called outputs. Input grouping is another question, but has similar implications.
Anyway, this thread is not to debate the size of the fee itself. It is about the changes listed in the OP, including a reduction of the minimum fee and removing fee rounding.
Thanks for the explanation. As I understand the issue at hand:
The unit fee is 0.01 PPC per kb
A minimum (absolute) fee per transaction is set at 0.01 PPC
i) Regarding the minimum fee, Nagalim says above that a typical transaction in terms of kb is 0.3kb, or 300 bytes. So, the present minimum fee of 0.01 PPC effectively triples the cost to the average user. Reducing the minimum fee to a micro level will allow the fee to find its “correct” (lower) level. Users will save money.
To my mind, this is perfectly reasonable.
ii) Then there is the question of rounding. At first, I did not grasp this, as rounding 0.3kb up to 1 kb appears to have the same effect as setting a minimum 0.01 PPC fee. It’s as though two designers each wanted a minimum fee of 0.01 PPC per transaction and, unbeknown to each other, set about achieving it via different means.
But as I understand it now, rounding is also pertinent with fees over 0.01 PPC. As explained in a post above, a 2.5kb transaction is presently treated as though it was 3kb, and so a fee of 0.03 PPC is charged, rather than 0.025 PPC. If rounding is always done upwards, removing it will save users money. If rounding is done up or down, it won’t save money, but the fee will be more accurately distributed per user. Either way, it is a good proposal.
I support the removal of rounding and the re-setting of a minimim fee to 0.0001 PPC.
As I further understand it, the reason why the minimum fee is not removed altogether is because the existance of a 0.0001 PPC minimum fee will help deter spam. Its existence will not, however, affect fees as actually charged in practice.
0.001 PPC I choose this one
reduce minimum tx fee to 0.001 ppc
I also am in favor of lowering the minimum tx fee to 0.0001 from 0.01
Note that in the peercoin source src/main.h , there are 3 constants, which are all set to 0.01 (CENT):
static const int64 MIN_TX_FEE = CENT; static const int64 MIN_RELAY_TX_FEE = CENT; ... static const int64 MIN_TXOUT_AMOUNT = MIN_TX_FEE;
Do we change all to 0.0001 (increasing granularity)?
0.0001 PPC sounds good to me too
im for changing the minimum fee to 0.0001 PPC , but im not sure about changing the unit fee
I would keep the fee at 1%, what is the reason to lower it?
I thought peercoin was going to be viewed as a reserve currency and the transaction fee was to reduce blockchain bloat and keep inflation low.
I don’t see it as a problem as we have proof stake available to anyone and this is a way earn coins to effectively buy transactions.
Peercoin needs to stand out and low fees is chasing the lowest common denominator, theirs hundreds of coins competing in that space.
The more we stick to the original vision the more credibility this currency has.
pls as lower as possible, 0.0001sounds better!