The other strategy for using this version of Radiator is to just switch away from classes like Radiator::FollowApi over to Radiator::Api (also known as Radiator::CondenserApi) instead. Then you don't have to update individual method calls.

GOLOS is no longer supported in Radiator. If you want to continue to use GOLOS, you'll need to branch from v0.3.15 (pre-appbase) and add WebSockets support because GOLOS completely dropped JSON-RPC over HTTP clients support for some reason

Radiator has never and will never use WebSockets due to its server scalability requirements.

From a client perspective, WebSockets is great. I have nothing against WebSockets. So I might get around to it at some point, but GOLOS won't be part of Radiator anymore mainly because GOLOS has no plans to implement AppBase.

tx=Radiator::Transaction.new(wif:'Your Wif Here')comment={type::comment,parent_permlink:'test',author:'your-account',permlink:'something-unique',title:'Radiator Can Post Comments!',body:'Yep, this post was created by Radiator in `ruby`.',json_metadata:'',parent_author:''}tx.operations<<commenttx.process(true)

Failover

Radiator supports failover for situations where a node has, for example, become unresponsive. When creating a new instance of ::Api, ::Stream, and ::Transaction, you may provide a list of alternative nodes, or leave them out to use the default list. For example:

In a nutshell, the way this works is Radiator will try a node and proceed until it encounters an error, then retry the request. If it encounters a second error within 5 minutes, it will abandon the node and try a random one from failover_urls.

It'll keep doing this until it runs out of failovers, then it will reset the configuration and go back to the original node.

There's an additional behavior in ::Stream. When a node responds with a block out of sequence, it will use the failover logic above. Although this is not a network layer failure, it is a bad result that may indicate a problem on the node, so a new node is picked.

There is another rare scenario involving ::Transaction broadcasts that's handled by the failover logic: When a node responds with a network error after a signed transaction is accepted, Radiator will do a look-up to find the accepted signature in order to avoid triggering a dupe_check error from the blockchain. This subroutine might take up to five minutes to execute in the worst possible situation. To disable this behavior, use the recover_transactions_on_error and set it to false, e.g.:

This is caused by network interruptions. If these messages happen once in a while, they can be ignored. Radiator will retry the request and move on. If there are more frequent warnings, this will trigger the failover logic and pick a new node, if one has been configured (which is true by default). See the Failover section above.

Problem: My log is full of Invalid block sequence messages.

This is a similar situation to Unable to perform request ... retrying .... Radiator::Stream will retry and failover if needed. It is happening because the node has responded with a block out of order and ::Stream is ignoring this block, then retrying.

Problem: What does the Stream behind error mean?

Solution:

This is an error produced by ::Stream when it notices that the current block is falling too far behind the head block. One solution is to just restart the stream and see if it happens again. If you see a message like this occasionally, but otherwise the stream seems to keep up, it probably was able to recover on its own.

There can be several root causes. Resources like memory and CPU might be taxed. The network connection might be too slow for what you're doing. Remember, you're downloading each and every block, not just the operations you want.

If you have excluded system resources as the root cause, then you should take a look at your code. If you're doing anything that takes longer than 3 seconds per block, ::Stream can fall behind. When this happens, ::Stream will try to catch up without displaying a warning. But once you fall 400 blocks behind (~20 minutes), you'll start to get the warning messages.