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

JS Port/Maintenance/Feed Sources #35

Open
clockworkgr opened this issue Apr 11, 2018 · 7 comments
Open

JS Port/Maintenance/Feed Sources #35

clockworkgr opened this issue Apr 11, 2018 · 7 comments

Comments

@clockworkgr
Copy link

Seeing as this is not heavily maintained and my python skills are limited, I am porting the entire thing over to node/JS (about 80% done).

I am using this issue to notify users that it will be published on github soon and also to gather feedback & feature requests to be implemented on my port as well as new Feed sources.

I would also appreciate if people could notify me of sources that no longer work (e.g. I believe AEX api no longer works)

@Zapata
Copy link

Zapata commented Jun 7, 2018

Python is not my main/favorite programming language but I managed to review all the code, test all the sources and formulas, found and reported some issues and fixed most of them in my repo.

Current status on sources is:

On my repo, I have fixed most of them except: Big.ONE, Bitcoin Average, Huobi. I could do that in the coming weeks if required.
I have added unit tests to quickly check all the sources and some documentation.

It's good to have alternative implementation in other languages as currently there is only Python implementations (alt/bsprice or wackou/bts_tools).
But none of the current implementations are well maintained, and with good quality (clean code, tested, easy debug, transparent price computation, well documented).
I suggest we focus our efforts on one implementation (existing or new).

@clockworkgr
Copy link
Author

well..in case you're interested, my code is here : https://github.com/clockworkgr/bitshares-pricefeed-js

Pretty much feature complete...needs clean up which i plan to do in the next few days...

should be easy to expand...will document the process

@Zapata
Copy link

Zapata commented Jun 7, 2018

Yes I've seen your code.

I don't know what you mean by feature complete, but for me it means:

  • maintenable (clean code, well documented, unit test, ...)
  • Handle all the MPA that Bitshares handle:
    -- Crypto (BTC, ..)
    -- FIAT (USD, CNY, EUR, ..)
    -- Algoritmic (HERTZ, HERO, ALTCAP, ...)
    -- Stocks (AMAZONCOM, FACEBOOKCOM, ...)
    -- ETFs (Bit20, Twentix, S&P, ...)
  • Good traceability: it should be possible to know how each price was computed, even days after their publication (which sources was used, what price they provided, etc...)
  • Good checks/alerting/error workflows to avoid publication of wrong prices when something went wrong (like bad data provided by the sources as it's commonly the case with manipulated centralized exchanged), and detect issues in other feeds.

I want to emphasis the last points, I used to work for price publication services of financial institutions and those are the kind of expectations they have. If we want that one day institutional business use MPA, we need professional publication tools.

@clockworkgr
Copy link
Author

clean code and documented is part of the clean up to be done

Unit testing i make no promises as I hate writing them :)

Traceability.. interesting. I hadn't thought about it but I can think of a few ways to store that data nicely.

Again...should be all there but clean up will help in that respect.

Thanks for your input... It really helps make this better and already given me some food for thought

@clockworkgr
Copy link
Author

@Zapata With regards to traceability, how does this sound? On every run, create a JSON object containing a timestamp, an array of the symbols actually published, the working price_feed object containing all the source data retrieved and the config object. serialize and save (could also compress first)

@Zapata
Copy link

Zapata commented Jun 8, 2018

Perfect, you've got it!

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

3 participants
@Zapata @clockworkgr and others