Due to the rate-limiting implementation of Steemit-INC, development on the txjsonrpcqueue has been stalled for a bit, awaiting an actually API extension for rate limiting that so it seems might not ever get introduced.
I am about to pick up development again, but I would like to prioritize my development efforts based on the wishes of existing asyncsteem users and of potential new txjsonrpcqueue users.
The txjsonrpcqueue library is a Python library that aims to be a more portable rewrite of the asyncsteem library. The libraries are ment for writing asynchonous Python applications. Where asyncsteem is a Python2 library that works with the Twisted asynchonous framework, the txjsonrpcqueue is being made to work with both Python2 and with Python3. And ultimately with both the Twisted framework (on Python2 and Python3), and with Asyncio (Python3).
There are currently six main items on my todo list:
Continuous node probing
I've done some work on a (currently still Twisted only) version of continuous API node-probeing for txjsonrpcqueue. The idea is that the library sends a number of API requests to all known full-API nodes every 10 minutes, and based on the results, and the desired sub-API's, picks the currently best node to do its regular JSON-RPC queues through. Expending on this, the library should automatically switch to the fastest error-free API-node available at any time.
Naive rate limiting.
Steemit INC has implemented API rate limiting without any actual API hooks or rate-limiting HTTP header fields. I could implement a naive rate-limiting implementation to work around this by simply assuming batch requests should be spaced at least n seconds apart.
Robust portability between Twisted/Asyncio and Python2/3
Currently the HTTP part of the Twisted/Asyncio portability isn't truly extendable. Fixing the HTTP core code to be portable more cleanly should allow quicker development of new portable code.
Backwards Compatibility layer
Currently txjsonrpcqueue is not high-level API-compatible with the asyncsteem library. Adding a compatibility layer to the library could allow portability of asyncsteem based DApps to txjsonrpcqueue.
Signed operations
Currently neither asyncsteem nor txjsonrpcqueue implements signed operations.
Easy integration of cookie-attribution based authentication
For DApps that don't need to use signed operations but would like to authenticate users with micro transactions or client side custom_json operations, integration of cookie-attribution based authentication could provide an easy way to authenticate users.
As a Python dev: Please help me prioritize by voting for one or more of my TODO items.
Continuous node probing
Naive rate-limiting
Robust portability between Twisted/Asyncio and Python2/3
Backwards Compatibility layer
Signed operations
Easy integration of cookie-attribution based authentication
You need to be logged in to vote for
the polls.
Click to log in
via HiveSigner.
Continuous node probing
(83.33%)
5
/ 6
83.33% Complete (success)
Naive rate-limiting
(16.67%)
1
/ 6
16.67% Complete (success)