In the past week I've read many Steemians complaining about that they are unable to use the system because the only thing happening is an error message shows up. I hear many explanations as well. Some argued that this is because Steemit wants them to buy Steem Power, some blame it on the whales, and I even heard that bandwidth is a censorship. Well, I have to partially agree with the last one, but this censorship is supposed to be against the spammers only! But sometimes things go wrong unexpectedly.
I was trying to assure the minnows that this is not the end of the world and I'm sure the help is coming but really I had no idea what is going on. This led me to do some investigation and here is what I've found.
Why we are having the "Bandwidth limit error?"
The reason is the rapid growth of the platform. Many things have played a part in this problem and it might looks hopeless but the light is there at the end of the tunnel. If you don't care about the technical details, you can jump to the "Conclusion and solution" section at the end of my post.
The problem is (C*U*R*L)/S
That's actually not a word but a mathematical formula for calculating User Average Weekly Bandwidth. Without going too technical I'll explain how is this allocation calculated and why is this important.
Let's start with the basics
To prevent spamming the network, instead of paying transaction fees like at Bitcoin, when you write a post or comment, when you power up, when send money or change your profile picture, etc. so when you interact with the blockchain (make a transaction) you're using up part of your bandwidth.
Your nice post, after clicking the Post button is being converted into code. The browser will pack all the text, title and tags, than add your signature to the package and it is broadcasted to a witness who will include it into the next block. Your package have a size: X bytes. X bytes will be deducted from your bandwidth allowance.
You can check your remaining bandwidth at https://steemd.com/@username
That "11mb" (11 Mega Bytes) you see above is my bandwidth allowance, the maximum amount of data I can transact with the blockchain. The number will go down as I send my post and it will regenerate over time.
Your number will be different because it's depends on many things, just to mention a few:
- the traffic on the blockchain at time of your transaction
- total traffic in the past few days
- your SP
- the TOTAL SP on the steem ecosystem.
OK, but I still don't know why the error?
Simply: Because of the growing popularity of Steemit!
You don't have to remember everything below but it will give you a better understanding of the issue.
What factors play a role:
total_vesting_shares
When your account was activated, you received some Steem Power. When you power up you get more SP. The total_vesting_shares
is the amount of SP in the whole steem ecosystem, every user's SP together.
current_reserve_ratio
This variable is responsible for the allocation of bandwidth based on the traffic on the blockchain. As I found out from @rycharde's blog, if the network traffic hits over 50% of the capacity, the current_reserve_ratio
drops. This is what happened lately it went from 20,000 to as low as 243! And it's only because of this unprecedented growth. Which is a very good thing, don't get me wrong but the blockchain wasn't ready for it. The developers will change this algorithm in the next soft fork (0.19.1).
maximum_block_size
Just briefly have to mention that every block can hold only a previously specified amount of transactions 65,536 Bytes. This number can be adjusted by the witnesses, each witness set his/her own maximum_block_size
. @someguy123 has asked all the witnesses to increase their block size. As @blueorgy wrote in his blog, the new median is 98,304. This way helping to ease the pressure on the system temporarily.
The formula again
Finally we have all the variables explained, so let's do the math:
C = maximum_block_size
U = USER SP
R = current_reserve_ratio
L = Total blocks in 7 days
S = Total SP (total_vesting_shares/2060)
User Average Weekly Bandwidth = (C*U*R*L)/S
Conclusion and solution
Thanks to @timcliff's report we can be sure that the Steemit Developers are already working on the solution and they are most probably going to introduce a new algorithm for calculating the current_reserve_ratio
, very soon.
In the meantime if you are unable to post, comment or upvote, the only thing you can do is to wait. Go to https://steemd.com/@your-username
and check your bandwidth. It is recovering in a different rate at different times because of the traffic in the system but you should be able to transact after a short waiting.
Alternatively if you have less than 10SP you should check out @neoxian's post about her standing offer this might be a quick help.
bandwidth limit exceeded message [Unknown licence] | Hanover bars with PAL delay [CC0 1.0] |
References:
Potential Bandwidth Issue Fix is in the Works - Softfork 19.1 | Dear Witnesses - Please increase your block size! | Why Are So Many Users Hitting Their Bandwidth Limit? Solved It! What You Can Do. | Witness Consensus Reached for Maximum Block Size with a Median of 98304 | Standing offer: if you are a newbie and you are getting "Bandwidth Limit Exceeded" I will fix you |