Scotbot parameter manual

in #steem-engine5 years ago (edited)

NedScottnew-01.jpg

As you my know may know, I'm the developer of the scotbot backend. The bot is written in python and uses my beem library. In order to add your token to scotbot, the active key of the token issuer account itself or any other account that have sufficient token in their wallet is needed. The bot uses the key to send out token when a user has a sufficient amount of pending token and is willing to claim them.

You can read more about it here.

Let me explain all parameter that can be set at https://sto.steem-engine.com/#/launch/scotbot:

json_metadata_keyand json_metadata_value

This parameter is important, it defines which parameter in the json metadata of a post is checked. One possible choice is "tags". Only posts that have a json_metadata_key parameter in the json metadata field are included and can collect rewards. The value of the json_metadata_key must include or be equal to json_metadata_value.

When json_metadata_key="tags" and json_metadata_value="scottest", then only posts that have a "scottest" tag can have pending tokens. Pending tokens will be generated when token holder upvote this post.

json_metadata_key can also be a new parameter, as for example scot_token. In this case, a new frontend is needed that broadcasts posts that have this parameter in its json metadata field.
When json_metadata_key="scot_token" and json_metadata_value="MYTOKEN", posts that have:

json_metadata": {
"scot_token": [ "MYTOKEN"]
}

can have receive token from the MYTOKEN reward pool.

At the moment it is advised to use the tags parameter and define a tag that every post must use for receiving token from the reward pool

rewards_token and rewards_token_every_n_block

These two parameters define the size of the reward pool. Every rewards_token_every_n_block steem blocks, the reward pool is increased by rewards_token .

When for example rewards_token_every_n_block=3 and rewards_token=8, 8 token are added to the reward pool every 9s (3 blocks). Every hour, 3200 token are added to the pool and every day 76800 token.

The reward pool is distributed entirely to authors and voters.

reduction_every_n_block and reduction_percentage

Every reduction_every_n_block blocks, the amount of token that are added to the pool is reduced by reduction_percentage.
When reduction_every_n_block = 10512000 and reduction_percentage = 0.5, the reward is reduced by 0.5% every year. For example, when the old reward was 8 token, it is reduced after the first year to

8 / (1.005) = 7.96

cashout_window_days

This parameter defines when voting on a post is closed and the amount of pending token can be claimed. For example for steem, cashout_window_days is 7.

issue_token

When this parameter is true, claimed token are send out with the issue command. This is only be possible when the token account is also the token creator. When issue_token is false, token are send out with the transfer command. In this case, the token account just needs to have sufficient token in its wallet.

author_reward_percentage

Defines the split between post creator and upvoter. When it is set to author_reward_percentage = 50, 50% of the pending tokens goes to the author and the remaining 50% to the voters.

author_curve_exponent

This parameter can be a number between 1 and 2. author_curve_exponent = 1 is equivalent to linear and author_curve_exponent > 1 means super linear.

The pending token for a post are calculated as follow:

y = token_config[token]["author_curve_exponent"]
weight_rshares = int_pow(sum_rshares, y)
pending_token = int(weight_rshares / pending_rshares * reward_pool)

When author_curve_exponent > 1, it means that posts with more votes will receive an increased share from the reward pool.

Example

When author_curve_exponent = 1, and we have two posts, one with 100 rshares and one with 1000 rshares and the reward_pool has 1 token:

pending_token = 100 / 1100 * 1 = 0.09

and

pending_token = 1000 / 1100 * 1 = 0.91

When author_curve_exponent = 2, the pending_rshares is 100 * 100 + 1000*1000 = 1010000

pending_token = 100 * 100 / 1010000 * 1 = 0.009

and

pending_token = 1000 * 1000 / 1010000 * 1 = 0.991

curation_curve_exponent

This parameter defines the curation rewards. It can be a number between 0.5 and 2.

The curation reward which can be given to the voters is

curation_reward = pending_token - author_reward

For each vote, a weight is calculated. When curation_curve_exponent = 1, the weight is linear the vote rshares.

y = token_config[token]["curation_curve_exponent"]
vote_weight = (int_pow(sum_rshares + vote['rshares'], y) - int_pow(sum_rshares, y))
sum_rshares += vote["rshares"]

The vote_weight of all voters is summed up in total_vote_weight.
The curation reward is then

pending_curation_token  = int(curation_reward * vote_weight / total_vote_weight)

Example

curation_curve_exponent = 0.5, curation_reward = 1 , one vote with 100 rshares and a later vote with 1000 rshares.

sum_rshares = 0
vote_weight_1 = sqrt(100) = 10
sum_rshares = 100
vote_weight_2 = sqrt(100 + 1000) - sqrt(100) = 23.166
total_vote_weight = 33.166

The first voter receives:

1 * 10 / 33.166 = 0.302

and the second voter receives:

1 * 23.166 / 33.166 = 0.698

vote_regeneration_seconds and vote_power_consumption

These two parameter defines how often it is possible to vote. These parameters are integer in the steem percentage notation 100 means 1 %.

vote_power_consumption defines how the vote power is reduced with a 100% vote. When it is set to 200 (2%), the vote power is reduced to 98% when voting at full vote power and a weight of 100%.

vote_regeneration_seconds defines in which time duration an empty vote power is regenerating to 100%.

downvote_regeneration_seconds and downvote_power_consumption

These two parameter defines how often it is possible to downvote. When downvote_regeneration_seconds is set to a positve integer, a second downvote pool is activated.

When a downvote pool is active, downvoting does not reduce the vote power.

downvote_power_consumption defines how the downvote power is reduced with a 100% downvote. When it is set to 200 (2%), the downvote power is reduced to 98% when downvoting at a full downvote power and a weight of 100%.

downvote_regeneration_seconds defines in which time duration an empty downvote power is regenerating to 100%. When this parameter is negative, the downvote pool is deactivated and downvoting will reduce the vote power.

Sort:  

This all looks great! However I wish I understood what it meant.. 🤯

Same here 😃👋

Hello, great post with lots of super information.

Can i ask if each community will be running there own bot and able to edit the back end code using some of the commends you have shown in this post are do you guys run the bot and end user can use some sort of condenser to edit changes?

Will steem-scot be updated to include these new features or will scotbot only act as a paid SE service?

Posted using Partiko Android

Thank you so much for participating in the Partiko Delegation Plan Round 1! We really appreciate your support! As part of the delegation benefits, we just gave you a 3.00% upvote! Together, let’s change the world!

Will it work?

Hi @holger80!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 7.134 which ranks you at #59 across all Steem accounts.
Your rank has improved 1 places in the last three days (old rank 60).

In our last Algorithmic Curation Round, consisting of 216 contributions, your post is ranked at #2. Congratulations!

Evaluation of your UA score:
  • Your follower network is great!
  • The readers appreciate your great work!
  • Great user engagement! You rock!

Feel free to join our @steem-ua Discord server

LOL this is a nieche post for a select scotbot elite :)

I can explain to you

The first stuff is about the token hashtag

then its about a few more numbers that make a difference.....

your just doing a few numbers here, that change your reward pool, like how much tokens u issue

the Curves he talks about are the author and curation surves for the distribution models, so youc an control how MUCH you get for curation, like you are tweaking the fundamental laws of the steem universe basically

hope that helps :)

II should do a post and video explaining scotbot

Hi, @holger80!

You just got a 3.3% 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.

did not understand - why do I need it?

Its just the settings, for your scotbot token, if you make one. so like for ass for example, i made the curves for curation very high, so the more you have the more you can give out, and the curation is 90% author rewards 10% so its gonna be really fun,

ill make sure you get a nice significant stake since youve been a loyal investorin @steemspeak related products

thanks for the answer

Posted using Partiko iOS

Hi ~ I sent 1100eng to Scottbot to make a site like Weedcash. But I need more money to build such a site. Can't you cancel the coin issue? Can you give me a refund for 1100eng?

You should get in touch with @aggroed.

yep, please contact me in Discord. You can find the discord link at the bottom of the steem-engine.com website.

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

You made more than 900 comments. Your next target is to reach 1000 comments.

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

Do not miss the last post from @steemitboard:

New japanese speaking community Steem Meetup badge
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Id like to get @aggroed @eonwarped and you @holger80 all together with @telosnetwork on their telos dapps telwgram here https://t.me/dappstelos to discuss a telos engine proposal to add scotbot to a telos contract

So telos users can buy scotbot snd custom nitrous for eosio

And a telos.blog main site to pay users in TLOS main net token using a proposal for 100,000 telos a month plus another few hundred thousand telos to pay your team

I want custom telos token reward pools ro plug into a "claim reward" action on eosio like discussions.app contract here next ro "post" and "upvotepost" contract actions that jave already been built for https://discussions.app that works on eos and telos

The goal is a eos.blog and telos.blog site and eos and telos-engine where users can pay steemenginex or telosenginex to buy a token made in the image of hive engine scotbot with custom parameters users can all vote on

We need to build as much of steem/hive into eos/telos/wax as possible and make a universal social media contract antelope.io (new name for eosio)