
As you may or may not know, a couple of days ago the memory requirements for a full Steem node crossed the 256 GB threshold which caused issues on a number of nodes and on the many sites and services which use them.
I'm happy to report that thanks to the last round of updates done on the post promoter software it was able to handle these issues MUCH better than the first time around. I was able to quickly switch the bots that I run to a new, working node and I believe that no votes were missed!
Nevertheless, it still required my manual intervention to switch nodes, so there was still work to do!
Automatic Fail-Over
I have spent a good deal of time over the last couple of days implementing an automatic RPC node failover system into the post promoter software so that the next time something like this happens it should pick up the errors and automatically switch to a new node until it finds one that's working.
Any type of automatic fail-over system is tricky to implement because you have to be careful not to trigger it accidentally. The current implementation works as follows (and this may be subject to change in the future after more thorough testing).
In the config.json file you can now specify a new "rpc_nodes" property. I purposely named this differently than the existing "rpc_node" property (no "s") so that the change would be backwards-compatible:
"rpc_nodes": [
"https://api.steemit.com",
"https://rpc.buildteam.io",
"https://steemd.minnowsupportproject.org",
"https://steemd.privex.io",
"https://gtg.steem.house:8090"
],
The software will connect to the first node in the list when it starts and will show in the logs which node it is connecting to. It will then automatically switch to the next node in the list if any of the following two conditions occur:
- An important transaction (such as a vote or refund) fails twice in a row
- There are 10 or more API call failures within a 1-minute period
In the first scenario, after an important transaction fails two times it will then try the transaction once more after it has switched to the new node. A very clear message will be shown in the logs when an automatic fail-over happens.
I have tested these changes locally using the hosts file to simulate a node going down and it appears to work as intended, but please note that these changes are still undergoing testing in live, production environments.
Moved Blacklist and Comment Content to Separate Files
I have also made a couple of other changes that have been requested a number of times in the past. The first change was to move the blacklist out of the config.json file and to its own file which is currently just called "blacklist" (with no extension). The format of this new file is just one Steem account name per line. The change is backwards-compatible so if you still have the "blacklist" setting in your config.json file that will continue to work just fine.
The second change was to move the comment content that the software will use to comment on posts that it upvotes to a separate file as well. In this case there is a new setting in config.json to specify the file location of the comment content:
"comment_location": "comment.md"
The content in the file should use the markdown format. This change is also backwards-compatible so if you are still using the previous "promotion_content" config setting that will continue to work.
Future Updates to Help Fight Spam and Plagiarism
In the near future there will be a much larger focus on blacklisting and spam / plagiarism prevention with the following new features. Many thanks to for putting together this list and working with
to combat this huge problem!
- Add a config setting for the blacklist file location which can also include a URL to a centralized list that all bots can use
- Add a config setting for whether or not blacklisted users should receive a refund for their bids
- Add an option to respond to blacklisted users with a 0.001 SBD transaction letting them know they are blacklisted (with a configurable memo)
- Add an option to automatically transfer any bids sent from blacklisted users to an external account to help fight spam (e.g. steemcleaners, cheetah, etc)
- Add an option to automatically blacklist posts which are flagged by a spam / plagiarism service like steemcleaners, cheetah, mackbot, etc
Thanks for your support!
As always I want to thank everyone who has helped and supported me in creating this software. I love that it has been able to help so many people get their content promoted and to help so many investors earn a return on their STEEM investment. Please stay tuned for more updates in the coming weeks!
Links to relevant commits:
- Added automatic failover to list of rpc nodes
- Moved comment text to separate file
- Moved blacklist to a separate file
Posted on Utopian.io - Rewarding Open Source Contributors