Steemvote: Automated Steem Voting
Steemvote is a program that automatically votes on posts.
The code is located here, along with the readme below.
Thanks @klye for the art!
Steemvote is more granular than a script that votes for posts by certain authors. Steemvote allows you to configure who to vote for and whether to vote for their replies to other posts.
It also allows you to specify the age a post must be before you vote for it, and the maximum age a post can be as well. For example, you can automatically vote for every post by a user as soon as the post is five minutes old.
Motivation
Historically, a more simple script could do what steemvote does. Now, the distribution of rewards for curation depends on when the vote was cast. Voting for a post immediately after it is created results in severely-reduced curation rewards. So to automate voting, a more complex program is required. This reduces the number of people capable of writing such a program.
With steemvote, everyone has the capability to automate voting for people they want to support.
I know that there is an ongoing debate about the use of bots in Steem. My opinion is that the worst part of voting bots is that not everyone has access to them. Steemvote addresses this problem.
Readme
This is a program that votes for posts on Steem. It uses piston and thus requires Python 3.
The included script, steemvoter
, works by monitoring all comments on Steem.
If a comment is eligible for voting, it is stored in a database. The eligible comments
are periodically pulled from the database and voted on after they are a pre-set age.
Installation
$ sudo python3 setup.py install
The above command will install all required dependencies.
You can run steemvoter like so: steemvoter -c path/to/config.json
.
Configuration
A configuration file specifies the authors to vote on, the key to sign votes with, etc.
Your configuration file can be supplied with a command-line argument (steemvoter -c path/to/config.json
).
If not supplied, steemvoter will look for the file steemvote-config.json
in the current directory.
An example config file, example-steemvote-config.json
, is supplied.
The following config values are required:
authors
: A list of authors, and optional values for each (see below).voter_account_name
: The name of your account.vote_key
: The private key used to sign votes with (This should be your "Posting" key).
Authors
The authors
list in your config file contains a list of objects.
Each object needs a name
value, which is the name of the author.
Optional values for each author:
vote_replies
: Whether to vote on all replies the author makes, in addition to their regular posts (Default:false
).weight
: The weight to vote with.100.0
represents an upvote, and-100.0
represents a downvote (Default:100.0
).
Voting Rules
The following values are optional, and specify how to vote:
max_post_age
: The maximum age of a post (Default:2 days
).vote_delay
: The age a post must be before it is voted on (Default:1 minute
).
These values can be specified as seconds or as human-readable strings (e.g. "max_post_age": "2 days"
).
Database
By default, the database of posts will be a folder called database
in the current directory.
This behavior can be changed using the database_path
config value.
RPC
If no RPC options are specified, a public node will be used.
Available RPC options:
rpc_node
: The URL of the node to connect to.rpc_user
: RPC username to use.rpc_pass
: RPC password to use.
Example Configurations
Upvote every post by @klye, including his replies to other posts.
Wait until posts are 30 seconds old to upvote them.
{
"authors": [
{"name": "klye", "vote_replies": true}
],
"vote_key": "5XX...",
"voter_account_name": "myname",
"vote_delay": 30
}
Upvote the posts by @klye, but not his replies to other posts.
Do not vote if his post is more than 2 hours old.
{
"authors": [
{"name": "klye"}
],
"max_post_age": "2 hours",
"vote_key": "5XX...",
"voter_account_name": "myname"
}
Please open issues on Github for errors you encounter.
Possible Future Goals
- Monitoring of voting power so you don't vote too much.
- Per-author vote delays.
Credits
Thanks to @xeroc for the Python 3 library steemvote uses.
Thanks for posting this. Very useful!
Doing good things here Kef! keep up the great work.
I'm drawing you a #klyeart for a preview. This post needs one and is great.
I'll post it on this comment when I am done it. #randomactofklyeart
Edit: Eh I'll wait to get ahold of you and give it to you personally and decide if you want to use it. :)
Props to @klye, who is one of the authors I made steemvote to support. You're even in the example configurations section of the readme.
Thanks for the shoutouts! Glad to see a bot like this released for guys like me without the time at the moment to code one!
Fantastic work on this tool @kefkius. The readme is very clear and straightforward.
Awesome , great to see more steemit code turning up on github .
Will definitely investigate this properly tomorrow, you have a new follower :)
Very cool! I've been meaning to look into getting my own curator bot for a while now. Hopefully I'll check it out soon.
If you made a "how to" to use it you would do a greater favor. :D
I thought that the README was pretty detailed, along with example configurations :(
Do you mean something like a more detailed installation guide? Or a better configuration guide?
Post the readme in here... And then link to the download..?
That would make for more reading / ease of access to info. :)
Pretty awesome kef good stuff here
This should be upvote
https://steemit.com/suncontract/@sayyedraza/what-is-suncontract-project