Witness Standards For Team NobleWitness
This document is to be considered a "living document", subject to modification and replacement with subsequent posts made on the Steem Blockchain.
Our expectations of all Steem Witnesses (Including ourselves):
- A witness should always remember and place importance on stakeholders and users needs first and foremost, for without them, there is no need for witnesses to exist in the first place.
- A witness should maintain a current, functionally specified and always operational witness server node.
- A witness should always maintain a back up server, ideally with automated failover protocols in place to ensure maximized uptime and availability.
- A witness should be aware, involved and committed to reviewing code changes to the SteemD block chain core software, as found in github.com
- A witness should be involved in testing, evaluating and where and when possible, involved in suggesting or even implementing patches to this code which ensure chain continuity, growth and operational intent as reflected by consensus of voting stakeholders on the platform, and in conjunction with other witnesses in positions high enough to be responsible for chain modifications by consensus.
- A witness should be able to articulate changes to users when asked and proactive when possible in relating change related and general meta information about the operation of the block chain to block chain users, whom are all stakeholders of some level, on this delegated Proof of Stake, decentralized system.
- A witness, in our opinion need to little more than the above to meet the "letter of the law" as it were with regard to operating as a viable and committed witness node. However, we on team @NobleWitness also feel much more is nescessary of a truly committed witness on the Steem Blockchain and this can include but is not limited to, creating user tools, forming and/or participating in communities of steem users, engaging in philanthropic projects, promoting steem and our chain as the best in the world, encouraging users and aiding in user retention, and holding our peers and the other chain maintainers and app operators and developers to high standards of proficiency, professionalism and perseverance.
Our standards for adopting a Hardfork:
- At minimum we should understand the changes to be implemented and consider the ramifications of their inclusion or exclusion, alike.
- We should be provided with appropriate documentation by any developer of a new feature and allowed time to review the documentation and the code.
- We should have access to a community test network that emulates the live environment in a viable way and we should have time and access to this network in order to perform our due diligence on upcoming change requests prior to their inclusion or omission from core code commits.
- We should move quickly to determine our position on acceptance or deferral of a potential hardfork (or any minor incremental version changes) and register our vote, should we be in a consensus making rank, or register our opinions with those in such consensus determination positions in adequate time for our professional opinions on the matter to be heard and applied.
- We should be committed to the longevity of the chain, the operational capability of the chain, the functional viability of the chain and the security of the chain. When we are unqualified in a specific technical area, and we should be qualified in at at least one or more of these areas, we should engage in education or have someone on our witness teams who are such qualified persons at our disposal. If using an external person beyond a witness team or individual witness operator, this should be DISCLOSED to platform voters and stakeholders. We need to know who is really making the decisions for any given witness operator and we feel any less of an expectation is a remission on the part of the voter AND the witness in focus.
General Software Development Best Practices:
- Regression and Forward Testing is required and paramount to success. Really there is very little to add to to this obvious assertion.
- Understand version control and how we apply it here. In our case on Steem, this presently means Github and the Steemd repository. At least one person on every witness node team should be registered with github and involved in review and participation therein on a case by case issue and pull request basis when a witness has relevant, contextual input to add to the conversations and decisions that are made there.
- Iterative development and continuous and frequent incremental improvement is better than massive wholesale sea change level based releases. Mitigate mistakes by making smaller mistakes, and make no mistake, mistakes will be made!
- Where possible, seek user input on potential changes, and measure twice, cut once, to ensure adoption is not met with rejection before surprising your users with new changes that catch them off guard. Users are generally in preference of not knowing how a car runs to simply drive it, but offering users the chance to provide input may surprise you with the lucidity of some of their feedback. We are NOTHING without users so let's not alienate them completely before we even begin.
We expect a little bit from you non-witness users of the platform as well...
We expect you to become educated voters, and to do your due diligence regarding the application of your 30 available witness votes.
We urge you to examine and evaluate the various criteria many use to make such selections and to supply your own criteria as well when making your decision.
We expect you to continue to use the platform in the ways made possible by it's tremendous potential and offerings and we urge you to, like us, embrace the change, chaos and excitement that comes along with such rapid growth and development.
In such uncharted territory as that which we continuously advance toward, through and beyond, we expect you to lean into the curves, growing, improving, adapting, and improvising toward overcoming your individual obstacles, and we will help with that when and wherever we can to achieve success as you might define it for yourselves.
To those of you who already have opted to assign one of your 30 valuable votes to our team, we would like to say Thank You!
Thank you for trusting, empowering and supporting Team @NobleWitness, The No Bull Witness as one of your selected representatives chosen to be responsible for acting as one of your advocates for the security, operational capability and general caretaking of the part of the future of this blockchain upon which we all mutually share our inputs and operate on together.
We look forward to a bright and rosy future as we work side by side with users of the platform to usher in a new age of freedom, liberty and opportunity for everyone participating in this ongoing, and ever so exciting adventure.
We're all in this together and as @SirCork has said since his earliest steem related streams began back in 2017:
"Teem work makes the steem dreem work!"