Author Topic: Major bitshares_toolkit flaw that needs to be solved.  (Read 5345 times)

0 Members and 1 Guest are viewing this topic.

Offline Riverhead

Can you just floor or ceiling the irrational?

Offline monsterer

Prices are represented as 128 bit. 64.64 fixed point.

The problem is not the representation, but the model.

Price is stored as a ratio, which means you will always have problems like this:

ratio = 1.0001
1 / ratio = 0.99990000999900009999000099990000 recurring - this cannot be stored accurately no matter the precision.
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline vikram

There are no doubles or floats

This is true of the backend where it is critical, but not yet true when reading user input. We are aware of the input issue: https://github.com/BitShares/bitshares_toolkit/issues/671 but it is not high priority. There have also been various rounding problems in the market engine which we are doing our best to eliminate.

Offline bytemaster


OK, but the problem with not filling 100% of one's order is still in place, right?

I don't know the inner workings, I thought it was float or double, because it looked like it from my ignorant perspective, sorry for that.

Prices are represented as 128 bit. 64.64 fixed point.

For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline dxtr

  • Full Member
  • ***
  • Posts: 71
  • United We Stand, Dispersed We Are.
    • View Profile
OK, but the problem with not filling 100% of one's order is still in place, right?

I don't know the inner workings, I thought it was float or double, because it looked like it from my ignorant perspective, sorry for that.

Help me out:     wallet_approve_delegate mr.scroodge true

Offline bytemaster

For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline dxtr

  • Full Member
  • ***
  • Posts: 71
  • United We Stand, Dispersed We Are.
    • View Profile
First of all I really appreciate all that has been done to make BTSX real, I just want to throw my 2 Larimers
(and I hope they are not insignificant :D).

Let me describe an issue I find annoying when using BTSX GUI market tools:

Assume there is someone buying 1 bitGLD for 38456.78912345 BTSX and price feed is ok, and I'm willing to short that guy 1 bitGLD for this amount of BTSX.
What do I do? Simply enter those numbers in Sell Short window and expect this top position to be filled, right?
Well yes, but it's not exactly what happens.
If I do that I will short some bitGLD but not exactly 1, but something like 0.9999999999 bitGLD.
This happened to me and it's not a rare example.

Bytemaster, you claim that BTSX is different from traditional exchange in a way that you get exactly what you asked for and nothing more nor less - well that is not happening here.
For an average guy who want's to trade on a decentralized market, centralized ones like BTER are simply better for a reason they do, what you ask them to do, and not more or less so.

What I think, from my perspective of a small investor, is what needs to be done is to get rid of all floats and doubles in bitshares_toolkit code and base all blockchain variables and all arithmetics in integers. I remember it was mentioned in early stages of development, but now this problem is obvious and can not be worked around.
Right now this is something that keeps large investors looking at BTSX from safe distance, because they simply cannot put large money in something that doesn't function properly.

Bitshares is a multi-platform solution and I think every good system architect for financial applications will agree that floats simply do not work with accounting, when it comes to money you need to be accurate. Especially when designing a system that complicated and with such aspirations.

I think that this issue needs to be solved first, for investors to secure and multiply their holdings and bring large volumes in,
thus removing price feeds "scaffolding".

If there is someone who can fork toolkit code and implement this change only with a recent snapshot of BTSX then it is just a matter of time and marketing when people start packing their stuff and moving from BTSX to BTSY - It really hurts nobody, it's the opposite.

As a user of BTSX or Music or any other DAC I don't want a tool that fills only 99% of my request - that's just annoying and I don't want to loose my hair :P.
Help me out:     wallet_approve_delegate mr.scroodge true