Post Promoter JavaScript Voting Bot - Round Fill Limits, Minimum Post Age, and more!

in #utopian-io7 years ago (edited)

loudspeaker-1459128_640.png

It's been a really busy week but I've finally finished what I think are a very nice set of new updates to the Post Promoter software that should benefit both bot owners and users alike! So find a comfortable seat, cancel your appointments, and let's get into it!

Updates to Delegator Payouts

A number of bot owners using the software brought up the issue that if a new or updated delegation comes in right before a withdrawal then that delegator receives an oversized portion of the payout even though their SP did not contribute much to that round.

The code has now been updated so that new or updated delegations do not take effect until the next withdrawal period. If withdrawals are daily then they will not receive their payout until the following day, and if withdrawals are after each round then they will not receive their payout until the following round.

This was a relatively simple change code-wise. Now whenever a delegation transaction comes in the updated amount of vesting shares is saved in a "new_vesting_shares" property in the code's internal list of delegators, rather than updating the "vesting_shares" property which is used for calculating the payouts.

Then after a withdrawal is finished a new function is called which updates the "vesting_shares" property to be equal to the "new_vesting_shares" value for any delegators with new_vesting_shares > 0. Here's the code for that function:

function updateDelegations() {
  // Find any delegators with a new or updated delegation amount.
  var updates = delegators.filter(d => parseFloat(d.new_vesting_shares) > 0);

  for (var i = 0; i < updates.length; i++) {
    var delegator = updates[i];

    // Copy the new_vesting_shares value to vesting_shares and set new_vesting_shares to 0
    delegator.vesting_shares = delegator.new_vesting_shares;
    delegator.new_vesting_shares = 0;
  }

  saveDelegators();
}

Allow sending certain delegators' payouts to a beneficiary

Another delegation-related change requested by a few bot owners is the ability to specify certain delegators whose payouts should be sent to a different beneficiary account. In certain cases a delegator may wish to decline a payout or donate their payout to another account, and now the software supports that using the "overrides" property within the "auto_withdrawal.accounts" list like so:

"auto_withdrawal": {
    "active": true,
    "accounts": [
      {
        "name": "$delegators",
        "stake": 8000,
        "overrides": [
          { "name": "delegator_account", "beneficiary": "beneficiary_account" }
        ]
      },
...

In the example above 80% of the bot's earnings are set to be paid out to delegators based on their delegation amount. With the new "overrides" property you can now specify a beneficiary account where payouts should be sent for specific delegators. "overrides" is an array so you can add multiple delegator beneficiaries.

Added Minimum Post Age Setting

As you know there already exists a Maximum Post Age setting (max_post_age) to prevent users from buying upvotes for their posts at the last possible minute before payout to try to avoid downvotes, however there are also some spammers who grab profits from bid-based voting bots by posting right at the end of the bidding round and then buying a vote on their post right after it was published in order to take the 25% normally reserved for curators for themselves.

In order to prevent this there is now an option to specify a minimum age for posts that can be submitted to the bot:

"min_post_age": 20, // In minutes, minimum age of post that will be accepted

I suggest a minimum post age of 20 minutes, but each bot owner can choose an amount of time that they feel works best.

Setting to limit the amount of bids in each round

This setting, if enabled, offers a very big benefit to bot users in that it prevents a situation where a round gets seriously over-bid causing everyone to lose out. Every so often, for whatever reason, a round gets bids worth significantly more than the bot's vote value and everyone in the round takes a big loss. While this is good in the short term for the bot owner, in the long run it's a really bad experience for users and will undermine confidence in, and usage of, bid-based voting bots.

So now bot owners have the option of limiting the value of the bids that can be accepted in each round as a percentage of the bot's vote value (based on the current market prices of STEEM and SBD, and after factoring in 25% curation rewards) using the new "round_fill_limit" setting:

"round_fill_limit": 1.1  // Limit the round to 110% full to guarantee no worse than a -10% ROI

If it is set to 1 then it will limit the value of the bids in each round to at most the value of the bot's vote. If it is set to 0.9 then it will limit it to 90% of the bot's vote guaranteeing a minimum 10% ROI, and 1.1 will limit to 110% of the bot's vote limiting the ROI to no worse than -10%. Hopefully you get the idea at this point.

If any bids come in that will push the round over the set limit then they will be refunded to the sender. My suggestion is that bot owners set this to 1.1 and that's what @postpromoter is currently set to. In my opinion voting bots should not be used to directly profit off of the value of their vote, but instead should be used to gain visibility for posts which leads to a much larger ROI (for good posts) from increased followers and organic upvotes.

Based on that I think that breaking even or getting a slightly negative direct return from the bot's vote is ideal, and also offers a good trade-off for bot owners. But each bot owner can decide whether or not they would like to use this feature and what value works best for them. I know a few smaller bots are using it already in addition to @postpromoter and if it catches on I will also add info about it on the Steem Bot Tracker website.

Thanks for your support!

So looks like it was another marathon post, but for those of you who made it all the way here - thank you! As always I want to also thank everyone who has helped and supported me in creating this software. Please stay tuned for more updates in the coming weeks!

Links to relevant commits:



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Thank you for the contribution. It has been approved.

Great post, a great help in the bot world and clean code.

You can contact us on Discord.
[utopian-moderator]

Sadly, I can only vote for you as witness once!

I think our philosophies align pretty well, except, I don't think bots themselves should become whales. A small return on investment for minnows, say $1-2 for a 100% vote and the extra steem power should go into another bot, maybe? More overhead, I know!

Maybe as I hang out on Steemit more I'll see the error of my ways. ;)

But seeing as I was just laid off and was looking for an excuse to learn javascript, if I want to see how my vision of how a bot should work, then I should make a bot myself. Put up or shut up, eh?

Thanks @trickbrown! I don't understand what you mean by the following:

I don't think bots themselves should become whales. A small return on investment for minnows, say $1-2 for a 100% vote and the extra steem power should go into another bot, maybe?

Can you explain what you mean? Also sorry to hear that you were laid off but hopefully you can turn that into an opportunity. Let me know if you do jump into javascript and I would be happy to help out if you have any questions!

I see some bots with a voting power over $1000 or $1500. That just strikes me as crazy, unless they are opting to vote every 1.2 hours @ 50% or every 36 minutes at 25%. (Or maybe I'm misunderstanding some aspect of the voting math.)

Maybe after a night's sleep I'm waffling a little, but my thinking last night was that bots would be the best way for a minnow to get some exposure and those who already had some exposure/steempower really didn't need it.

But as I think of the flip side, I used to own my own restaurant. A tough business even with a lot of advertising. These bots are glorified paid advertising, and advertising does not work unless it is constantly applied. So under that thought process (rationalization?) I can see where a dolphin or whale would need to use a higher powered bot from time to time to keep themselves going.

Thanks for the upvote! And especially thanks for the offer for any help with questions.

Yes I think you might be misunderstanding how it works. The full value of a particular bot's vote may be $1,000+ (that's USD value by the way, not what will show on steemit.com), however that value is split up among everyone who sends a bid in the current bidding round.

So for example for a bot whose vote is worth $1,000, if 100 people all send in a $10 bid in the round then they will each receive a $10 value vote. So the larger bots are able to handle both large bids and small bids at the same time - they just split up the vote value accordingly.

And you are correct that the bots are just a method of advertising. On SteemIt.com your business is your blog and advertising via the voting bots is an effective way of increasing traffic to your business. Ultimately the value of the content provided in your blog will determine what type of ROI you get from that advertising.

No, I understand how it all gets split up. Math is, kind of, my thing.

I suppose I'm more curious as to where all the value comes from on the back end. It just seems like magic to me, that that much value can refill in 2.4 hours. I guess I need to delve into the white papers to see how all this works. So much to learn and so little time...

But first, after lurking for a few days, I should write my introduce myself post and actually "join" the community. :)

Ah, that's a very different question - maybe this post can help explain it at a very high level, and if you're mathematically inclined then definitely read the bluepaper and whitepaper for more details.

Let me know when you make your intro post!

NICE.

23 days ago I posted this: https://steemit.com/bidbot/@abh12345/dear-the-greatest-bid-bot-owner-on-steemit

The main point being:

Stop accepting bids that take the R.O.I. into the negative

Very glad to see this is now an option to become the best bid-bot owner!

Questions, is the setting visible on the bottracker site?

Have any owners adopted even/profitable ROI yet?

Great stuff

Time to go and pester themarkymark a bit more now :D

It is not visible on the bottracker site yet, but I promise it will be in the near future! I believe a few smaller bots may be implementing even/profitable ROI but i'm not sure. As I mentioned in the post, @postpromoter is set to no worse than -10% ROI and I gave my reasons for setting it to that level.

As a user, I'm happy seeing any sort of setting that stops crazy-sized bids coming in late and killing the ROI and promotion aspects.

-10% is a great start, and I'll be looking out for the addition to the site which is a great asset for addicts like myself.

Cheers!

thanks so much for all you do! you've blessed all of us so much with the steembottracker website...

Setting to limit the amount of bids in each round

and this is huge for anyone who uses voting bots! out of all the critiques on bots, this is the biggest, that they don't limit when the overflow ROI... i don't use them b/c of that, but your update is a game-changer..!!! WoooHooo!

Hey yabapmatt,

I have just stumbled across this post, I wasn’t aware the creator of postpromoter and steembottracker were one and the same!

But I am still very new here, I used postpromoter once, I definitely got a negative ROI but I see other people using it have got upvotes worth a lot more than mine was (only $7).

Are there better times of the day to use it? As in where the bot is used less and hence you get a higher share?

Also do you have a resource you can share on how to delegate SP to postpromoter? This might be a better way for me to grow my SP short term.

Thanks again for all your efforts.

A lot of people have asked what are good times of day to use the bots and if I can make a service to track and report on that, but as I mentioned in the post I don't think the bots should be used to try to make an instant profit off of their vote so I focus my attention more on making them better tools for content promotion.

For bots that use this new feature to limit the number of bids that are accepted in each round you shouldn't have to worry about what time of day is best - just send a bid when you have a post to promote and you can be sure you will not get a big loss.

Regarding delegation, you can use this link to delegate to @postpromoter and earn a share of the rewards every day: https://steembottracker.com/delegation.html?delegatee=postpromoter

If you would like to be a passive investor on the platform then I think that's a great way to earn a return on your investment, but if you're an active content publisher I think keeping the SP in your account will help you grow your following and your earnings more than delegating it.

Hi yabapmatt!

Sorry for the late reply but thank you for both the upvote and the honest advice about actively using my SP! An upvote like yours makes a massive difference to a new account. I've written previously about how I think it can be hard on new joiners who don't have any money for SP, as their upvotes can't even generate $0.01 of value on posts.

Anyway I will continue to actively use my SP, but like you say if for some reason I'm not able to post for a while, delegation is an excellent option for me.

So is it simply the case of delegating to PP, and then the software is clever enough to figure out what proportion of rewards I will receive and automatically transfers them over periodically?

What a time to be alive!

Holy cow! I had no idea there was open source "botting" software for Steem. I saw a bot yesterday (I'm pretty new) and started wondering if I could program something... Looks like you've done most of the hard work for me!

Thank you!

To give credit where credit is due, the first widely used open source bot software is the "drotto" bot by @inertia. That was the inspiration behind the post promoter software which I built to improve the fairness and user friendliness of the bots.

@yabapmatt, first off, thank you for your amazing contribution! This looks easy enough that I'm looking into setting up my own bot based on your postpromoter code.

I'm curious, is there a guide to getting the bot listed on steembottracker.com?

As of right now you just have to contact me to get it listed but if I ever have time I plan to create a guide and an automated process because there's starting to be too many new bots popping up for me to handle!

I should note that due to the huge growth in the number of bid-based voting bots I am trying to limit the bots I add to the site to those that have 5,000 SP or more in or delegated to the account. A bot with 100 SP takes the same resources to show on the site as a bot with 100,000 SP and I don't think it's worth it for bots whose upvote value is only a few cents.

I think you should make two lists of bid bots that have less and more than 5,000 SP if its possible for you but don't exclude minor bid bots as listing on your website is a chance for them to grow and secondly minnows will get help by those minor bots as the bigger bid bots' minimum bid value is very high for minnows especially newbies.
Another question that I want to know , Is there any online process through which our bot could run 24/7 while our computer is off?
Anyway thanks a lot for your valuable efforts for community.

Yes, I would very much like to work out a way to be able to list small bots on the site but I just haven't had time yet. I promise I will get to it because I really don't like turning anyone away!

As for your question - typically bots are run on a server hosted at a data center such as AWS for example. That way they run 24/7. It is never advisable to run a bot or any 24/7 service off a computer in your home. Data centers are set up with fast, redundant internet connections and power supplies so that your servers never go down.

Thanks a lot my friend. Can you please tell us more about AWS like data centers or give us a link about comparison between online data centers, it would be great help for bot owners. A detailed post about this issue would also be very helpful but its only a request ♥

aws.amazon.com
Great service. It has a lot to it so it takes a bit to get the hang of it but it is very powerful. There is an option to create 2 free servers for the first year - one linux and one windows. These are servers with very little in the way of CPU but you get a certain amount of burst CPU each day.

Make sure you know how to secure a server though.

@yabapmatt yes having the small bots with .01/.05 bid sizes is all we little plankton can use :)

Yeay you implemented the change!! woohoo. Now I don't have to worry about new delegator anymore. DAng the code is so simple. You're the man!

“In my opinion voting bots should not be used to directly profit off of the value of their vote, but instead should be used to gain visibility for posts which leads to a much larger ROI (for good posts) from increased followers and organic upvotes.“

I think there is some middle ground here where everyone can profit. What is the average rate of return on delegated steem power to a bot with 0.9/1/1.1 settings? I believe it is quite high no matter what.

Publishing the settings on steembottracker would be a good idea. It may actually increase the number of maxed out rounds if all bidders know they won’t end up with a large negative investment.

The problem is that if people can profit from only the value of the bot's vote, vs from the added visibility to their post, then that encourages spammers to make a bunch of low effort, low quality posts just to grab some profit from the bots.

By setting the fill limit to 1.1 or 110% (in addition to setting the min_post_age to 20 minutes) I believe that it will help prevent this type of spam - since it will no longer be profitable - and encourage promotion of actual quality content.

I definitely plan to publish this information on steembottracker.com in the near future.

Yes there can be more indirect value that comes to posts after a vote comes in.

Ultimately the market will determine how this plays out. As long as bid bots are profitable more will be added and when they are not profitable people will stop using them.

Interesting perspective you had earlier with the idea that your blog on steem is a business rather than thinking of it as another social media site.

Your platform, steembottracker, has helped me so much. I am a minnow, and this way I can reinvest the earning that I have made to make more earnings. I would like to thank you on behalf of the Steemit community for making such a useful tool. I am now on my way to becoming a whale. I obviously have a long road ahead of me, but your software will help me get there!
Also btw I voted for you for witness! :-)

Coin Marketplace

STEEM 0.19
TRX 0.18
JST 0.033
BTC 87757.32
ETH 3103.63
USDT 1.00
SBD 2.75