Reducing a bit the bot consumption of Voting Power

in utopian-io •  last year


Yesterday, I saw the Voting Power of the Utopian bot going low, really low, near the 70%, so I decided to try and do something about it.

So I took my Sherlock Holmes hat and started to investigate:

The reason

The reason was quite easy to determine, when determining the upvote that each contribution will get, the bot does the following:

  • Step 1: Attribute a preliminary upvote to each contribution based on some metrics
  • Step 2: Compute the rewards pools for each categories, based on the difficulty of the category and the competition in the latter (number of contributions at the time of the vote)
  • Step 3: The bot takes the preliminary votes and update them to make sure they dont exceed the pool.
  • Step 4: Minimums and Maximums are applied to each contribution according to the category they are in.

And that is where the problem comes from. Until Step 3, the bot is ready to use exactly 10 100% votes (corresponding to 20% of its voting power). But the min max functions ruin everything by increasing many of the contribution upvotes to attain their minimum.

This causes the bot to use way more that its 20% Voting Power.

Short term solution : Adjusting the parameters

I took a closer look at the parameters and asked the console.log to show me all the votes that were changed by the min/max functions.

Read the screenshot on the right like this:

  • lines with two numbers show both the index of the contribution being upvoted, and the total voting power that has been upvoted. After 165 votes, the bot has upvoted way too much (1448% instead of 1000%), almost 1.5 times too much.
  • the other lines appear when a min or max function is called. It shows in which category the function was called, and shows what was the original upvote and then the upvote after the min/max function. The first line shows that a blog has been originally upvoted way too high (21), and then taken down to the maximum for blogs: 5.

In order to solve (or rather to decrease) this problem, I ve identified the 3 categories that had the biggest difference between their initial estimation and their upvote after min/max:

  • translations (from 2 to 10 on the example)
  • tutorials (from 3 to 8)
  • graphics(from 4 to 10)

For these three categories, I put the minimum vote lower but also increased the difficulty in order to increase the reward pool. The effect is that the upvote can now go a bit lower but more voting will be attributed to the category, making high quality contributions receiving bigger upvotes.

I also changed some other parameters in a smaller measure.
After applying those changes, I came down to that:


Only 1165% are now used for the same contributions. It is far from perfect but it will already save almost 7 hous of sleeping to the bot.

Long term solutions

As I mentioned, this is just a short fix, otherwise the parameters will need to be adapted almost every day to make the bot stick exactly to its 20%.

So here are the long term solutions:

  • Changing the metrics (uaJS under development).
  • Adding bonus points to those categories that perform under their min in the preliminary vote (like it was done before).
  • Removing the min/max , but I m not sure it will be a good option.

I would love to hear your ideas on how to tackle that!

Pull request here.

@stoodkev for @utopian-io

Posted on - Rewarding Open Source Contributors

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:  

Thank you for the contribution. It has been approved.

You can contact us on Discord.

Mr Holmes where is Dr. Watson:)

Need a second bot, move whatever SP you can over to it. As utopian grows, having only 1 bot seems less and less sustainable. Also, we have learned from minnowbooster that once sp gets too high it becomes very difficult to accurately control vote value


Could you please make a complete proposal on how and why to use two bots?
You could post that on Utopian,


Sorry, holidays are busy for me, and will get much less written than I'd prefer.

Seems fairly simple of an idea, though.

A second bot could be used for only certain categories, and allow for a more versitile voting practice

the most thing that make me interest about this is because you increase the votes power for graphics category ^^, the more voting power for the category mean the more hard to make a good contribution. is the rules will be updated too?

Hey @stoodkev I am @utopian-io. I have just upvoted you!


  • You are generating more rewards than average for this category. Super!;)
  • Seems like you contribute quite often. AMAZING!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!


Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord

Wery good contrubition