With HF20 Now Live, It's Time for a Look at the Process: A Statement From One of the Consensus Witnesses

When our block producing duo (@followbtcnews and @crimsonclad) started out on the Steem blockchain more than a year ago, we didn't come specifically here to pursue becoming a top twenty witness. The blockchain drew us in; we started talking about the potentials, the help we could give, and the exciting times ahead for what has been building over the last two years in the Steem ecosystem. Once we started witnessing, as we moved up, we worked harder with the expectation that we would move where we needed to move as long as we kept participating in the system and giving back what we're best at. That has definitely worked for us, culminating here and now in the first few days after a long awaited Hardfork — our very first as witnesses, and part of the consensus to boot. I think, given the implementation being very rough, that it's important for us to talk about the process and the expectations we have and that are placed on us, and how those can be improved in a way that means the next Hardfork goes more smoothly.

Most importantly, we both think that given we have a direct hand in voting for code changes, that when they cause confusion and frustration it's important to let you know that we hear you, and we understand the criticisms and concerns from all parties involved. When things can't go perfectly (or even a baseline well, in this case) saying that we're sorry for that, and showing you where our focus and goals lie is a critical step.

Now, both of us agreed with and wanted to see the ideas and capabilities of the code in HF20 implemented, and we stand by that. But the first takeaway that we'd like you to get from this post is not just that we spent a few weeks pouring over things and picking things apart and trying to break things. We're happy with that portion of the expectations of a witness and what we put in, but doing enough isn't always enough, and each time we'll push to do more. We used the testnet, and the testnet condenser as 'regular' users. We spun up nodes to connect to it as non-standard users. We put time into scanning through the code, pulling out the key parts and working to match that up with what we could do and what we understood was supposed to happen. It would just be pretty crappy of us not to pass on what we've learned and not to take any lumps for being a part of all of it, either. So this leads us to putting down all of the expectations in a post that expresses them clearly to the Steem ecosystem.

What will we expect when adopting a Hardfork?

  • Since most code is not community developed at this point, detailed documentation for big changes that require extensive source code knowledge
    • figuring out the gist of syntax for most languages is possible. Figuring out what functions do and then testing the hypotheses against the testnet can be done without being able to "write" Steem source code. Since we're not at the level of developing core blockchain changes from scratch yet, having better documentation on the purpose of code or the reasoning behind it means more time can be spent trying to break it armed with a better set of weapons.
  • A testnet where a large user subset is live at any given time, on top of mirrored mainnet transactions
    • we had a testnet with mirrored transactions from the mainnet being fired in by the gatling process. The missing element here is more than accurate usage based on transactions, but many more live users all acting normally and irrationally with the true intention of trying to smash it.
  • A timeline of testing on testnet between 1-2 months minimum
    • the testnet was up for less than a month all told with the way the simulations worked out. More people needed to know about it, but given that things found on testnet also need to be further explored and then patched, we're not totally convinced one month is enough given the possible enormity of changes.
  • A goal of fewer major changes per Hardfork, and potentially naming/producing them in more modular ways
    • we wanted all of the changes encompassed in HF20. It's been more than a year since the last, and the HF20 package was large. Moving into the Hardforks to come being able to more quickly check over and start testing changes is important. So is making it more possible that delaying mainnet launch of key features for additional testing time as bugs are found doesn't result in slowing or even halting the overall community roadmap. There's absolutely a sense of pressure to release. Breaking things into chunks that are more easily digestible will help alleviate that without rolling over witnesses so heavily into feeling they must go with the flow or be the one to hold up needed development. Looking at naming/mapping conventions as well as pared down chunks of changes will also hopefully mean that less essential changes or particularly troublesome ones can "float" between HFs to keep momentum without sacrificing development and testing quality.

What is it that we as witnesses need/pledge to do for new Hardforks?

  • In addition to community outreach and other forms of spreading our intentions, to make a post (or series of posts) that states clearly our agreement with or disagreement with the Hardfork, specific features, and our adoption intent.
  • To be part of code auditing, as well as following github changes and updating our communications and testing as required based on that.
  • To always have a minimum of one of our backup nodes prepared on the previous version.
  • To join and use testnet for the duration it is up from the vantage point of all types of user. This means both front end basic user stress testing, while also participating with nodes and more complicated test transactions.
  • To always be in contact with users who rely on us for a better understanding of Hardforks — which means via text and voice channels live before, during and after the scheduled date in addition to clear and updated posting.
  • To encourage and seek out better communication, earlier, more frequently, and more clearly, between all witnesses and Steemit Inc.

There's a lot in HF20 which is laying the groundwork for some changes that will help us build an experience that will be easier to understand for users, and will foster a better ecosystem.

That's a huge thing to say in a bold headline when many on the platform feel so upset about the way things played out, and I understand why it might be an uncomfortable statement with so many new values and calculations and names for features involved. There are definitely bugs that need to be fixed, but it's the combination of all those in addition to things as simple as users not knowing their VP would be wiped before it happened that have made this so frustrating. Some things during this period, I felt we as a witness did correctly. A lot of things, I think we took too much of a lead from others with this being the first Hardfork we've been consensus for — and that most definitely is from the communication angle.

We took part and listened and absorbed the discussion around us and kept an eye on our testing and on the people we were helping, which is all well and good. I think that moving forwards, communicating more effectively means explaining what will happen before it does as a group who all understand it; giving better estimated timelines, even if they're longer than we'd hoped for; updating more frequently because silence is disrespectful, even if the answer is "I'll get back to you with better information"; encouraging talk between all witnesses earlier; and explaining things like fluid values and fluctuation expectations better to stop confusion, panic, and anger by arming people with knowledge. This needs to be an everyone involved kind of thing.

While both Crim and I were on call all day/week/month anywhere and everywhere, and working with users to explain more about what to expect and what was happening, our own lack of a posted statement is one place that I think must be improved. Even then, a few posts on the chain (that no-one could comment on in this case) does not constitute the right forms of preparation, and I say that as a job that needs improving for all witnesses and Steemit Inc. as well. We went into this with a huge batch of code that does what it was intended to do (for the most part, there are yet bugs to be patched) but we didn't look or talk about every type of user's experience enough to help the transition go better starting before the fork, regardless of the code outcome.

So now what?

Well, there are positives and negatives, and the idea of "let things recharge and the system find balance" isn't a perfect answer and can't be used to put off solutions. However, to some degree, there are positives like increasing transactions, increasing pool resources, and decreasing costs that mean that it's not being said facetiously. There's going to be more work to review patches for some bugs that have come up due to node relaying circumstances during the switchover. There's going to be a lot of frustration and a quiet chain this week as users decide to post and transact less because they're waiting to recharge.


There's going to be more posts like this one from witnesses of all ranks, which is really important. Steemians of every user type are expressing themselves and their experiences and concerns and feelings everywhere. There has never been a greater interest in voting for witnesses, asking questions, being constructively critical, and watching the way that leaders are emerging in helping out, spreading knowledge, and being encouraging (or discouraging on some aspects with reason) and that is a positive given that we've had to go through this to get it. And yes, we have some new features that will help price things on the network more accurately, will help you use the full capabilities of your stake more effectively, and will eventually translate into ways to show people easily "what they can do" on a Steem front end without having to learn the complex way all of the algorithms under it all work. Some abusive behaviours will get curbed. There is a lot of work to do, and we're behind the eight ball because of the way it's gone right now, but there's always going to be more to do.

We're available whenever you need us, and we're still working and still trying.

If you need to contact us, do so. It's just important to us to make a long (so, so long... sorry!) post like this to make our goals and intentions clear, and to start the steps to being better at what you have trusted people like us in the ecosystem to do.


I'm Jeff, and I'm @followbtcnews.
I'm a top 20 witness, along with my project partner @crimsonclad. Feel free to reach out to us on Steem.chat or Discord any time! If we haven't earned your vote yet, please take some time to look at Steemtipperand other work we have done. We hope you decide to place a witness vote for followbtcnews by clicking here