I finally found it - A proposal for preserving the bandwidth

in #steem7 years ago

I am trying to find a potential solution to the bandwidth usage problem. In a few words, everything you are doing here like voting, commenting or posting articles on Steem is taking some resources and this usage of resources is limited by bandwidth.

For the new users who experience problems with the lack of bandwidth here are a few good tips about preserving it, like verify your comments and posts instead of editing and resubmitting the same comment again and try to limit your activity here as much as possible. At their core, these principles are good by trying to preserve the quality of posts and comments, but what do you do when some users are checking their bandwidth, are taking care of each post they make, watching over their bandwidth and not wasting too much of it while others are spamming comments and posts, filling the blockchain with useless content?

PS: for those of you who don't know how to check the remaining bandwidth, go to steemd by the others, insert your username in the url with /@ before it and hit enter, like I have done with mine: https://steemd.com/@mejustandrew and you will receive an image like the following, with a lot of interesting information including the remaining bandwidth

image.png

As you see I have enough bandwidth but it is still very few compared to the bigger users, but this is a big problem for the new users, especially those who do not have much Steem Power as pointer by @hilarski in his post.

One of his suggestions were that users who experience the lack of bandwidth should power up. I don't think that most of the new users (almost nobody new) will power up just as he joined the platform because he gets lack of bandwidth. Most likely these new users will stop using Steem because they will think it is broken and not start to learn how things are working here, what should they do to solve the problem or why it is good to power up.

This bandwidth problem may not sound so bad at the moment but taking into consideration the great number of users who join the platform lately and the increased activity on the blockchain it is more than clear that something should be done and fast. In his previous weekly report, @penguinpablo announced that a new record of 274,477 posts has been reached and in almost all of his daily reports it is easily to see that the number of active users on Steem is increasing.

The bandwidth seems to be the only scaling problem of Steem

If you think that Steem is handling th e biggest number of transactions a day that a blockchain ever met, according to blocktivity

image.png

And still not passing the 0.15% of the blockchain capacity then we can see that there is nothing to worry about when it comes to Steem scaling as a coin, but don't forget that Steem is more than a coin, it is a social platform and this is what makes it different by many other coins on the market.

Just to make this introduction complete (I know, this is just an introduction, so much to read, pff!) I want to share @themarkymark's comment at one post about witness migrating server on which I was asking how much RAM does a witness need to keep on his server. It seems that witness nodes do not require much memory, but full nodes do, and they do a lot! Here is his full reply:

Those are full nodes. Witness nodes require much less.

and how much is enough?

Who knows with how much spam there is on Steem and how the protocols work it will be an ever increasing problem far faster than technology advances.

In September we were at around 12G if that puts it into perspective. Full node already broke 256G barrier.

Considering the current price of RAM memory, making a server which could run a full node of Steem requires around 5000$ (or even more depending of the RAM generation). These are efforts to keep Steem going as a social platform and to allow the huge activity here from many people within the community.

This was the introduction, I have presented you some aspects of the bandwidth problem and its context.


A partial solution

I remembered these days, seeing that the bandwidth problem is getting worse, of a post written by @intelliguy which I have read three month ago (I am here for four:) and it was pretty hard for me to search for it, I had to use Google advanced search for about an hour in order to find it so keep going with me for the next part, it is worth it!

He proposed as a solution to the overuse of the blockchain by all the spam and unvaluable content producers, that a post does not gets written on the blockchain unless there are some criteria met:

a) 24 hours has passed

b) They receive a minimum of 10 upvotes that require a minimum collective SP or vests of a certain amount.

(This is to prevent low reputation and low SP bots from autovoting things)

c) A minimum of 3 comments is received on the post in that 24 hour period

d) The author account must have a minimum reputation of 25 or higher

e) The author name is withheld when shown on the "created" or "new" feed for 24 hours

This may be a very good solution to the problem of bandwidth that we currently face and I think that it is pretty original but it has some glitches. For example:

How does the interaction of the blockchain with some article located on some server take place?

If I will vote on an article that is not on the blockchain, where does my upvote go, since the upvote is part of a block on the blockchain, but the article is not on the blockchain too. Will I lose a part of my voting power as I do when voting for an article that is on the blockchain? What happens to the curation rewards in this case, are they vanished?

Also, If I comment on an article that is not on the blockchain, it is the same case as the upvote, under what category my comment will be since the article is not on the blockchain? And what if my comment receives a lot of votes, even though the article does not receive enough votes/comments in order to be persisted on the blockchain, will I still get the rewards on my comment?

And to make things complicated, who holds the servers on which the content is kept before entering the blockchain? In this case we are heading back to centralized systems if we have to keep some centralized data of the articles that will be introduced in the blockchain. This could be both a security vulnerability as long as a philosophical problem over the concept of decentralization of Steem.

You may think that I am overthinking about it, and that this topic should not become an over engineering, but these are actually just a part of the aspects and corner cases that Steem developers will have to take into consideration when designing a solution like this.

Another version of a partial solution

I am naming this part of the article this way because I don't think that it will completely solve the problem of lack of bandwidth, but more likely to redistribute it in a way that new users who want to be part of Steem and contribute being part of this social platform, to benefit of enough bandwidth they need to interact with people and post a couple of articles without the need of powering up.

The idea behind this is to reduce even more the bandwidth that some users have and use up, in order to be able to offer new users more bandwidth. I guess the ideal usage of bandwidth in this case is taking the bandwidth from the bad content producers and award it to the good content producers.

You may think that Steem is already working on this principle by giving more bandwidth to people who get upvoted, it is true, but it is still bad this way. I want to propose to reduce bandwidth from people who are providing bad content and they can be identified much easier:

  • They are spamming content or recycling the same posts

  • The flags/votes they receive goes over a specified threshold

  • They have few Steem Power

  • They have low reputation

I know that the people in this category have already pretty few bandwidth theoretically but they still have enough to pollute the platform with unnecessary content. To make my point clear, I will provide you with an example of a bot which I have written about that is spamming and trying to get as much users in a game where it receives a lot of upvotes. Hopefully it was took down by @steemcleaners and some other guys. The bot is called @steem-network. Here is a screenshot of their account on steemd

image.png

It ran out of bandwidth you would say, the approach that I am proposing is useless. You may be partially right, it ran out of bandwidth indeed, but it did this a little bit too late in my opinion. It had enough time to make over 18000 posts!

image.png

If you don't believe me, check their page and their comments. I consider it a waste of bandwidth.

Almost any other bot like this one could easily fall into the proposed criteria and ran out of bandwidth before filling the blockchain with useless content. And I am taking this even further:

All the specified criteria can have a factor of calculation and all those rated could result in a number which would be a user's bandwidth coefficient. If the users fits into the category of the people which have to gain a reduced bandwidth, then their bandwidth will be reduced proportional to that coefficient.

Let's consider the standard that a user needs to meet not to have a reduced bandwidth something like 100 spam posts, 0.1 flags/vote, 25 Steem Power and 0 reputation.

A basic example wold be an user who has:

100 spam posts

0.5 flags/vote

15 Steem Power

0 reputation

In this case he would get 0 for the spam posts, 0.4 for the flags per vote, 10 for Steem Power and 0 again for reputation because he is right at the edge. Now because 0.4 is just a small number but it is very important in our situation, let's factor it with a factor of 10, for simplicity and sum all his results to get a final score.

We would get: 0 + 4 + 10 + 0 = 14.

Then this user's bandwidth can be reduced with 14% without making any harm to the platform. This was just a simplified version of how to compute the bandwidth coefficient and how it can be applied to the bandwidth of a bad content producer, in reality the calculation can be much more complex and balanced than this.

As an advantage, this approach will limit even more the users who are spamming content or the bots, while preserving more bandwidth to users who want to actually make good content here.


What are your thoughts regarding this proposal, do you think it could be applied or improved?

Please share your thoughts below and hopefully we will make this a better place together!

Thank you for reading!

Sort:  

bandwidth has never been an issue for me, I am not sure why as I always go back in and edit any spelling mistakes that have slipped through etc. I think if you are spamming then you should have your bandwidth taken away from you as we don't need to see it and ita a waste of use for someone else.

You hadn't the problem of running out of bandwidth because you have made your account and started blogging here a while ago, when Steem was not crowded let's say. You had enough time to build up some Steem Power and now you won't be facing the bandwidth problem, unless this place increases a lot the number of new active users. But people joining the platform now, these are having problems commenting and writing articles because they have really just a small bit of bandwidth.

And people abusing the platform spamming and drowning bandwidth form the honest content creators make this even worse. Just think about it, how would a minnow feel when he will post its article which gets really few to no upvotes as it is almost every minnow's post and when he tries to engage with people in comments or write another article, it runs out of bandwidth. It would be really discouraging IMHO.

Yeah that would suck, as each comment would take bandwidth and without commenting you can't grow your following through engagement. That would be super hard. I wish we started earlier but I am glad we didn't start any later, we made it in the first 500,000.

I am fairly new and noticed the bandwith in my steemd but did not pay too much attention to it. Thank you for explaining it. One thing I've learned so far is to be picky with upvotes and comments in order for them to have more value. I think this is a good thing as it's purpose is to diminish the noise

I am glad you found useful the article. I really hope things will get better here :)

A new joiner who really wants to grow here on Steemit will need some additional bandwidth. It takes time for them to understand the platform, to get upto the mark w.r.t. quality of content. Many minnows quit because they were unnoticed. Some minnows try real hard and try to participate in every discussion possible. Unless such things are addressed the bandwidth problem will always be an issue.

yeah, me too. got a problem with that. had a limited post this past few days w/o any warning. thanks for this info.

I see, don't worry, after you will receive the payouts from your @utopian contributions, you will have a little more Steem Power and you will not face the problem of bandwidth, at least not that much unless you power down.

I can not continue work for the bandwidth..It is the great problem.for me.

I have just checked your profile and you seem to be okay with the bandwidth that you already have. Did you ever ran out of bandwidth?

You got a 0.98% upvote from @postpromoter courtesy of @mejustandrew!

Want to promote your posts too? Check out the Steem Bot Tracker website for more info. If you would like to support the development of @postpromoter and the bot tracker please vote for @yabapmatt for witness!

Release the Kraken! You got a 14.58% upvote from @seakraken courtesy of @abbak7!

Resteemed by @resteembot! Good Luck!
Curious?
The @resteembot's introduction post
Get more from @resteembot with the #resteembotsentme initiative
Check out the great posts I already resteemed.