The intention of the Bitshares HUG REST API is to provide users an open-source high performance interface to the Bitshares network through simple GET requests. It's implemented using python-bitshares, HUG, nGinx and Gunicorn to offer 'unparalleled performance'. It's fairly easy to set up for a private API and doesn't require running a full server (though do respect usage limits).
I'm interested in potentially continuing development of the Bitshares HUG REST API through a Bitshares worker proposal, I've been maintaining it for the last 2 years as a fully open source project.
Would you support such a worker proposal in the future? If so, what would you like to see included? Is anyone running their own private HUG REST API?
Potential scope of worker proposal development: - Functions which query account details are slow - this needs debugged/investigated
- Some functions are only for 1 asset, like getting price feeds for smartcoins, making more generic than specific functions
- Increase server size to increase gunicorn worker count
- Implement anti-abuse functions - currently there's nothing preventing anyone from consuming more than their fair share of resources, though caching does counter some of this concern
- Improve analytics dashboard - currently limited to what functions are hit and frequency over time
- Static HTML front end pages for some of the functions, the hertz page is fully generated rather than simply populated so it's pretty slow.
- Bitshares github org fork of my repo is behind in commits: https://github.com/bitshares/Bitshares-HUG-REST-API
- Create tests for the functions
- Create user requested functions
- Create a more sophisticated API key mechanism
- Host Bitshares full node server locally to the REST API so as to further reduce latencies
- Host a testnet REST API - currently only production available to save on billing costs.
- Implement basic 'write' functions for private API usage - currently all functions are read-only.
- Fine tune Gunicorn & server configuration
- Stream account history from full node via ZeroMQ into a Google BigQuery table. Implement HUG functions which interact with BigQuery.
- Split the python script down into separate python files for easier maintenance.
- Maintaining inter-worker data stores. Currently a few functions save to disk to get around this limitation, this could be optimized.
- Create example scripts to query the API using different languages
Current Github stats* 8 stars
* 7 forks
* Forked into the bitshares github org
Last month's public HUG REST API analytics:Related links:
https://github.com/BTS-CM/Bitshares-HUG-REST-APIhttps://github.com/bitshares/python-bitshares