Guidance needed: toward development of a ‘good bot’ (to aid account holders who want to prioritize ‘ecosystem growth’ over ‘individual profits’)

in #curation6 months ago (edited)

Good Bots vs. Bad Bots

What Constitutes a ‘Good’ Auto-Voting Bot?

A few weeks ago, I posted a comment alluding to a new Hive curation-rewards protocol I’ve been envisioning.

I followed that up with a post where I explained the benefits of a curation-rewards protocol that would encourage auto-voting bots to:

    accentuate high-quality manual curation rather than overwhelming, stifling, burying, or manipulating it (intentionally or unintentionally).

In General, ‘Good Bots’ Don’t Early-Vote

To that end, I have developed an underlying philosophy about auto-voting, which is:

    Early-voting periods should be almost exclusively the domain of manual curators.

This led me to adopt the following long-term ‘goal’:

    Rather than trying to actively discourage auto-voting bots from casting early votes, what if we directly incentivize them to willingly participate later in the vote-casting process?

This current post, however, focuses on an easier-to-complete short-term goal, which is to provide an auto-voting tool that can be meaningfully used by account-holders who are more interested in expanding the Hive ecosystem than maximizing short-term profits.

But First, a Few Quick Thank-You’s

I want to thank @theycallmedan for indirectly inviting me to Hive and inspiring my efforts to participate in and improve the Hive ecosystem and community, @themarkymark for his constant openness to field my tech questions, @aggroed and @eonwarped for their help getting a new tribe set up for the entrepreneurship class I teach at Oklahoma State University, @acidyo and @ocd for welcoming my students who have chosen to check out Hive, and @guiltyparties for being a sounding board, helping me ‘think out loud’ about the feasibility of various curation-rewards protocols.

Initial Development -- Focusing on Willing Account-Holders

I am going in a couple different directions with all this, but rather than initially jumping into the difficult realm of trying to influence profit-maximizing bots to abstain from early-voting, I have decided to start with the development of an auto-voting bot specifically aimed at account holders who genuinely want their HP to be a force for good within the ecosystem. In particular, I am targeting those who are willing to forfeit early-voting curation profits expressly for the purpose of improving the quality of the ecosystem as a whole (and thus growing the pie instead of chasing a larger percentage of a static pie).

To that end, I want to develop an automated voting system that incorporates the following features:

  • performs auto-voting only when the account holder is NOT manually curating (i.e. leaves plenty of voting power available to support as much manual curation as the account holder is willing and able to perform)
  • performs auto-voting on posts only after a substantial amount of time has lapsed (to allow high-quality manual curation by others to occur first)
  • prioritizes posts that have already received high-upvote-counts (ideally, from pre-screened high-quality manual curators)
    • I will be working separately on a protocol for identifying and pre-screening high-quality manual curators. This will not be an initial feature, but will hopefully be added sometime later.
  • allows author white-listing, so account holders can prioritize authors who have proven (to the account holder) their ability to consistently produce high-quality content
  • allows author black-listing, so account holders can withhold upvotes to authors who have proven (to the account holder) unworthy of their support
  • allows curator white-listing, so account holders can ‘trail’ (subject to the aforementioned time delay) manual curators who have proven (to the account holder) their ability to consistently curate high-quality content
    • NOTE: I intend to eventually evaluate, track, and publish the extent to which any accounts might be attempting to abuse this feature, by early-voting with one account while late-voting with a different account.

NOTE: I am posting this on #LeoFinance, #STEMGeeks, #proofofbrain, and other linear-rewards tribes, because the auto-voting bot I am describing herein should be deployable on linear-curation-rewards systems without penalty, and thus should generally be welcomed by members of those tribes. Please reply if you see any potential downsides of the use of a bot like this in a linear-curation-rewards setting.

Ongoing Reporting of Results

The other ‘feature’ that I want to include is the production and publication of periodic reports identifying the accounts using the bot, with the calculation and presentation of the extent to which their potential curation rewards are being ‘forfeited’ by their participation in this ‘good bot’ curation schema.

What I Need Help With ...

To get started with this effort, I need some guidance and direction. I have a fair bit of programming experience, but it’s been a few years since I’ve done any serious programming and I’ve never done any blockchain-specific programming. (FWIW, my background is an undergraduate engineering degree from MIT, a masters and PhD in engineering from Oklahoma State, and a PhD in entrepreneurship from Oklahoma State).

So, my requests are:

  • Can anyone point me to some existing auto-voting code that might be similar (either open-source or something you’ve done that you are willing to share, with recognition but without compensation)?
  • Would anyone be willing to ‘tutor’ me a bit (again, with recognition but without compensation) with respect to helping me get up to speed with IDEs and whatever else I need to set up and configure in order to get started developing on the Hive ecosystem?

If you are able to help with either of the above requests, feel free to contact me via OpenHive.Chat or Discord, or leave a reply with instructions on how I can contact you.

A ‘good bot’ can help grow the pie.
Let's grow the pie, together!


Sort:  

@mahdiyari might be able to direct you to the right code, not sure if hive.vote is opensource or anything about the code really as I'm not a coder but maybe he'll see this mention. Good luck!

Thanks!

for IDE - i really like vscode (handles many languages)

the hive developer stuff is here - https://developers.hive.io/#introduction-welcome

google search for
hive bots code - https://www.google.com/search?q=hive+blockchain+vote+bot+code&oq=hive+blockchain+vote+bot+code

i'm trying to migrate from php to javascript so i probably wouldnt be much help

Thanks! I'll check those out.

My most recent coding has been with PHP and javascript.

I have a lot of posts on VS Code that might be helpful. I am a huge fan of VS Code and think everyone should give it a try.

https://peakd.com/created/vscode

i got really good with php/multi-curl(data scraping/data mining)

trying to migrate to javascript(nodejs) trying to learn game-dev/websockets

i've 'browsed' some of the hive javascript library and it 'looks' easy enough LOL

https://github.com/rishi556/leovoter

Might help you get started. It's a leo based autovoter that I made to vote posts made by a particular set of authors whenever they posted to leo.

For IDE it depends on what you are using. VSCode is a great general one for multiple languages. If you are going with javascript, I'd also recommend you checkout Jetbrains webstorm and for python lookup pycharm(also by jetbrains).

Thanks!

I think all you said is already possible on hive.vote if someone really wants to do that (prioritizing and blacklist/whitelist is not possible yet). I know some people set their votes like after 24 hours on hive.vote to support early voters but it's rare.

Anyway, hive.vote is not open source but there were some open source voting bots in the past. I don't remember any right now.

Thanks for the info about hive.vote.

My primary interest here is setting it up so that those who actively and willingly choose to forego early-auto-voting curation rewards in order to avoid corrupting the manual curation process can be readily recognized for doing so.

Would you have any interest in working with me to add that capability to hive.vote? If so, feel free to DM me via OpenHive.Chat or Discord.

Sorry, wasn't around for a few days.
Can you explain what exactly to be added?

@mahdiyari, thanks for the reply!

I have registered for Hive.vote and explored its functionality.

It looks like you already have all the initial capabilities I was hoping for.

What I would like to add is an ‘opt-in’ for delayed autovoting and also an ‘opt-in’ for public recognition.

These could be added to the dashboard, right after the “Selfvote” option, with the following code change:

  • Users who opt-in for delayed autovoting will have their “fanbase” and “curation trail” wait times over-ridden to be 3,600 minutes (2.5 days).
    • (NOTE: The current max wait time is 1,440 minutes (1 day); if that is because Hive.vote only searches the last 24 hours worth of posts, then I guess the ‘over-ride’ time should be 1,440 instead of 3,600).

Then, if you could provide me with a weekly list of accounts that have opted in both for delayed autovoting and public recognition, I can write code to pull the voting histories for each of those accounts, identify the Hive.vote autovotes, and calculate the curation rewards each account sacrificed by choosing to delay their autovotes.

I will then periodically (e.g. weekly) publish a list of those accounts that chose delayed autovoting and the amount of curation rewards they sacrificed by doing so.

@arcange has agreed to help me learn the ropes with HiveSQL, so I can pull the necessary data from the blockchain to accomplish that task.

In the coming HF25, curation rewards will probably get reduced to somewhere between 10% to 25% (it's not decided yet). So I think it might be a waste of resources to work on adding something which will lose interest.

Sorry, I can't help with this.

Congratulations @trostparadox! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :

You distributed more than 200 upvotes.
Your next target is to reach 300 upvotes.
You received more than 3500 upvotes.
Your next target is to reach 3750 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP