Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rate Limiting Posting via Posting Power #176

Closed
bytemaster opened this issue Jul 18, 2016 · 23 comments
Closed

Rate Limiting Posting via Posting Power #176

bytemaster opened this issue Jul 18, 2016 · 23 comments
Assignees
Labels
Milestone

Comments

@bytemaster
Copy link
Contributor

The Problem

Every post has some probability of going viral and getting a payout. Users have incentive to enter as many posts as possible to maximize the probability of one of their posts getting rewarded. Rate limiting to once every 5 minutes is too coarse grained.

The Desired Behavior

Users should be posting quality content and should be incentivised to post better content less frequently rather than poor content more frequently. We would like to achieve this without forcing everyone to wait hours or days between posts.

The Proposed Solution

Posting rewards should be reduced for people who post more frequently. Someone who posts once per day would get the maximum posting reward possible on their post. Someone who posts 2x per day would only get half the rewards on each post.

Someone who plans to post twice per day would need to be confident that on average they will make more than if they just posted once per day. This means that the average value of their two posts must be greater than half of their best post.

Those who consistently pump out quality content will still make more under this model regardless of their frequency. They will simply enjoy the benefit of less variance. Someone who pumps out spam and hopes to hit it big will see their "average quality" fall which means their big posts will pay them far less.

Preventing Sybil Attacks

The primary reason to post all posts under a single account is because of followers. Once people can build an audience it is easier for them to get votes. Someone who divides their posts among multiple accounts in an attempt to spam will not build an audience.

Users are still free to post every 5 minutes, but their profit potential will be dramatically reduced. By encouraging people to post less frequently, we are encouraging them to be more strategic on each post they make.

@bytemaster
Copy link
Contributor Author

Summarizing the impact of this change.... anyone who makes posts of similar quality can post as often as they like without impacting their bottom line. Anyone who has a high degree of variance will find their high payout posts penalized if they post more frequently than once per day.

@dnotestein
Copy link

Does this change apply to comments as well, or just to top-level posts?

@mvandeberg
Copy link
Contributor

It is currently only applied to top-level posts. Comments lack the visibility to make much from spamming. We believe the spamming is being done by legitimate users trying to get eyes, not bots. At this time there is no reason to limit comments in this way. We also do not want users to comment less so their own posts can get paid more.

mvandeberg pushed a commit that referenced this issue Jul 18, 2016
@dnotestein
Copy link

good, just wanted to be sure

@ghost
Copy link

ghost commented Jul 18, 2016

This is a good addition. The examples provided were for one or two posts. Just for clarity, does that carry on for each additional post? So if you posted 3 in a day it would be 1/3, 4 is 1/4, 5 is 1/5, etc...

I think this is a great idea, and I really think that it will reduce the copy/paste plagiarism spam.

@mvandeberg mvandeberg added this to the Hardfork 12 milestone Jul 19, 2016
@mvandeberg mvandeberg self-assigned this Jul 19, 2016
@mvandeberg
Copy link
Contributor

Here is the logic that we will be implementing. It is a little counter intuitive, but should create proper incentives to not spam post while not negatively impacting anyone that posts with normal behavior.

Each account now tracks a post_bandwidth. The calculation of he bandwidth is similar to account bandwidth except that each post costs the same regardless of actual post weight. To add a level of precision, each post costs 10000 points of bandwidth. We target an average rate of 4 posts every day.

When a new post is created, the bandwidth is reduced at a linear rate over 1 day.
If it has been 6 hours since your last post, your post bandwidth will decrease by 25% or ( 24hr - delta_t ) / 24 hr

The post bandwidth is then increased by 10000 for the new post. The reward weight of the new post is min( 1, ( 40000 ^ 2 ) / bandwidth ^ 2 ). This will allow authors to burst up to 4 posts without incurring a penalty with a steep penalty curve following. Below is the reward weight curve or repeated posting.

screen shot 2016-07-19 at 2 03 42 pm

mvandeberg pushed a commit that referenced this issue Jul 19, 2016
@jcalfee
Copy link

jcalfee commented Jul 19, 2016

Lets assume user's do not know this rule (and there are many rules). How does this effect user experience? I think with the rewards being somewhat random with the volume being high, users would be very unwise to post more than once per day under the same account. Consider a successful introduceyourself post for example, how will users feel when they post again several times that day excited about their reward then find out later they just cut them self out of a huge stake in the system.

@mvandeberg
Copy link
Contributor

We need to display the weight information to them before they post.

@jcalfee
Copy link

jcalfee commented Jul 19, 2016

The 4 posts penalty free helps.. Would be good to have the rate of decrease as one of those configurable items for witnesses.

@mvandeberg
Copy link
Contributor

Already planning on it. Almost all configurable constants that are somewhat subjective will be votable by witnesses.

@theoreticalbts
Copy link
Contributor

TLDR: 1 post per 6 hours, burstable up to 4 posts. Soft limited: If you exceed the rate limit, then later post's payouts are reduced (the STEEM not paid out goes back into the pool, effectively adding a tiny increase the rewards of all other posts in the system).

@jcalfee
Copy link

jcalfee commented Jul 19, 2016

I think you have to warn someone before they post that if this post get not votes it can reduce the payouts on their other posts. This is the loss of expected value on something. That is still a loss. The limit would be high enough that it would only effect very few users and probably a small amount for some of those. Slowly tighten things up if it is working and having a positive effect.

@mvandeberg
Copy link
Contributor

I don't disagree, but that is the the role of the UI, is it not? ;)

@jcalfee
Copy link

jcalfee commented Jul 20, 2016

Yep, that would be me! lol thanks..

@iamsmooth
Copy link

"We need to display the weight information to them before they post"

I hope this can be done in a way that does not encourage ordinary, non-abusing, users to think too carefully about each and every post. That reintroduces the sort of mental accounting costs that the Steem design otherwise attempts to avoid. To me the voting power model is a reasonable approach, where the effect is there and tends to balance reasonably among different usage patterns without users being shown a number to consider on each and every vote.

Perhaps the UI can only start to warn after the first few posts per day or something, so only high volume posters need to consider the issue and not everyone.

@beyondbitcoin
Copy link

Fuzzy:
i wonder, why not make it so people can only post ONE time each day (unless they pay a fee in steemdollars at an elevating rate---ie...2nd post = $25, 3rd = $125, 4th = $625, 5th = $3125, 6th = $15625...etc

then they we can start pulling in some cash flow and at the same time incentivize people to spend at least 4-5 hours a day working on quality posts

Naturally it makes sense to ensure COMMENTING on posts has no such restriction...this way users would spend a great deal of their time in actual conversation after posting their daily post..

@willbanks
Copy link

willbanks commented Jul 27, 2016

I'm @williambanks on steemit and I just want to take a moment and give you my comments on this change, because I can't find any other way to reach out.

By implementing a system whereby people can only post 4x daily without punishment you've incentivized bots dramatically. I build bots so this is good for my business, but frankly I would rather steemit focus on actual quality content.

See here is how this change plays out...

User makes a blog post and it's crickets every single time as it is, but that only gets worse with this change.

Quality users who are trying to play by the rules, will drop out pretty quickly because they can't get any attention or traction at all because this change scares users away from saying anything.

Content will quickly move to shocking content and insipid short term trends (partly because of other changes you're making that incentivize current events over long term quality).

Regular humans are NOT going to want to post anymore unless it's already in trending because you are making the assumption that all posts from a person would generally be voted the same. That's not a reflection of reality.

The truth is 9 out of 10 posts never see so much as a single upvote. When they finally do, it's usually only because it's hot or trending already and they said something provocative.

Almost no one gives an upvote in the lower areas like "new" where intelligent conversation is going on, except for the two or three people having a chat. These are usually minnows upvoting eachother out of sheer courtesy. Part of the problem with that is another change recently where if you want a curation reward you have to wait until the post is 30 mins old, to vote and start chatting which means I can sit there waiting to respond or I move on.

So with this change, a user posts anything at all and they risk major earnings dilution. They have only 4 tries to get it right without being penalized on the entire day's earnings. That's a recipe for a very profitable bot business right there.

But there is more. The original blogger sees they are getting no response so they hire botherders to upvote their post until it's sighted by a whale. Possibly they offer a few dolphins some money to come by and upvote too.

Eventually a whale makes an upvote into an empty room completely devoid of content and commentary except for botspam and it triggers the whale watchers to pour in, in hopes of getting a small slice of the pie.
Meanwhile bots like @jeeves & @Wang are the only things posting at all.

Because your only real chance of not losing big for the day is to get an upvote and the only way to get an upvote is to get noticed, you will see an increase of spamming memes and trolls because this change has made it so that you have to be quick and shocking, or quick and violent.

Either way you need to be quick, so someone is going to pay to build a bot for that.

With this change, taking your time with a well thought out reply is going to kill your reward at least in part because those are hardly ever upvoted even now. More than a paragraph or two and your earnings per word start to drop to close to zero already.

At the moment it's not a big deal. You can spend 20 or 30 minutes considering a reply, and you may win or you may not, it's a bit of crapshoot to be honest. But with this change you now risk losing, so why bother? You can have intelligent conversation elsewhere without the risk of losing your earnings for the day.

Combined with the max 12 hr thing for trending and the change to a 30 day max for payouts on a topic you're asking for spam city all the way.

The upvote bots trying to earn curation rewards (the number of which will increase dramatically because you've castrated posting rewards, so curation is the next most profitable item), they don't look at the actual content. They just upvote the first folks in the door, because that is what is incentivized currently.

So this will cause bots like @calva to come to dominate the conversation with only noobs who don't know any better actually trying to be social on a social media platform. Thus you'll see an evolution of chatter bots who track the bots like @Wang & @jeeves & @cheetah using them as digital meat shields by trying to provoke conversation in the reply area under the bot. This is because that's now the only safe way to earn any money and now you NEED to earn money because if you don't earn with each posting then you lose money.

You want to increase the quality of conversation? Limiting the quantity isn't going to work. It's going to backfire and reduce the quality due to earnings constraints.

Quality posts come from quality people, putting quality thoughts, into quality work. Time is barely even a factor. Look at slashdot and soylent news for an example.

You get a mix depending on the mood of the person and their knowledge of the subject matter, but people generally want to say SOMETHING so they say something. That's how social media works and limiting quantity isn't a fix for the problem because it isn't a problem, it's a purpose for being there.

Limit people and they will just skip out and go where they can talk. Plus it gives any competition that comes along later a major selling point "Hey we had the brilliant idea to let you be social on a social media network, no limits, just chill and get paid".

Fact is I know I'm not alone in this. I can easily crank out 12 posts a day that are detailed, thoughtful and on point. By implementing this change you're pushing the thought that goes into commentary like mine, over into bot creation since people who make their money by trying to frequently post quality content are being pushed out in favor of a time based system and anything with a timer is something best handled by a bot.

A better solution would be to set a reasonable cost per post based on the current earnings and popularity of the original topic and then make it so the minimum amount gained or lost from an upvote or flag is proportional to the number of upvotes which have replies and have subequently been upvoted and replied themselves. Also make the payout a fraction of the total reward the topic gains before it drops out and lift that silly 30 day cap on paying content.

This way people who add a lot to a conversation will gain more than people who just post a bunch a memes.

Furthermore if you do it this way. hardcore bots like @Wang will run out of cash because their upvotes will never exceed the cost of posting. People will have to pay real money to grab onto the coattails of a trending topic and so they will need to make sure it's something they really feel passionate about.
Even a minnow post that's unlikely to ever see daylight should cost a penny, but they they can earn that back if the conversation is good without needing to whale bait the conversation or pray a whale happens to stop by who reads the entire topic and conversation and chooses to upvote rather than just upvoting once on the topic and that's it.

It would also be good if the whales could be convinced to upvote more than the original poster. I realize it's their business, but many times, really indepth conversations emerge from seemingly inane topics and the people in those conversations see nothing at all, despite the topic as a whole basically hitting the lottery. All the while someone posts a quick meme and gets a couple of dollars because it gave a bunch of people a chuckle.

I do see @dan doing this frequently and there are a couple of others, but for the community as a whole it would be nicer if the quality of the conversation about a topic was given a much higher weight to earnings than it currently is. But I guess that's a discussion for another day.

I realize I've come into this way too late to have any impact at all.

Since I see what this will do to the community and since I know it's going to cause bots to rise enmasse, I've registered www.steembots.com and pointed it to steembots.github.io

The intent is to build a guild of sorts for bot creators and bot herders with a code of conduct and all of that in order to minimize any negative impacts it may have. I'm still trying to figure out how to incentivize the other bot builders to join and be honest without turning the place into a protection racket. But either way I'll be opening a topic in steemit about it as soon as the domain pointing is finished baking in.

I really hope if you're reading this that you'll follow me on steemit @williambanks and hear me out.

Thank you for taking the time to read this.

@Wingie
Copy link

Wingie commented Jul 27, 2016

Until recently (like 30 minutes ago) i've been running a bot on steemit with the handle @moridin007 (as a sort of experiment)
it's a video discovery bot and i've worked hard on the underlying algorithm that it uses. It is not a dumb scraper, it tries to correlate recent youtube videos and recent news articles and match them against each other. Once it has a match, it adds the content from youtube description + news article summary and makes a new execute summary (so it is wholly original content by the bot, just similar to the original article)
i run it on http://wingztv.com/today/
I'm very proud of the work that bot does. It has a decent following on twitter and the android app that i have powered by the same tech does enough to pay for the bots server costs.

Apparently i irked a user today who got offended that he found the content that he gave his hard earned STEEM POWER® to was written by a bot.

I'm not sure what this means for the bot and i've shut it down right now until i've had a bit more time to understand the issue. I like my bot and do not want it to be where its not welcome.

Speaking aside from my personal feelings,
Statistically in any social network where users submit content for curation and expect to earn rewards (STEEM, KARMA, LIKES, FOLLOWERS)

  • 90% of all posts are crap
  • 5% of the are good posts are never noticed
  • 2.5% of posts get some sort of traction and fizzle out because other content overshadows them
  • 1.5% may find some sort of traction and get seen my a majority of the network
  • that remaining 1% is content which goes 'viral'

there is no definition of good or bad content, engrossive or boring content, well thought of or poorly researched. There is only the quantitative measure - which is the upvotes/downvotes.
A network which does not really reward based on this measure (At least in its early days) was Tumblr and we all know how that turned out.

Maybe i'm biased, but limiting or penalizing the total number of posts an entity makes on the network serves not only as a reminder to all the players that the rules can be changed at any moment, but also reduces the competition pool of content in the network.

This issue claims that the only way a user can only gain maximum rewards on a post is by posting once a day. Even 2 posts and you've halved your possible gains..

I think it is a huge disincentive to even human agents on the network.

@mvandeberg
Copy link
Contributor

That is not correct. Your first four posts in 24 hours are rewarded at 100%. Only after the fourth post do the rewards begin to decrease. See the graph above to see how posts are rate limited. Note: this only applies to posts, not comments. You can comment on as much stuff as you want all day without hurting your earning potential at all. The goal of this change is to decrease the amount of posts that fall into the 90% crap. The most optimal way to earn was to spam posts and hope a whale saw you and voted you up. There was simply too much content to curate and the difference between the highest paid content and the average is too much. We are going to keep tweaking these algorithms until we find the sweet spot that incentivizes posting of original content or commentary while disincentivizing spamming. This is likely a combination of blockchain rules and GUI. Also, keep in mind that Steem and Steemit are still in beta. We are willing to experiment until we find the right formula. Your concerns are heard and we will take them into consideration when we discuss future changes.

@willbanks
Copy link

Interesting and thank you for this. The way it has been explained at steemit.com was that this applied to top level posts (i.e. the first comment in a thread).
If that's not the case then I've made a serious mistake and need to go and redact a bunch of things.
Thank you for this information.

@willbanks
Copy link

willbanks commented Jul 28, 2016

I'm starting a guild of sorts for bots their builders and their future / prospective owners. @Wingie I'd like to invite you to be part of that.

https://steemit.com/introduceyourself/@williambanks/announce-steembots-com-your-source-for-everything-bot-related-now-hiring

Key to this working is us as bot builders implementing leash codes so those users who don't want bots in their topic can express this desire. Please stop by that thread and let me know. Also @moridin007 is more than welcome in any topic I start.

On July 27, 2016 at 12:48 PM Wingston SHaron notifications@github.com wrote:

Until recently (like 30 minutes ago) i've been running a bot on steemit with the handle @moridin007 (as a sort of experiment)
it's a video discovery bot and i've worked hard on the underlying algorithm that it uses. It is not a dumb scraper, it tries to correlate recent youtube videos and recent news articles and match them against each other. Once it has a match, it adds the content from youtube description + news article summary and makes a new execute summary (so it is wholly original content by the bot, just similar to the original article)
i run it on http://wingztv.com/today/
I'm very proud of the work that bot does. It has a decent following on twitter and the android app that i have powered by the same tech does enough to pay for the bots server costs.

Apparently i irked a user today who got offended that he found the content that he gave his hard earned STEEM POWER® to was written by a bot.

I'm not sure what this means for the bot and i've shut it down right now until i've had a bit more time to understand the issue. I like my bot and do not want it to be where its not welcome.

Speaking aside from my personal feelings,
Statistically in any social network where users submit content for curation and expect to earn rewards (STEEM, KARMA, LIKES, FOLLOWERS)

    * 90% of all posts are crap
    * 5% of the are good posts are never noticed
    * 2.5% of posts get some sort of traction and fizzle out because other content overshadows them
    * 1.5% may find some sort of traction and get seen my a majority of the network
    * that remaining 1% is content which goes 'viral'

there is no definition of good or bad content, engrossive or boring content, well thought of or poorly researched. There is only the quantitative measure - which is the upvotes/downvotes.
A network which does not really reward based on this measure (At least in its early days) was Tumblr and we all know how that turned out.

Maybe i'm biased, but limiting or penalizing the total number of posts an entity makes on the network serves not only as a reminder to all the players that the rules can be changed at any moment, but also reduces the competition pool of content in the network.

This issue claims that the only way a user can only gain maximum rewards on a post is by posting once a day. Even 2 posts and you've halved your possible gains..

I think it is a huge disincentive to even human agents on the network.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/steemit/steem/issues/176#issuecomment-235647111 , or mute the thread https://github.com/notifications/unsubscribe-auth/ATtuLUOf7Pv8qUg2o4AOOt9vkAE4eq4jks5qZ4vJgaJpZM4JO34o .

@Wingie
Copy link

Wingie commented Jul 28, 2016

thanks @willbanks, I accept your invitation for the STEEMBOTS guild. It is a very good article, and i do believe that to be good citizens the bots do have to abide by the rules of engagement so to speak. I have no issues in that as long as the rules are made clear. Leashing is one suggestion, and allowing users the control of allowing or disallowing bots on their thread is a great way for the network as a whole to decide whether bots are a good or bad thing.

But its sad to see the stakeholders of steem like @pfunk blindly against the bot as evidenced by the comment threads on the above post. Its very disturbing that these so called 'whales' can not influence the content and direction of the network but also change the rules to enforce their whims regardless of the networks opinion in the matter.

Who's to say that tmrw they wont introduce two factor authentication for posting? or CAPTCHA based posting? or add some other inane methodology to nerf bot postings? Or penalize by word count? Maybe Grammer analysis and a downvote depending on the score of that result? Stupid ideas they may be - but what guarantee do i have that an overzealous 'stakeholder' doesnt try and implement this? There was no announcement / no discussion / no user polling before this change was forced on the community.

If STEEMIT does not want bots in their platform they should state it in their terms of service.
I went through it completely before i spent time integrating my bot with steemit and there was no mention of penalties for post count or that automated agents were frowned upon by the community.
This would give us bot developers formal notice that we are no longer welcome in the STEEMIT ecosystem.

It seems counterintuitive for me to invest my time into a network that is not community controlled but rather the decisions of a few top individuals holding a majority of the networks voting power.
It has too many parallels to the current political climate in the U.S of A.

@willbanks
Copy link

It's an important conversation to have, but we're presently having this in the issues list at at steems github.

Email me direct admin@steembots mailto:admin@steembots .com and feel free to chime in at steemit because I'm loosing steam trying to have this argument with people that don't understand that this is about tools, not advocacy.

On July 28, 2016 at 1:44 AM Wingston SHaron notifications@github.com wrote:

thanks @willbanks https://github.com/willbanks , I accept your invitation for the STEEMBOTS guild. It is a very good article, and i do believe that to be good citizens the bots do have to abide by the rules of engagement so to speak. I have no issues in that as long as the rules are made clear. Leashing is one suggestion, and allowing users the control of allowing or disallowing bots on their thread is a great way for the network as a whole to decide whether bots are a good or bad thing.

But its sad to see the stakeholders of steem like @pfunk https://github.com/pfunk blindly against the bot as evidenced by the comment threads on the above post. Its very disturbing that these so called 'whales' can not influence the content and direction of the network but also change the rules to enforce their whims regardless of the networks opinion in the matter.

Who's to say that tmrw they wont introduce two factor authentication for posting? or CAPTCHA based posting? or add some other inane methodology to nerf bot postings? Or penalize by word count? Maybe Grammer analysis and a downvote depending on the score of that result? Stupid ideas they may be - but what guarantee do i have that an overzealous 'stakeholder' doesnt try and implement this? There was no announcement / no discussion / no user polling before this change was forced on the community.

If STEEMIT does not want bots in their platform they should state it in their terms of service.
I went through it completely before i spent time integrating my bot with steemit and there was no mention of penalties for post count or that automated agents were frowned upon by the community.
This would give us bot developers formal notice that we are no longer welcome in the STEEMIT ecosystem.

It seems counterintuitive for me to invest my time into a network that is not community controlled but rather the decisions of a few top individuals holding a majority of the networks voting power.
It has too many parallels to the current political climate in the U.S of A.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/steemit/steem/issues/176#issuecomment-235803962 , or mute the thread https://github.com/notifications/unsubscribe-auth/ATtuLa9EFBNtLXuQa1EylZ6rWxWlTmEDks5qaEGugaJpZM4JO34o .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

9 participants