https://github.com/phelixnmc/nmcapi
You are welcome to review, especially the nginx config.
Readme:
Code: Select all
nmcAPI
======
API server for Namecoin names.
Features
=======
Handles imports.
Requests and output are obfuscated (nothing is encrypted for now).
Fetching uncached data takes about a millisecond. This is a bottleneck.
All caching is done in Nginx (10 minutes).
Cached responses should be super fast
Rate limiting in Nginx
namecoind and backend run supervisord
Dependencies
==========
bottle:
pip install bottle
waitless (optional, to improve performance):
pip install waitless
How to use
=========
Start a local server:
python ./api.py -debug -port=8080
Start a public server:
python ./api.py -public
See nmcapiclient.py on how to do lookups. Currently the server can be used with nmcontrol-hyperion and hopefully soon with official nmcontrol.
Performance & Stability
==================
For anything else than personal use the server should run through waitless and nginx and be managed by supervisord. Config files for nginx and to set up supervisord are included. For security you might want to set up a separate user account.
ToDo
====
help at root url (automated via route function?)
improve https handling
check https fingerprint for self signed certs
new query: current block height / block time
serve block headers to improve security
- for name_op
- for current height
harden against ddos
License
=======
LGPL unless it says otherwise in the source file.