ZERO working full-API nodes for STEEM ?

in steemdev •  6 years ago  (edited)

Working on the txjsonrpcqueueu library, I created this script as a precursor to a DNS based injector system I am working on.

The script itterates over a number of API calls using the txjsonrpcqueue library for each of the full API nodes below.

It currently appears there are ZERO fully working full API nodes available.

The api.steemit.com nodes and the api.steem.house seem to be almost full API, yet they seem to lack support for the tags API based calls. Other commonly disabled API's seem to be the reputation and the tags API.

Nodercreputationtagseverything else
steemd.privex.ioFAILOKOKOK
appbasetest.timcliff.comFAILPARTIALOKOK
gtg.steem.house:8090FAILFAILFAILFAIL
anyx.ioFAILFAILFAILFAIL
api.steemit.comOKOKFAILOK
api.steemitstage.comFAILFAILFAILFAIL
api.steem.houseOKOKFAILOK
api.steemitdev.comFAILFAILFAILFAIL
steemd.minnowsupportproject.orgOKPARTIALOKOK
rpc.usesteem.comOKPARTIALOKOK
rpc.steemviz.comOKPARTIALOKOK
rpc.curiesteem.comFAILFAILFAILFAIL
rpc.steemliberator.comFAILFAILFAILFAIL

I will look at improving the script with specific errors produced by the nodes (some of the across the board failing nodes don't actually give back a proper JSON-RPC error responses in a batch context).

  • 502 Bad Gateway: gtg.steem.house:8090
  • 503 Service Unavailable : api.steemitstage.com, api.steemitdev.com
  • 400 Bad Request: anyx.io
  • SSL Certificate issues: rpc.curiesteem.com, rpc.steemliberator.com

The 400 response from https://anyx.io seems particularly peculiar. It indicates a problem with the request as sent by the client, but this is exactly the same request all other nodes are sent.

At the moment, it seems I am going to have to rethink the DNS injector concept.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

usesteem.com is a full node with all plugins, if you are having an issue with reputation it is whatever library you are using.

You also can't go by whatever a node says when you open it in a browser.

Thanks, @emrebeyler pointed me to the fact I only used the reputation API call directly in the script. It does work through the condenser API on each of the four nodes that fail through the reputation API directly.

You have to check if a node is AppBase or Pre-AppBase. If there is a Jussi in front (mine does not) it can shield you from the AppBase changes. Many Api endpoints changed in AppBase.

  ·  6 years ago (edited)

Are you sending an array of requests rather than a single one? If so, right now my node doesn't support that. (Specifically, I've replaced jussi with a custom router, and I haven't added batching)

I can look to adding batching if there's a good reason for it, but it can be quite abusable.

Ah, that makes sense. My txjsonrpcqueue library (work in progress) at the moment is purely JSON-RPC array based. Would you consider adding support for array calls with size of one? It would make sense from the library design I have now to drop back to a batch size of one on a 400 error.

Ok, done. It's more specific now as well, if you submit only one request in the array it will take it fine and respond correctly, but if you try to do too many in the array it will HTTP Error 413 (Request Entity Too Large).
Let me know if that works for you!

Updated the library and the script and it works like a charm now:

https://anyx.io

resultnotes
Test Duration3.952 s
account_by_keyOK
account_historyOK
databaseOK
followOK
market_historyOK
jsonrpcOK
rcOK
reputationPARTIALOnly through condenser API
tagsOK
blockOK

Try condenser_api counterpart of the reputation_api

Thanks. It indeed seems that those nodes that don't support
reputation_api.get_account_reputations, do support condenser_api.get_account_reputations