bitshares / bitshares/bitshares-core

Implement simple rate limited free transaction feature

Open
#186 8 comments 0 reactions 0 assignees View on GitHub
hardfork
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.