-
Notifications
You must be signed in to change notification settings - Fork 63
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
Refactor DB code #11
Labels
refactor
Code necessary for long-term code quality but will involve lots of abstraction & generalization
Projects
Comments
Rjected
added a commit
that referenced
this issue
May 29, 2019
Rjected
added a commit
that referenced
this issue
Jul 3, 2019
Rjected
added a commit
that referenced
this issue
Jul 10, 2019
Rjected
added a commit
that referenced
this issue
Jul 11, 2019
* starting batching * finished batcher implementation * integrating batcher * The batcher sort of works But the orders are invalid for some reason and my computer starts going crazy * Fixed the going crazy issue * added logging * More notes on auction matching algorithm design * Finished matching comment What a beast of a matching algorithm * Working out clearing matching * fixed db readme * Starting db integration tests Need to find way to test against a real db but not test against actual data * Starting to create db config and integration tests * See #11 * Updated tests to run w/ new changes * Added mysql to travis * Added user and db destructors for cleaner tests ripperonis in pepperonis * Got destructors to work, tests pass * Changed syntax to be mysql compat * Added tests for more queries * add noisy link * Fixed email link in contributing file * Deleted dextechsurvey.md Now that this repo has a bunch of working code, it might be a good idea to create some other document to outline and analyze all of this, such as a wiki. It's also important to stay objective, and dextechsurvey.md wasn't super objective, even if there was some good analysis. * Added lite params, more tests * Added price tests, should add more * Descriptive errors, fixing issues in db code * Fixed issue with matching still need matching tests * Fixed issue, tests are representative now * Added execution and errors Working on properly defining an order execution * Finished execution struct * Changed entry, added tests and expected behavior * Working on executions * Added another test for the fill method * Added more tests for fill, fairly sure it's correct Just to add price tests then finish the crossed fill * Generating executions is now half complete Adding more tests * Execution processing added Now to fix to work with tests * Fixed issue with orderID bytes Test finally pass!!!!!!! * Adding tests and rationale for price Binance is backwards with their trading pairs * just removed price polarity This also breaks all other matching, like price/time priority. This means we need to write/test similar algorithms for price/time priority matching. * Removed orderbookprice from auctionorder * Creating matching algorithm tests * Adding more tests and methods for testing clearing * Fixed decoding I hate mysql * Adding rationale for trivial test This should fix the other test failure once implemented and set all of the reasoning straight * Made tests pass, cover matching algorithm I honestly can't believe it works, like holy crap I made matching algorithms testable * Fixed silly test db issue travis should work now * Starting with batching, removed printf Need to keep track of things for batch * fixed tests * Doesnt compile but it's a start need to work out matching engine api * Creating types for orderbook, matching abstraction orderbook is what the user sees, matching engine is what we interact with * added auction engine and orderbook to cxauctionserver * Added matching for auction server * Got execution types correct * Added settlement engine sql implementation * Added auction engine Also improved settlement engine * Added cancel sql auction engine auction engine done I think, limit engine is next * Matching routine sort of finished Need to implement execution generation in `match` * Added memory cancel * Working on limit matching So close to being done * adding more abstraction for matching orders * Finished price time priority matching now it's actually testable and more modular * Working on limit server * Adding auction orderbook methods * removing old sql and adding puzzle store * fixing up compile errors, must convert the rest of cxserver * fixed up ingest db dependencies * changed chainutils * removing lockingests * fixed the rpc issues * non test code compiles! * woah sql tests * fixing everything * almost done with puzzle store deposit store is still unimplemented * Made tests pass finally Next is work on deposit store * auction tests use in memory now * removed more logging may pr now * Added deposit store * Fixed small checkvalid busy buffer * Fixed some logging issues * fixed sql issue * Fixed minor pricetime issues * updated cxdb readme * integrating batcher * The batcher sort of works But the orders are invalid for some reason and my computer starts going crazy * Made batcher compile * Fixed a lot of issues, batcher is now integrated
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
refactor
Code necessary for long-term code quality but will involve lots of abstraction & generalization
Right now the code for database stuff is really ugly - it does sadly need refactoring. There are two things that can be done, one is have some persistent data storage solution that doesn't require management like mariadb, the other is cleaning up the current SQL implementation so it has more stuff in, say, a config file, rather than globals.
If different things are supposed to be pluggable as well, like auction vs normal exchange, we should have a nice way of making sure the database is set up for that. For example, if we wanted to use the same SQL database for either an auction orderbook, or peer storage, or both.
The text was updated successfully, but these errors were encountered: