After having a conversation with @skylinebuds, us Witnesses/Block Producers and others that aren't are bringing awareness about Witness voting.
What is a Witness?
There are many definitions of what a witness is for a blockchain platform. It basically comes down to running nodes. But there's more to it than that.
The witness nodes are what allows a network and platform to operate in a consensus manner.
Sound confusing? To some of you, it might. Most that have been on platforms like Steem for a while already have a general grasp on blockchain tech but I will try not to get too technical.
These nodes are the blockchain database on a server and communicate with other nodes. 20 witness nodes are all that's needed to run a platform like Smoke. But the more the merrier. The more nodes, the better the overall stability of the network. So in case a couple of the top 20 witness nodes go down, remaining witness nodes outside the top 20 will fall in line. This allows Smoke and other similar platforms to continue running and give content creators and others, the ability to still use the platform.
Generally, that is what is witness is. However, since being interconnected with social media, witnesses are seen as the elected officials of the network. Now that demands more from witnesses than to just run a node.
What is Expected From our Elected Officials?
Also had a conversation with @graylan about how witnesses should know C++ programming language. We agree, however it is not required for all witnesses to know
(Correction was made. Originally had said the C++ conversation with @chronocrypto but was a mix up. Shoutout to @chronocrypto for reaching out to witnesses and getting some information about them for the community.)
Most witnesses are also developers or know code. So they are able to contribute to creating apps, submitting new code to the blockchain or reviewing it from the Official Smoke devs. Once an updated version of the software is released, it is up to the top 20 witness to review the code, and update to the latest version.
I'll have to look into this number for Smoke, but once roughly 80% of the witness nodes update to the latest version, the entire blockchain network will update and go through what is known as a Fork. If there is less than that threshold of witnesses running the updated version, then the chain will not fork and continue on the current version it's on. This is how a platform like this operates in a consensus manner.
Different Types of Witnesses
Since this is a decentralized platform, for the most part, there are a lot of different parts to this platform that it takes a community of people working together to build it.
Some witnesses run multiple nodes like a full, seed, backup, rpc, but there are many ways to contribute to the network as a witness than just running nodes.
There are a few types of witnesses that contribute to a platform like Smoke:
A Backup Witness is just one that runs a basic consensus running node, and does nothing else. These witnesses tend to be in the lower part of the list of witnesses but there is nothing wrong with that. We need these backup witnesses to make sure the network operates as it should if for some reason any in the top 20 go down.
Now not all backup witnesses just run a node, many do run projects also to help contribute any way they can.
Any business, platform, or crypto-currency needs some level of investment. If there is no money coming in to help increase the value, then it won't go far. We live in a capitalistic society and is necessary to have investors.
So there may be some witnesses that are investors and are strictly running a witness node for the purpose of a Return On Investment(ROI) since witnesses do receive rewards when producing a block.
These are usually in top 50 witnesses. They help develop apps, services, and website frontends to work with the blockchain. This helps the platform grow as more users have access to different types of tools to interact.
A Dev witness can be really focused on development and not have too much time to engage with the community. They are still doing their part.
A Community Witness is involved with the social aspect of a platform like Smoke. Any platform needs people to use it if it wants to have a level of success and have value.
While this type of witness may not be contributing to the platform through development or code, it is still an important role in building a platform like this. Onboarding of new users, user retention, marketing, etc. They all play a part in the growth.
Backup+Investor+Community+Developer Witness(All of the Above)
What we like to call, a Full-Stack Witness. As mentioned earlier, the top 20 will need to review the code before updating their witness node. This is to make sure the network continues to be secure and stable. If there are bugs or odd behavior with an update, these are the ones you want at the top to diagnose and help fix the problem right away so everyone can continue to use the platform.
They run all the nodes, even backups. So these full-stack witnesses are also invested as there is a cost to run that many nodes.
They also are very active with the community. They understand with a platform like this, combining social media on a blockchain requires both development, and community engagement. These are essentially the "Elected Officials". Our code reviewers and decision makers for changes to the blockchain.
So Why Is It Important to Vote?
Well, if all that listed above isnt enough, then I don't know what else to tell you. Because we can't have witnesses in the top 20 that aren't suited to continually upkeep with the blockchain and its code. That can lead to a lot of problems and downtime of the network. Downtime on a blockchain network is a BIG NO NO and we want to minimize that as much as possible, or better yet, have no downtime at all.
Smoke like any online platform out there nowdays, can/have a business-to-business model along with the social values like connecting with people, growing communities, and getting information in and out. None of that would be possible without witnesses.