bitshares / bitshares/bitshares-core
Implement simple rate limited free transaction feature
- Dominant language
- C++
- Stars
- 1.2k
- Forks
- 660
- Avg merge
- 8h 17m
- Merged PRs (30d)
- 26
Description
_From @abitmore on February 29, 2016 23:14_
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"](http://bytemaster.github.io/article/2016/02/10/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
_Copied from original issue: cryptonomex/graphene#603_
Contributor guide
No contributing guide indexed for this repository
Research direction
No source files, entry points, or tests are named. Start by reading the linked blog post and the feature bullets, then identify where fees, committee parameters, account types, and transaction operations are defined. Done means the listed coin-day conversion, caps, and fee-exclusion rules are implemented with agreed tests and parameter semantics.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- blockchain, cpp
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100