Cosmos-sdk: Make min_fee be able to be paid/set in multiple denominations

Created on 13 Dec 2018  路  10Comments  路  Source: cosmos/cosmos-sdk

As a user, I would like to be able to pay/set fees in any denominations of coins native to the chain. To implement this, we would need the following data for each denom:

  • Amount
  • Denomination
  • Gas cost per unit

When entering it in the command line it might look like:

--min_fee=1stake2,5photino4

cc @cwgoes @zmanian @alexanderbez

discussion proposal

Most helpful comment

Just to clarify, the suffix post denom is the gas cost per unit value. It's not the prettiest or most clear UX imho.

--minimum_fees=1steak,5photinos --gas_unit_cost=2steak,4photinos? Requires more sane validation but more clear I think. Maybe there is a better solution.

/cc @ValarDragon

All 10 comments

Just to clarify, the suffix post denom is the gas cost per unit value. It's not the prettiest or most clear UX imho.

--minimum_fees=1steak,5photinos --gas_unit_cost=2steak,4photinos? Requires more sane validation but more clear I think. Maybe there is a better solution.

/cc @ValarDragon

sounds good

Just a thought: do we need to do this right now or would it be enough to just go with token for now?

@faboweb it's not required for GoS. I think we should tackle #3118 first (already open PR) and then this. As this will build off of #3118 and requires more changes.

Theres a conflation here.

minimum_fee only exists in the minds of full nodes, as a method to determine whether incoming txs are worth enough to include. See #3044 for how I think that ought to be done. (Also I think that should reside in a config, perhaps a command can be used to live-edit it)

When you want to go create a tx, you want to specify how many tokens 1 gas is worth. (Or perhaps how many tokens is x gas worth) So instead of Gas cost per unit, it should be tokens per unit gas.

Specified by the client/user. I think we to modify the context/action item(s) of #3118 @jackzampolin. This needs to be supplied by the client/user. Correct me if I'm wrong @ValarDragon.

I'm confused. What I think makes sense to do is:

  • Have a minimum fee which full nodes set for their mempool in accordance with #3044
  • Have the client/user specify the tokens per unit gas, either via CLI or config or both. Once validators start having more sophisticated mempool validation, there should also be a tokens per p2p byte. (And eventually some means of handling storage rent)

I don't understand what the terms "Unit" or "Cost" means in Gas Cost Per Unit, hence I think tokens per unit gas is a better metric.

Precisely! What I鈥檓 saying is #3118 needs to address your second point.

FYI I changed the --fee flag on #3069 to receive sdk.Coins instead of sdk.Coin since the MinDeposit param already had that type

imho, this seems to be somewhat of a duplicate of #3101. Do you mind if I close @jackzampolin or are there different concerns. Users can already specify multiple fees via --fees. They just cant' configure the per unit cost of gas.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ValarDragon picture ValarDragon  路  3Comments

hendrikhofstadt picture hendrikhofstadt  路  3Comments

ValarDragon picture ValarDragon  路  3Comments

ValarDragon picture ValarDragon  路  3Comments

rigelrozanski picture rigelrozanski  路  3Comments