Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Process to Reset a SmartCoin after a Blackswan Event #664

Closed
ghost opened this issue Oct 11, 2016 · 10 comments
Closed

Process to Reset a SmartCoin after a Blackswan Event #664

ghost opened this issue Oct 11, 2016 · 10 comments

Comments

@ghost
Copy link

ghost commented Oct 11, 2016

Is there a formal process to reset a SmartCoin after a blackswan event and divide the underlying collateral between the remaining SmartCoin holders?

I was under the impression that collateral would go into a settlement pool which holders can use to settle their remaining SmartCoins after this type of event.

ALTCAP.X has blackswaned and has five holders who I would like to make whole by returning the underlying bitBTC collateral.

@xeroc
Copy link
Contributor

xeroc commented Oct 11, 2016 via email

@ghost
Copy link
Author

ghost commented Oct 11, 2016

SmartCoin holders see the following using the gui

Failed to broadcast the transaction:
Cannot force settle with no price feed.

and in the cli

0 exception: unspecified
37006 insufficient_feeds: insufficient feeds
Cannot force settle with no price feed.

I cannot publish a price feed due to the blackswan.

Is global_settle_asset useful in this situation?

@pmconrad
Copy link

That looks like a bug.
No, global_settle_asset won't help you there.

@ghost
Copy link
Author

ghost commented Oct 13, 2016

Thanks for your replies xeroc and pmconrad.

I have been using the test-net to settle smartcoins after a blackswan.

ALTCAP.X, SETTLE and SETTLE.WEEK have now all been force settled due to lack of collateral on the test net. In doing this, I have found FEED LIFETIME IN MINUTES to be very important in allowing holders to settle their smartcoins.

SETTLE.WEEK was created with a FEED LIFETIME of 10080 minutes (one week) to test settlement of the asset for up to one week after a blackswan. I will post later if this works as planned.

A 24 hour feed lifetime is insufficient time to allow holders to settle and recover collateral. I apologize to the ALTCAP.X holders for not testing this setting thoroughly and hope ALTCAP.X can be reset in the future to allow holders to recover their funds.

In light of this, I have changed FEED LIFETIME to 10080 minutes for ALTCAP on the bitshares network and recommend the committee increases FEED LIFETIME on all bitASSET smartcoins.

@grctest
Copy link

grctest commented Oct 14, 2016

Relevant bitsharestalk thread: https://bitsharestalk.org/index.php/topic,23334.0.html

The GRIDCOIN MPA (in blackswan state) doesn't have the 'Force Settlement' option (gave up said permission).

@pmconrad
Copy link

pmconrad commented Oct 14, 2016

The GRIDCOIN MPA (in blackswan state) doesn't have the 'Force Settlement' option (gave up said permission).

That doesn't matter. After a black swan, forced settlement is allowed in any case. https://github.com/cryptonomex/graphene/blob/master/libraries/chain/asset_evaluator.cpp#L436

FEED_LIFETIME shouldn't matter, because after a black swan settlement doesn't happen at the feed price but at the (fixed) settlement_price. That is a bug that needs fixing. Should be allowed here but isn't: https://github.com/cryptonomex/graphene/blob/master/libraries/chain/asset_evaluator.cpp#L439

@ghost
Copy link
Author

ghost commented Oct 16, 2016

Yes "FEED_LIFETIME shouldn't matter" but it does at the minute.
Now on bitshares and the test-net you have only the "FEED_LIFETIME" to settle your smartcoins after a blackswan.

The test I mentioned above:
SETTLE - I cannot settle because the 24 hour FEED_LIFETIME has passed
SETTLE.WEEK can still be settled because FEED_LIFETIME is 10080 minutes (1 week)

@abitmore
Copy link
Contributor

FEED_LIFETIME shouldn't matter, because after a black swan settlement doesn't happen at the feed price but at the (fixed) settlement_price. That is a bug that needs fixing. Should be allowed here but isn't: https://github.com/cryptonomex/graphene/blob/master/libraries/chain/asset_evaluator.cpp#L439

The code

   else if( bitasset.current_feed.settlement_price.is_null() )
      FC_THROW_EXCEPTION(insufficient_feeds, "Cannot force settle with no price feed.");

perhaps should be

   else if( bitasset.current_feed.settlement_price.is_null() || bitasset.has_settlement())
      FC_THROW_EXCEPTION(insufficient_feeds, "Cannot force settle with no price feed.");

so an asset not in black swain state shouldn't be forced settled if no enough price feed provided.

Thoughts?

@pmconrad
Copy link

Close... I think this would be the correct condition:

else if( bitasset.current_feed.settlement_price.is_null() && !bitasset.has_settlement())

i. e. throw an error if neither feed nor settlement are available. Settlement is possible with either feed or settlement.

@vikramrajkumar
Copy link
Contributor

This issue was moved to bitshares/bitshares-core#216

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants