Introduction: What I am looking for from the witnesses
Yesterday's hardfork made me begin to rethink what I want to see in exchange for my witness votes. The Steem block chain is 2 1/2 years old now, and it's about time for its governance mechanisms to start maturing. I believe that one key to this maturity is the participation of witnesses.
Image Source: pixabay.com, License: CC0, Public Domain
Image Source: pixabay.com, License: CC0, Public DomainUntil yesterday, I have been casting votes for witnesses who I think do generally good things for the Steem ecosystem. After being locked out of the Steem blockchain yesterday for just about 24 hours, I am rethinking that methodology. Witnesses are handsomely rewarded for their role, and I am now thinking that community members should begin to expect a more active governance role from the witnesses.
I've worked in IT for a long time, and I know that no code is ever perfect. I also know that programmers and engineers can be overconfident, and they often need to have external discipline imposed on them. That's not intended as a criticism. It's just human nature. In my experience, it is true just about everywhere that you find cutting edge technology.
To be honest, I was ok with the "Hardfork Successful" headline in yesterday's post. I do think it was a success, but the reality is that the success was very expensive. Now that things are settling down, it's important to start learning the lessons that it can teach us. Future successes need to come at a much lower cost.
So, witnesses, I am looking for you to begin to apply that necessary external discipline. You are the board of directors of the Steem block chain - the most powerful group of stakeholders. Off the top of my head, here are some of the kinds of things that I would like to see before I cast my future witness votes.
1. When the block chain is functioning smoothly, your default position on accepting a hardfork should be "no".
Steemit, Inc. (or anyone who proposes a fork) should have to convince you - in formal public proposals, not vaguely worded and sporadic blog posts - that the hard fork will be good for your voters. You should look at their communications critically, and demand a high level of evidence and confidence that the hard fork is a move in the right direction.
Forks are good, and you should accept them when appropriate, but you should never "rubber stamp" them.
2. When you do agree to accept a hard fork, you should be prepared to back out the change quickly.
To me, insofar as possible, this means three things. First ensure that the forked code makes a provision for backing out after activation (without losing any transactions that don't depend on the new features). Second, that you should be prepared with redundant hardware, software, and/or configuration settings so that you can restore service under the old version at a moment's notice. And finally, before the fork you should have a checkpoint in mind at which time you plan to initiate a back-out. (and that time should be well under 24 hours)
3. You should audit the code prior to forking.
If you are not capable of auditing the code on your own, you should hire someone to do it for you. This hiring could be done individually, or in collaboration with other witnesses.
4. You should thoroughly test the code prior to launch.
There are certain things that should be part of standard test suites. These usually include things like outrageously small and large values, negative results, boundary conditions, and back-out capability.
On Steem, I'm learning from the past couple hard forks that a "boundary condition" which needs to be thoroughly explored is the time period of a week or so before and after the fork. Going forward, I will be looking for witnesses who announce publicly that they have thoroughly tested the entire transition period as well as the new features that the the fork is intended to deliver.
As with code audits, depending on your skills, you may want to hire professional consultants to perform this work.
Conclusion
Obviously, that is not a comprehensive list, but it's a starting point. While I continue to appreciate the things of a general nature that witnesses have been doing to improve the Steem ecosystem, that sort of generalized activity will no longer be enough to earn my witness vote. Witnesses are being rewarded substantially for their role, and my future votes will only go to witnesses who will aggressively take on a technology governance role for the block chain.
Quite some time ago, @ned said somewhere that the most important characteristic for a witness is the ability to audit the code. In my mind, hard fork 20 has substantially vindicated that statement.
I know that my stake is relatively small, but for whatever it's worth, nearly all of my witness votes are now officially up for grabs. Going forward, they will only be reassigned to people who I believe are willing to perform a Steem technology governance role and apply some change discipline during forks in order to tamp down any overconfidence that might exist on the part of the Steem development team.
45% of this post's rewards will go to benefit the Rustin Golden Knight's Marching Band.
The @rgkmb-unofficial account is an experimental account that is operated by Steve Palmer (@remlaps). The account's purpose is to demonstrate the viability of a fund-raising model that is based on use of the Steem block chain in the community. The account's goal for 2018 is to raise enough money to send one student on the Rustin Golden Knight Marching Band's trip from Pennsylvania to Florida in December for performances in the Citrus Parade and in Disney. For more information, see our introductory post: Introducing Steem to the Rustin Golden Knights Marching Band.
As a general rule, I up-vote comments that demonstrate "proof of reading".
Steve Palmer is an IT professional with three decades of professional experience in data communications and information systems. He holds a bachelor's degree in mathematics, a master's degree in computer science, and a master's degree in information systems and technology management. He has been awarded 3 US patents.
He is also a co-founder of the Steemit's Best Classical Music Facebook page, and the @classical-music steemit curation account.
Follow: @classical-music
Follow: @classical-radio

