The Steem blockchain recently hard forked to version 20.0 of Steem the software. This new upgrade removed the bandwidth system and replaced it with a new system called resource credits. This new system has caused some confusion among many Steem users since they weren’t able to post in steemit. In this post, I will try to explain how this new system works.
Steem blockchain has limited resources (CPU time, State Memory, Bandwidth etc). Before hard fork 20, Steem blockchain allocated some of its resources to network participants for free. The only resource that wasn’t allocated for free was bandwidth. It can’t continue to give free resources to people cause that is unsustainable. The previous system allowed people to spam the system to oblivion.
In order to make the system sustainable and ready for smart media token implementation, Steem had to change the network’s resource allocation model. This is why the new resource credits system was implemented. This new system fairly distributes the system resources to network participants proportionally to their Steem Power. The more Steem Power you have, the more resources you will get. This works exactly how CPU and NET (bandwidth) work in EOS blockchain.
Instead of breaking down all resources, Steem implemented a single system of resource credits. This new system will make Steem viable and sustainable for Smart Media Token implementation. Resource credits are calculated using the following method:
The new system will make the assumption that all physical resources are correlated to the three aforementioned types (blockchain size, state size, computational load), as opposed to transaction size only.
Much like the current system distributes bandwidth, the blockchain will then generate RCs based on its stateless estimates of each resource, and distribute those RCs to Steem account holders based on their stake. Then it will calculate the cost (in RCs) for each transaction based on the remaining availability of those resources.
An example of how to calculate RC:
If CPU cycles cost 5 RC / megacycle, state memory costs 8 RC / byte, and history size costs 4 RC / byte, a transaction which takes 2 megacycles, creates 50 bytes of state, and has a 150 byte transaction size will cost 25 + 508 + 150*4 = 1010 RC. Source