Merge branch 'master' into bsip32

This commit is contained in:
abitmore 2018-02-18 20:11:29 +00:00
commit 4819d6be64
3 changed files with 138 additions and 0 deletions

View file

@ -37,3 +37,5 @@ Number | Title |
[27](bsip-0027.md) | Asset Issuer Reclaim Fee Pool Funds | Abit More | Protocol | Accepted
[28](bsip-0028.md) | Worker Proposal Improvements | Bill Butler | Protocol | Draft
[29](bsip-0029.md) | Asset issue change to require owner authority | Fabian Schuh | Protocol | Draft
[30](bsip-0030.md) | Always Allow Increasing Collateral Ratio If Debt Not Increased | Abit More | Protocol | Draft
[31](bsip-0031.md) | Update Short Position's Margin Call Price After Partially Called Or Settled | Abit More | Protocol | Draft

71
bsip-0030.md Normal file
View file

@ -0,0 +1,71 @@
BSIP: 0030
Title: Always Allow Increasing Collateral Ratio If Debt Not Increased
Author: Abit More <https://github.com/abitmore>
Status: Draft
Type: Protocol
Created: 2018-02-16
Discussion: https://github.com/bitshares/bitshares-core/issues/583,
https://github.com/bitshares/bitshares-core/issues/672
Replaces: -
Worker: To be done
# Abstract
Currently, when a short position's collateral ratio is below MCR (a parameter
in price feed: `maintenance_collateral_ratio`) but is not completely filled
immediately due to a lack of enough volume on the opposite side of the market,
it will hang in the market and be waiting for being margin called.
The owner then can adjust the order's collateral ratio **only if**
* to close the position, or
* the new collateral ratio is above MCR, or
* the call order get completely filled (margin called) immediately.
While this prevents shorters from maliciously reducing collateral ratio (to
increase possibility of black swan event), it also prevents shorters from
slightly increasing collateral ratio (to decrease possibility of black swan
event).
This BSIP proposes a mechanism to improve this situation.
# Motivation
Make the exchange system more user-friendly.
# Rationale
The ecosystem would get benefit if shorters are allowed to reduce risks to
themselves while reducing risks to the system at same time.
Current rules are a bit too strict, which can be loosed to:
A shorter can adjust the position's collateral ratio **only if**
* to close the position, or
* the new collateral ratio is above MCR, or
* the call order get completely filled (margin called) immediately, or
* **the new ratio is higher than old ratio and debt is not increased**
# Specifications
In `do_apply()` function of `call_order_update_evaluator` class, if
finally found the call order still in margin call territory,
* don't throw an exception if `call_obj->collateralization()` is reduced, and
* require `delta_debt` of `call_order_update_operation` to be non-positive.
# Discussion
[to be added if any]
# Summary for Shareholders
[to be added if any]
# Copyright
This document is placed in the public domain.
# See Also
* https://github.com/bitshares/bitshares-core/issues/583
* https://github.com/bitshares/bitshares-core/issues/672
* https://bitsharestalk.org/index.php?topic=25926.0

65
bsip-0031.md Normal file
View file

@ -0,0 +1,65 @@
BSIP: 0031
Title: Update Short Position's Margin Call Price After Partially Called Or Settled
Author: Abit More <https://github.com/abitmore>
Status: Draft
Type: Protocol
Created: 2018-02-16
Discussion: https://github.com/bitshares/bitshares-core/issues/343,
https://github.com/bitshares/bitshares-core/issues/649
Replaces: -
Worker: To be done
# Abstract
Currently, when a short position get partially called or settled, the call
price won't change, that said, even if its actual collateral ratio is higher
than others, higher than minimum required, it will still be selling collateral
at a low price, taking precedence over other short positions.
This behavior is causing several issues:
* it's somehow unfair, thus brought bad experience to shorters, and
* it prevents black swan event from being triggered in time when needed,
because the collateral ratio of the 2nd even overall short positions may
be too low but not being checked, thus risks the pegging system.
This BSIP proposes a mechanism to improve this situation.
# Motivation
Make the exchange system more user-friendly.
# Rationale
To attract more users, the system should be fair, should be well balanced.
It's common sense that short positions with least collateral ratio should
get margin called first. This can be achieved if always update the margin
call price after every fill.
# Specifications
In `fill_order( const call_order_object& ...)` function of `database` class,
update `call_price` field of `call_order_object` after debt or collateral
changed to a non-zero value.
In addtion, after `call_price` get updated, the iterators initialized with
`by_price` index may be invalidated, so need to review / revise involved code,
E.G. `check_call_orders(...)` function of `database` class.
# Discussion
[to be added if any]
# Summary for Shareholders
[to be added if any]
# Copyright
This document is placed in the public domain.
# See Also
* https://github.com/bitshares/bitshares-core/issues/343
* https://github.com/bitshares/bitshares-core/issues/649
* https://bitsharestalk.org/index.php?topic=25926.0