Post Promoter JavaScript Voting Bot - Update 4

in #utopian-io7 years ago

loudspeaker-1459128_640.png

Hello everyone, I'm back with another round of updates to the Post Promoter JavaScript Bid-Based Voting Bot software (wow that's a mouthful)! More bots are coming online all the time using the software so it is pretty thoroughly battle tested at this point. Anyway let's get right down to it...

Bug Fixes

There have been a number of minor bug fixes here and there, but I'll highlight two pretty major ones. The first bug was the bot would sometimes miss bids that came in right after a bidding round had ended and it started voting. The second one was that if two bids came in during the same bidding round for the same post using different currencies, it counted both bids as the currency of the first bid.

This second bug started to be exploited by someone sending a small SBD bid for a post and then following it up with larger STEEM bids for the same post. That caused the bot to think the total amount bid was in SBD (which are worth quite a bit more than STEEM at the moment) and therefore give that post a larger than expected vote.

Anyway both issues have been fixed and fully tested and released to all of the bots that I'm running at least.

Separate Voting from Commenting

Previously, when a bidding round ended the bot would go through each bid in order and vote and comment on the post. Then it would wait 30 seconds and move on to the next post. It needs to wait since Steem limits comments to once every 20 seconds. Since some of the larger bots get a ton of bids each round, this caused the process of voting to go on for almost an hour in some cases! This also had the effect of messing up the bid window timing a little bit.

To resolve this I have separated the voting from the commenting so now the bot will go through the bids in order and vote on them every 5 seconds (since there is a 3 second limit for voting) and separately go through each bid in order and comment on them every 30 seconds. This allows the voting to complete 6 times more quickly than before.

Automated Payouts to Delegators

Last but not least, this is the big update that has been requested quite often. The bot now allows automatic payouts to delegators based on the amount that they have delegated! This is more difficult than it should be since there is no Steem API call to get a list of who has delegated to a specific account and how much they have delegated, so I had to create that myself.

Now when the bot is first run it calls the "loadDelegations()" method which goes through the bot's entire account history to get a list of all of the delegators and the amount of VESTS they have delegated. This happens rather quickly, even for accounts with long histories.

Then when it comes time for payout it looks for the special "$delegators" token in the "auto_withdrawal.accounts" list and splits that portion of the withdrawal up among the delegators based upon their delegation amount:

 "auto_withdrawal": {
    "active": true,
    "accounts": [
      {
        "name": "$delegators",
        "stake": 8000
      },
      {
        "name": "account2",
        "stake": 2000
      }
    ],

In the example above, 20% of earnings will be sent to the "account2" account and 80% of the earnings will be divided up among all of the delegators to the bot based on their delegation amount.

Additionally, I thought the code to load the list of delegators and amount delegated to a specific account might be useful for all sorts of other purposes, so I moved that into a separate module called "delegators.js" which you can find here: https://github.com/MattyIce/postpromoter/blob/master/delegators.js so that way it's easier for everyone else to use for other projects.

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:



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

@yapabmatt thanks for the update! Sorry not related to post promoter but one thing you might want to take a look at with the steem bot tracker is accounting for the refunded/duplicate bids. I think you have some users who are trying to game the system by placing huge bids (particularly with booster) and/or posting on a post that they had already bid on that get refunded to them and making the ROI look negative.

Actually took a screenshot of one such example yesterday or day before.
One user bid 170.00 SBD twice and another bid 100.00:

As a bot owner/mod, I would hope you would also consider some kind of user blacklist that has the bot automatically reject bids from scammers/spammers.

Super longwinded, sorry! Just trying to help :)

Hi @beauknows - no problem, this is all related! It's very difficult for the bot tracker to accurately track things like refunded or invalid bids since all of the bots work a bit differently.

The way I came up with to resolve this was that I created an API spec that bots can implement (and is included out of the box with the post promoter software) that tells the bot tracker site exactly which bids it has accepted in each round.

The problem is that not all bots implement that API, and booster is one of them. One thing I plan to do in the near future is add an indicator on the bot tracker site to show which bots implement the API and which don't. That way users can easily know that the bots with that indicator are always showing 100% accurate information in the tracker, and bots without that indicator could be inaccurate.

As for the blacklist, that option is already available in the post promoter software. Just set the "blacklist" config parameter like so:

"blacklist": ["account1", "account2"]

Hi. I'm so curious about this thing of owning bot. How do I do it and do i need to buy one. If so where do I buy one. is it even legal????

Thank you for the contribution. It has been approved.

It's crazy how fast people find bugs in your code if they can be exploited. Thanks for the update, and I love the narrative way in which you present your progress - great read!

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

Great news @yabapmatt. @sleeplesswhale is a bot based on drotto but I keep an eye on postpromoter script.

I keep commenting an your posts hoping someday it will be listed on the bot tracker list, but I think my comments arrive too late and you miss them. @sleeplesswhale doesn't have as much power as large bots but definitely has more than many bots which are already listed there.

Hi @sleeplesswhale - I will get you added to the bot tracker site the next time I make an update. I'm also working on a way for owners to submit their bots to be listed since i'm getting a bit overwhelmed by keeping up with all the new bots these days! Thanks for reaching out!

Awesome! So if we have delegated our steempower to a bot they can now pay us out automatically?! Thats awesome how does that work and how often can we receive rewards?

Yes, for any bot that implements this new feature that is! If you delegate to the @postpromoter bot you will receive your payout once per day at 8 PM EST (that's 1 AM UTC).

With SBDs still worth quite a bit the returns are pretty fantastic (at least compared to any traditional investments) and I have a few new delegators already signed up and hopefully more coming on board in the near future to take advantage of the opportunity.

Could you share with usan example of someone who delegated to a bot and the profits earned?

Just look at the transactions for a bot that pays out earnings to delegators, like @msp-bidbot for example. I've delegated 1,000 SP to it and I get a payout of around 1 SBD every day. At current prices that's about a 100% APR, which is an absolutely amazing deal compared to any traditional financial investments you can make.

How can I delegate to it?

There are links in this post to delegate various amounts: msp-bidbot-is-cooking-along

If you want to delegate a different amount let me know and I can help you with it.

Amazing update! Can the delegation percentages be split with another account also? For example, on mine can I send 50% of the payout to delegators by share and the other 50% to another account?

Hey @jerrybanfield - I just saw this comment. You obviously know the answer at this point, but in case anyone else reads this and has the same question - yes, you can!

nice posts.I will always follow up and vote. ☺️ please see my profile and vote

I like it.. I fully support this project and I look forward to its future growth!

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.030
BTC 64573.45
ETH 3441.06
USDT 1.00
SBD 2.51