Skip to content

Implement simple rate limited free transaction feature #603

@abitmore

Description

@abitmore

This ticket is for the implementation of a simplified version of "rate limited free transaction" feature which is introduced in bytemaster's blog post "How to build a Decentralized Application without Fees".

The simplified feature is:

  • we still keep the fees, but stake holders can accumulate coin-days, which can be used to pay fees, so if someone has held a certain number of stake for a certain time she can for example make one certain transaction for free.
  • No real-time dynamic fee adjusting.

Features:

  • Committee can define the rate of coin-days to be converted to fees,
    for example, for normal users 1K BTS * 1day = 1BTS of fee, for AM 1KBTS * 1day = 2 BTS of fee, for LTM 1KBTS*1day=5BTS of fee
  • Committee can define a cap of coin-days used for fees for each operation.
    for example, users can use coin-days to pay at most 10 BTS of transfer fee, or 1 BTS of market order creating fee, or etc
  • Committee can define a cap for every account type(LTM/AM/normal user), so a user would be unable to spam 100 or more free transactions at same time.
    for example, LTMs will have a cap of 100BTS, AM 50BTS, normal user 30BTS.
  • fees paid with coin-days won't go to referral program (or cash back for LTM)

With the parameters defined in above examples, if an LTM has 1M BTS, she can accumulate 5000 BTS of fees per day, or about 3.5BTS per minute. In case when transfer fee is 30BTS and the committee set the cap of transfer to 30BTS , she can transfer once for free every 10 minutes.

Possible future extensions:

  • allow collateral to accumulate coin-days
  • holding smart coins can accumulate coin-days
  • allow fees to be paid from another account's coin-days
  • per-asset settings/limitations
  • dynamically adjust fees in response to system/network load

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions