Hardfork 20: What to Expect Tomorrow
Hello Steemians, tomorrow is the planned switchover date for HF20. After last week’s halting incident, we performed an exhaustive audit of the relevant blockchain code (specifically “config constants”) to ensure there were no similar bugs. After completing the audit, we are highly confident in this release, and we have recommended that the witnesses upgrade their nodes in preparation for the planned switchover tomorrow.
We will be fully staffed and prepared to deal with any problems that may arise. We are making this recommendation because we have the utmost confidence in the safety of the code and we believe that sticking to the scheduled time will minimize wallet downtime on exchanges. As of now, a super-majority of the top 20 Steem witnesses is running version 0.20.2 of steemd which means that, if nothing changes, the hardfork will occur tomorrow, September 25, 2018 at 15:00:00 UTC.
Unlimited Editing!
Before we go further into what changes users can expect after the Hardfork, we’re happy to announce that once all of the witnesses have begun running version 20 of steemd, we will be able to enable unlimited post editing on steemit.com!
Change is Coming
Hardfork 20 includes many updates, all of which were summarized in this post.
3 priorities governed the development of this hardfork:
- More efficiently allocating and pricing resources to ensure sustainability and scalability
- Enabling DApps to create free accounts while maintaining game theoretical security
- Setting the stage for communities on Steem and Smart Media Tokens
The biggest change included in this update is that our previous bandwidth system will be replaced with a more accurate and efficient “Resource Credit” system. In another post we explained in detail how the RC system will further Steem’s lead as the most advanced freemium blockchain in the world.
The development of that system was itself guided by 2 additional priorities:
- More accurately measuring the true cost of running the blockchain
- Enabling Steem developers to create more predictable user experiences
The new system will accomplish these goals by generating RCs (Resource Credits) based on stateless estimates of 3 resources: blockchain size, state size, and computational load. The blockchain will then distribute those credits to accounts based on how much Steem Power they hold. Like bandwidth, the only thing you will be able to do with RCs is “purchase” transactions (post, comment, vote, token transfer, etc.) and also like bandwidth, RCs will regenerate over time so that you can continue using the blockchain as long as you have Steem Power.
Important
It is very important to understand that, while RCs will function very much like bandwidth, this is a significant change to how transactions will be priced. The old bandwidth mechanism functions by assuming that all physical resources are correlated to one thing: transaction size (tx). The benefit of this system is that it is inexpensive for the blockchain to compute. The downside is that simple tx size is not especially accurate, which means that users who only perform operations that are low cost are effectively subsidizing all users who are performing high cost operations.
Examples
For example, under the current bandwidth model, a follow is underpriced because its computational cost to the blockchain is born over time, whereas a transfer is dramatically overpriced since it requires a lot of resources at the time of the transfer, but virtually none over time. Yet, under the bandwidth model, token transfers are 24 times more expensive than a follow. The RC system fixes this by accounting for a wider variety of consumed resources thereby creating more accurate internal pricing.
Impact on User Experience
By measuring more of the critical resource types the blockchain will more accurately price operations in RCs, but that also means that as of right now, resources are not being accurately priced. So after the RC system goes live, the user experience will have to change and the new system will need time to reach a new equilibrium. Due to this uncertainty, we added a “fail safe” to the code that will enable witnesses to revert from the RC system back to the old bandwidth system if absolutely necessary.
However, we strongly recommend not using this option.
Our lead blockchain developers @vandeberg and @theoretical have spent countless hours scouring this code and are certain that over the long run this system will improve user experience on Steem. But, most importantly, it is absolutely critical for the sustainability and scalability of the platform that this system be allowed to operate and reach equilibrium.
Maintaining a Consistent User Experience
We have also built in a mechanism that will ensure users are gradually transitioned from the old bandwidth system to the new RC system. That being said, as the transition goes on, users will likely notice some changes in user experience, though it is difficult to predict what those changes will be. Over the long run, we believe that this new system will have a beneficial impact on the prevalence of bots and spam.
What to Expect
But while the system is searching for equilibrium, the appearance of these phenomena might actually increase. At the same time, we expect that the real user’s ability to transact may be more limited. We will be monitoring the behavior of the RC system following the hardfork and promise to inform users of any changes that represent serious threats. We thank you in advance for your patience as the system adapts.
The crux of the problem is that many expensive operations are underpriced by the current bandwidth algorithm. Were the RC system applied in its purest form, it would immediately impose draconian austerity on all operations, severely limiting the ordinary user’s ability to transact. In order to avoid this scenario we are making transactions artificially cheaper than they would otherwise be at the beginning‒setting the resource pools to 90% of max equilibrium at the time of the hardfork‒which will allow users to continue using the blockchain after the hardfork and gradually transition them into the RC system. It allows the user base to consume the artificially high resource pools down to the new equilibrium instead of forcing them to wait for the pools to regenerate up to the new equilibrium.
Time Frame
The changes in user experience should only last around 7 days. Unfortunately, it’s impossible to know exactly how things will unfold as the system relies on unpredictable human feedback. What we know has to happen in order for Steem to scale‒while remaining a freemium blockchain‒is that we must transition to a system in which the people who are performing low cost operations are not paying for the people who are performing high cost operations. In addition to improving the sustainability and scalability of the ecosystem, this system should have a beneficial effect with respect to spam and bots. But this also means that there will have to be a transition period during which users learn what operations consume a lot of RCs. Votes and token actions will require relatively few RCs, for example, while comments will consume far more RCs. Again, this is based entirely on the amount of computational resources these activities consume.
Free Account Creation
Another important change that is coming in HF20 is the ability for Steem Power holders to use their RCs to purchase Account Creation tokens. Purchasing an Account Creation token only enables you to do one thing: create one account at zero cost. Proportioning the amount of free accounts a user can create to their stake ensures that the account creator is incentivized to only create accounts for valuable people. As with the RC system, there are a lot of unknowns with respect to how this will function IRL. That is the cost of decentralized solutions optimized for sustainability and scalability. Since no one individual or entity controls the system, how exactly it will perform cannot be known.
Role of Witnesses
In order to minimize the risk of this system being gamed, the people who will bear the cost of abuse (those who have skin-in-the-game) have to exert the most influence over the system. For this reason, the witnesses will be the ones determining the supply of Account Creation tokens as they bear the cost of running the network. It is important to note that even if the witnesses set the number of Account Creation tokens to zero, all that means is that in order to create an account someone will have to pay the 3 STEEM account creation fee which, after HF20, will be burned instead of powered up. If they want that account to be able to transact on Steem, then they will need to delegate Steem Power to that account as is currently the case. In other words, if the witnesses set the supply of Account Creation tokens to zero, we are effectively left with the same system we have now.
Fostering Growth
The witnesses want this network to grow in size and value, so they have an incentive to make the supply of Account Creation tokens positive. We are recommending that witnesses set the supply of Account Creation tokens such that they support the same rate of sign ups we are currently experiencing. This is typically the approach we take when integrating new systems. First, we ensure that the system can deliver the same level of functionality as the old system and, once that has been sufficiently tested, we can begin exploring new capabilities.
Based on our calculations, this approach will make Account Creation tokens extremely expensive in terms of RCs at the beginning. It is important to remember that RCs also govern an account’s ability to transact. So if you spend all of your RCs on account creation, you will lose the ability to transact until your RCs regenerate over the next 5 days. Of course, accounts can power up more STEEM in order to receive more RCs and resume transacting.
It’s important to bear in mind that HF20 is not a panacea. It is another, very big, step in the right direction. What we know for certain is that these changes will provide all of us with the tools we need to scale Steem to much greater heights, but the cost we must bear is some uncertainty with respect to how these systems will interact with users in the short term, as well as what systems and tools we will need to build in order to effectively leverage the features we are adding to the base layer.
Let’s Do This!
We strongly believe that Hardfork 20 should be allowed to occur tomorrow and that this event will be a major step forward for the Steem blockchain and the Steem community. We kindly request your patience as the new systems go into effect and we promise to keep you fully informed in the event of any unforeseen consequences.
Steemit Blockchain Team
For details on all changes in HF20 :
https://steemit.com/steem/@steemitblog/steem-velocity-hardfork-hardfork-20
This is a big step into helping more people understand how the "free" part of our transaction system truly works, which I always think is an important part of deconstructing automagical things to empower users to make the best choices they can.
I've been engaging in a lot of discussion with the users that may get the first bit of throttling to remember that any potential slowdowns are mostly a sign of the changes in accuracy coming into effect. It's important to look at the baseline over the next few days as an impermanent thing that will get a chance to settle, and that can be influenced on a personal level by thoughtful habits. For many who were here when we experienced the system searching for bandwidth equilibrium at the beginning of the year, they're ready for the improvements to come and can help reassure newer Steemians!
Basically, let's bring it 😎
Very well said and thanks for helping with the education process. I totally agree, I think it will be easier for users to understand how this freemium model works, and I also think it will enable developers to better understand what makes Steem such a valuable protocol with respect to powering applications. After all, freemium applications have dominated the internet landscape!
I really appreciate the transparency here to set reasonable expectations for what the next week or so might be like for Steem users as the new system finds equilibrium. To go even a bit further, would it be safe to say:
Means in practical terms:
Same goes for:
Essentially, people with low SP should expect to see errors over the next week as the system finds an equilibrium, yes? Also, accounts with high SP but high usage (bots, etc) may also see errors. Is that correct and a good expectation to have?
My hunch is there could be some criticism of Steem (and therefore Steemit) being seen as a "pay to play" system due to these changes, but I think it's more accurate to say someone was always paying, it was often the wrong people (not the spammers, bot owners, etc). The hope is this will improve now that we have the functionality in place to treat specific operations differently.
I agree with this completely. Someone is always paying, there is no way around it. There is a cost to running the blockchain, it is that simple. The costs being hidden to the average user does not mean they do not exist.
I always write that there is no direct cost per transaction on the STEEM blockchain, not that there is no cost. There is a cost, the question is who is bearing it.
People need to have a bit of patience as we transition away from the centralized world. This is a different arena than most are accustomed to. Many hate the centralized systems where a corporate entity bears the cost of the servers, etc... in exchange for the data they sell. Well, someone has to pay.
Freemium is what people are use to, it is just a matter of trying to find a way to get to that point.
But doesn't this also inefficiently make use of existing resources? For example if someone with 1 milion SP is only using 0.01% of their RC's, vs someone who has like 3 sp but has formerly been a very active contributor of content and is now restrained....? Is that the best use of resources to now cut off the latter?
I'm prepared to alter our account creation procedures to fit within the new HF and RCs.
As larger stakeholders (there are numerous that fly under the radar) may end up abusing the RC system with spawning free accounts, I'd like to see a zero (as close to zero as possible given the calculation) there from all witnesses, at least for the initial time period (let's say until 2019). Let them burn their STEEM. We can't afford to set too high until we observe the behavior of users/stakeholders.
may the hardfork be with us !
Reading you comment too quicly is not really a good idea.
why so serious ?
Can we please for the love of god have this pop up when someone does not have enough resource credits to do something?
Fucking Genius
Guess I'll see if I can get a Witness server rolling on HF20 and spend my last $150 online dollars running the thing.. I have faith in this update and hope it goes well.
The RC sounds interesting I hope it will work, however the fact that people will need to learn about RC like they need to learn about voting power, is another complexity for users.
Good luck tomorrow everyone. And may Steem live on!