ripple / ripple-client

A UI for the Ripple payment network built using web technologies
ISC License
1.34k stars 493 forks source link

order book #323

Closed jedmccaleb closed 11 years ago

jedmccaleb commented 11 years ago

orders with the same price should be combined in the order book list. look at the top of bitstamp BTC/USD now

melvincarvalho commented 11 years ago

Also there seems to be problems with rounding and/or ordering

0.0000  0.0000  58,850.00
0.0400  0.04    58,850.01
0.1346  0.0945  58,850.00

Are the current top 3 BTC/XRP

Note the values 0.0000 in line 1, and 58,850.01 in line 2

nanocoin commented 11 years ago

0.00000 USD ask amount with a super low price - looks strange. However, from the sum function, it looks like the ask must be for < 0.00000005 USD.

BTC-USD_order_book

JoelKatz commented 11 years ago

That looks like "dust", a tiny piece of an offer left over. It should get fully claimed with the next transaction that access that order book, but we are concerned that their might be bugs that cause such orders to "jam".

The bug would proceed something like this:

1) Someone tries to take a whole offer but due to rounding, leaves a tiny bit left of the offer, an amount at the limit of our precision.

2) Someone trying to take the rest of that offer calculates how much currency they need to put in to get all the currency out and gets zero due to rounding.

3) Putting zero currency in means zero currency comes out. The offer is unchanged and not removed.

4) As a result, the next time anyone tries to pass through this order book (including again on this very same transaction) they simply repeat the failed attempt indefinitely and the transaction jams.

We have been working on fixing these issues in the server using biased rounding. If you are sure to round up how much currency you put in the offer, it will always be enough to reduce the offer to zero and clear the "dust".

nanocoin commented 11 years ago

Another "dust" situation from the looks of it. Curious that the ask at a super low price does not immediately get snapped up by a bid that is way higher. I keep trying to bid to clear that ask, but to no avail. Thanks.

Fullscreen capture 3272013 84707 AM

ahbritto commented 11 years ago

Thank you. That's very interesting. Unfortunately, it is hard to tell if that is a client or server side problem.

We should have the client display the ledger number somewhere so we can examine the ledger history to determine who is responsible.

nanocoin commented 11 years ago

Thanks.

Another oddity here. I offered to buy 0.2 USD @850XRP =170 XRP (see Live transaction feed entry on the graph screeenshot) which was matching the ask. For some reason, I got filled only for $0.18 and the orderbook is still showing a bid for 0.010379 USD at 850 XRP. Any idea why, when I bid for more USD that was offered at the ask, I did not get the whole amount? Seems strange. Thanks. LMK if I can provide any further information to help solve this. Thanks.

Fullscreen capture 3272013 93219 AM Fullscreen capture 3272013 93244 AM

ahbritto commented 11 years ago

One thing, if you see something odd, reload the client and verify if it still there. The client is accurate when it first shows an order books, but does not fully account for unfunded offers when updating.