Knacksteem [Task-Request] - Create a voting bot and a function to keep track of KNT distribution.

in #knacksteem6 years ago


REPO: https://github.com/knacksteem/knacksteem-api

Knacksteem is a decentralized community built on the Steem blockchain. It is a platform for people with amazing abilities and talents to showcase and promote them directly to their audience and get compensated with tangible rewards.

The request/task

We are looking for a react dev who could work on creating a voting bot for knacksteem project.

Specification

  • The bot should be able to vote on approved posts from their various categories. (v1/stats/moderation/approved)
  • keep track of the knacksteem token distribution on our db (MongoDB)
  • Also, Utilize the Steem blockchain custom_JSON for effective token distribution.
  • Should work with knacksteem back-end

Bot's workflow

The bot should start voting the moment account VP hits 99.9%, and as well stop voting the moment it reaches 80% and wait for it to refill.

Each category should have different caps of the voting %. For example:
Category X has a Cap of 50%
Category Y has a Cap of 40% and
Category Z has a Cap of 20%
This mean, the bot should not vote higher than the Cap assigned for each category.
Vote % calculation
Each contribution will be rated from 1-100 by a moderator. Let say, a contribution in Category X is given a score 60/100, the bot should take the value of the score and multiply it by the category max Cap.
Like this. 60 X 50/100=30
This means that the bot should vote that contribution with 30% power.
This is the same for every other category.

Category score.

  • Tech Trends [30]
  • Gaming [20]
  • Documentary[40]
  • Altruism [25]
  • Jokes and Humour [20]
  • Art [40]
  • Music/Song[45]
  • DIY [50]
  • Fashion [35]

KNT distribution

A simple function to distribute and keep track of the KNT distributed to the users on own db. This could also be achieved by utilizing the Steem blockchain's custom_JSON to keep track or record of this user. How this token should be distributed is already explained here with the technical details. I will highlight them here in the quote;

Contributors

  • Eligible contributions must have undergone the evaluation process by either a moderator or, a supervisor. This contribution will be scored according to its quality. from 0-100.
  • Each user can earn 250KNT (KNT represents knacktokens) max on a contribution.
  • To calculate the amount of token earned in a post, we calculate; Value of contribution scorexKNT max per contribution/the max score a contribution can get. Let's say your contribution got 30 as contribution score, the calculation would be 30x250KNT/100=75KNT.
  • Upvote value or percentage may vary across knacksteem categories.

Sponsors (SP delegators)

SP delegators as we like to call them, are entitled to this token distribution, in addition to the 12% beneficiary reward from all the posts made via our front-end. This 12% beneficiary is distributed pro-rata to the amount of SP delegated. Another 3% is reserved to reward the team.

Let's make it simple;

10 million KNT is reserved for @knacksteem.org SP delegators in which 100,000KNT will be distributed to SP delegators daily. This will be distributed according to the share of SP delegated to the knacksteem official Steem account (@knacksteem.org). In more detail, @knacksteem.org currently have 584 delegated SP. If a user. (Let's say @bob) delegates 200 SP to @knacksteem.org, this is how @bob's share will be calculated; 200x100,000KNT/584= 34,246KNT. This is calculated as Amount delegtedxThe total KNT share on daily basis/The total delegated SP to @knacksteem.org. This means @bob will get 34,246KNT daily. While this may seem huge, the number will scale down as we get more SP delegators which is a good thing, as this will cause the value of the token to rise due to demand. However, the more SP a user delegate, the more KNT they get.

Stack

Node JS

Bounty

100 Steem is reserved for the solver of this task.

Deadline

The deadline for this task request is 4 days from the day a developer is assigned to it.

Contact

You could contact me via a direct message on discord with the username; (knowledges (Smiles' at all)#3295). You could also leave a comment on this post and I shall respond to it as soon as possible.

Github

https://github.com/onozasi
Helpful resources: Actifit voting bot

Sort:  

Thanks for the task request, @knowledges! I have a bit of experience writing voting bots, so I was wondering if there is a specific language you want it written in? Also, which order should the bot vote in (old to new, high score to low score etc.), will there be separate pools for each category etc.? As for the KNT distribution you could maybe check out Actifit's task requests to see who helped them with their token distribution. Good luck!


Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Chat with us on Discord.

[utopian-moderator]

Thanks for the review @amosbastian. I did think about the voting order, but I missed it while writing down this TR. The voting order should be from old to new. Now that you've mentioned a separate pool for each category, I think it is a brilliant idea. Honestly, I did not think of it before even though we use similar metric on Utopian voting bot. I will Update this task with this info.
The bot should be developed in React.
It appears that the dev that developed actifit bot has been completely inactive for a while now though, but I'll keep checking.
Thank you!

Thank you for your review, @amosbastian! Keep up the good work!

I think I should learn how to become a developer.

You should. There are a lot of free resources online to start with :)

Yea. Not just my thing tho

Hi, @knowledges!

You just got a 0.09% upvote from SteemPlus!
To get higher upvotes, earn more SteemPlus Points (SPP). On your Steemit wallet, check your SPP balance and click on "How to earn SPP?" to find out all the ways to earn.
If you're not using SteemPlus yet, please check our last posts in here to see the many ways in which SteemPlus can improve your Steem experience on Steemit and Busy.

Hey, @knowledges!

Thanks for contributing on Utopian.
We’re already looking forward to your next task request!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

This post has been included in the latest edition of SOS Daily News - a digest of all you need to know about the State of Steem.



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

You received more than 6000 upvotes. Your next target is to reach 7000 upvotes.

Click here to view your Board
If you no longer want to receive notifications, reply to this comment with the word STOP

Support SteemitBoard's project! Vote for its witness and get one more award!

Hi @knowledges

I just bumped into your conversation with @devann and I decided to check out your account. Did you give up on Steemit? :(

Yours
Piotr

Hi, @crypto.piotr. I am not not sure why you think that I'm giving up on Steem. But I'm definitely not giving up.

Dear @knowledges

Im glad to hear that buddy. I only noticed that you didn't post in almost 3 weeks so it crossed my mind that perhaps you also gaved up on this platform.

I'm glad to see that I was absolutely wrong :)

Cheers
Piotr

I only noticed that you didn't post in almost 3 weeks so it

Oh, I see. Well, I am actually super active on the Steem blockchain but, I am usually busy with internal stuff/tasks on the Steem projects that I am very much involved in (utopian-io and knacksteem.org). I will return to posting every day very soon though. Thanks for showing some concern.

Regards.