Git Product home page Git Product logo

hive-archeology's Introduction

hive-archeology

Simple HIVE bot that allows its owner to up-vote valuable timeless HIVE posts.

To install the bot, run:

pip3 install hive-archeology-bot

To run the bot you will need the WIF of your HIVE posting key and your HIVE account name.

For info on basic usage, type:

hive-archeology-bot --help

You can supply the WIF on the command line, although this isn't recomended. A better way is to set the environment variable HIVE_ARCHEOLOGY_WIF.

If you plan to use multiple instances of the bot, each with its own HIVE account, then postfix an uppercase verson of your account name with an underscore and WIF and use that as envinronment variable name for your WIF. So if your account name is hiveuser, your environment variable should be named HIVEUSER_WIF.

After setting up your environment vars, the most basic use of the script is starting it with just your HIVE account name

hive-archeology-bot hiveuser

This will run the bot on your account with standard setting:

  • No curation rewards enabled
  • A combined share of the beneciciaries setting of 5% for the author of this private bot and the author of the lighthive library.

Let's ssay you want to get curation rewards from your upvotes, and you want to increase the share of the creator rewards for the developers to 10%, you can start the bot like this:

hive-archeology-bot hiveuser --curation-reward --tool-creator-share 10

While the bot is running, you can upvote any post on HIVE and don't worry about if the payout window has expired. The bot will see your upvote, see it if the post you upvoted was old, check if anyone else, using his/her own version of the bot already created a proxy comment for your post, create a new proxy comment if needed, and a few minutes later, upvote the proxy post with the exact weight you voted on the original post with.

If you want to test this bot, feel free to check it out for example with the chapters from my book Ragnarok Conspiracy, or with any other timeless post on HIVE.

hive-archeology's People

Contributors

pibara avatar

Watchers

 avatar Kostas Georgiou avatar

hive-archeology's Issues

100% VP auto up-vote of peer-curator curated posts

While running Hive Archaeology on your NAS or other system as your private bot, normally the bot only responds to your up-votes of old high quality posts. While manual personal up-votes are always better, when your VP is at 100% or just below, you don't want your voting power to go to waste.

This proposed feature we want the user to be able to run the Hive Archaeology Bot in a mode where at VP of 99.5% or more, the bot will start 25% (default) auto up-voting in-window posts curated by peer curators.

We define three flags:

  • --peer-curation : Auto up-vote posts up-voted by peer curators with 25% when VP reaches 99.5% or higher.
  • --peer-curation-pct [PCT] : Auto up-vote posts up-voted by peer curators with PCT% when VP reaches 99.5% or higher.
  • --peer-curation-list [LST]: Set the whitelist to use for identifying peer curators.

By default all tags curated by peer curators in the list could end up getting up-voted, unless the following flag is specified:

  • --peer-curation-tags [TAGS] : Comma separated list of tags

100% VP auto up-vote of Hive-Archaeology proxy comments

While running Hive Archaeology on your NAS or other system as your private bot, normally the bot only responds to your up-votes of old high quality posts. While manual personal up-votes are always better, when your VP is at 100% or just below, you don't want your voting power to go to waste.

This proposed feature we want the user to be able to run the Hive Archaeology Bot in a mode where at VP of 99.5% or more, the bot will start 25% (default) auto up-voting proxy comments created by other Hive Archaeology Bot users.

We define two flags:

  • --community : Auto up-vote new Hive Archaeology proxy comments with 25% whren VP reaches 99.5% or higher.
  • --community-pct [PCT] : Auto up-vote new Hive Archaeology proxy comments with PCT% when VP reaches 99.5% or higher.

When using one of these flags, by default all Hive Archaeology users are trusted but we need a way to blacklist.

For this you can set your own list:

  • --community-blacklist [LISTNAME] : Set a blacklist of accounts whose proxy posts never to upvote
  • --community-tag-blacklist [LISTNAME] : Set a blacklist of post tags for what proxy posts never should get upvoted

Croupierbot feature

In the distance past, the author of Hive Archaeology ran the Croupierbot on HIVE as a public service for verifiable random draws.
The idea was that anyone can invoke the bot to ask for a random draw that is based on the blockchain.

This proposed feature aims to ressurect the Croupierbot functionality in a distributed way. It is proposed that every Hive Archaeology bot is always a CroupierBot validator, and running the public service is optional using the following flag:

  • --enable-croupierbot

When the croupierbot is running enabled, everyone can ask it one of a number of commands by starting a comment with a mention of the account running the croupierbot followed by a command with command specific arguments. The initial verstion will only support the following command:

  • @owner LOTTERY [account]<:[tickets]> [account]<:[tickets]> [account]<:[tickets]>

The first response to this will be the bot creating a custom JSON post meant for itself and peer validators. This custom JSON contains a structured version of the command and a near future block number and a link to the comment for responses.

When the block is published, the all the bots determine the winner of the lottery and post a response with the winner according to the custom JSON and the block used for entropy.

100% VP auto up-vote of peer-created posts

While running Hive Archaeology on your NAS or other system as your private bot, normally the bot only responds to your up-votes of old high quality posts. While manual personal up-votes are always better, when your VP is at 100% or just below, you don't want your voting power to go to waste.

This proposed feature we want the user to be able to run the Hive Archaeology Bot in a mode where at VP of 99.5% or more, the bot will start 25% (default) auto up-voting in-window posts created by peer post authors.

We define three flags:

  • --peer-authors : Auto up-vote posts created by peer authors with 25% when VP reaches 99.5% or higher.
  • --peer-author-pct [PCT] : Auto up-vote posts created by peer authors with PCT% when VP reaches 99.5% or higher.
  • --peer-author-list [LST]: Set the whitelist to use for identifying peer authors.

By default all tags created by peer authors in the list could end up getting up-voted, unless the following flag is specified:

  • --peer-author-tags [TAGS] : Comma separated list of tags

Daily reports

Currently the Hive Archaeology based up-voting of old and timeless high quality content is a lonely task. This feature will only be usefull for users that run the bot 24/7, for example on their NAS. The idea of this feature is that we can let the bot generate a HIVE post once a day (at most) with a list of posts that were up-voted by the bot. This post will be done using a #hivearchaeology tag, so other Hive Archaeology users, but also just HIVE users willing o up-vote the proxy post can use it.

This feature will introduce the following flag:

  • --daily-report : Enable daily report

Discord to comment bridge

As described in this tweet by @dexterdev, there are HIVE communities that consist of both a Discord server and a HIVE community.

It might be interesting as a feature for Hive Archaeology personal bot users to bridge Discord content to comments on a daily community post.

To not collide with HIVE proof of brain ethics, these posts and comments will have to be declined payout posts.

For this feature we define the following flags:

  • --bridge-community [community] :

Next to this, other flags and env variables are going to be needed but we will first need to explore the discord API for figuring out ecactly which ones we need.

Add a flag to ignore upvotes of posts by accounts that have been inactive for really long

As described in this HIVE comment, it might be desireable to not vote for posts if the author's account has been inactive for a really long time.

In this issue we want to implement two commandline flags:

  • --max-inactive-time : Maximum number of months the account of the post voted for may be inactive (defaults to 12)
  • --use-precise-inactive-time: Use a more involved way to determine inactive time of the account.

The standard way to determine the last active time will simply take the latest of the following account parameters:

  • last_vote_time : Last time the account voted on a post or comment
  • last_post_time : Last time the acount created a post or comment

It is remotely possible that an account has stoped being actively used for posting and voting, but is still for example used as a stake holding account that delegates and receives and claims beneficiary rewards. Or the account is now only used for trading between HIVE and HBD. In the standard check these accounts will be falsely marked as inactive.

When the --use-precise-inactive-time flag is set (default it is not), the bot should do a deeper check if the first check indicates that the account might be inactive. This check will check the most recent 100 actions from the account history. If it finds an action that matches the following, the account will be considered active after all:

  • The action timestamp is later than the maximum number of months ago.
  • The action is of a type expected by the script.
  • The action was done by the account.

Important actions the precise inactive check should check for:

  • account_update
  • account_update2
  • account_witness_vote
  • change_recovery_account
  • claim-account
  • claim_reward_balance
  • custom_json
  • delegate_vesting_shares
  • feed_publish
  • fill_order
  • fill_vesting_withdraw
  • limit_order_create
  • transfer
  • transfer_to_vesting
  • withdraw_vesting

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.