Following the latest influx of new users, I decided to write a series of introductory posts about Steemit: from basic netiquette up to more complex issues, like economics and consensus. Since the topic with the highest amount of fog around it seems to be the one related to witnesses, I will start with this one.
What Is A Witness In The Steemit Ecosystem?
A witness is a person (or a group of persons) operating a special type of server software, called witness node.
What Does A Witness Node?
A witness node processes transactions on the Steem blockchain. Before going into more details, it's very important to understand how the Steemit site works.
First of all, there is a frontend, or the HTML layer that you see. But that's the only similarity with a regular website. Instead of making requests to a centralized database server, the HTML layer makes requests to a de-centralized structure of nodes. It pulls the data you see (articles, comments, votes and balances) and displays it. But it also pushes the data you add to the blockchain (articles, comments, votes, transactions).
How does this data ends up in the blockchain?
Well, once a basic object is formatted (let's say an article, with author, date and a lot of other meta-data, that you don't usually see) it is broadcasted to the list of witness nodes. Each witness node then take turns and packs the transactions contained in a specific block, and then validates the block adding it to the blockchain.
The block age in Steem is 3 seconds. That means that a block contains transactions broadcasted and validated within a timeframe of 3 seconds.
How many transactions can you squeeze in 3 seconds? Well, according to the creators of the technology, you can do tens of thousands. At the moment of writing this article, the average number is around 10 transactions per block (so 10 transactions every 3 seconds). But 3-4 months ago, the number was way lower, probably 3-4 transactions per block.
Once a block is packed, it is then pushed by the witness who validated it and added to the blockchain. There's also a bit of other magic that happens after that, but for the sake of simplicity, let's assume that once a witness validates a block, it becomes set in stone, it's part of the blockchain that is mirrored across the entire ecosystem of nodes in the Steemit network. It can't be changed. And it's viewable by everybody.
What Are The Top 19 Witnesses Doing?
This structure needs a core of dedicated witnesses which have enough technical skills and adherence to the project, that they won't miss any blocks.
The top 19 witnesses are producing 57 blocks per hour, which means around 1368 blocks per day. They are producing a block almost every minute.
What Are The Runner-up (Top 50) Witnesses Doing?
If you do the math, you'll see that in a day there are 28,880 blocks to be produced. Out of these blocks, top 19 witnesses are producing 25,840. Who produces the remaining 3040 blocks? The runner-up witnesses. The remaining blocks are distributed amongst them based on their overall ranking.
A witness in the 40th position produces around 35 blocks per day, whereas a witness in the 25th position produces around 45 blocks per day.
They also act as a backup. If a top 19 witness has a problem, the next available runner-up witness will be promoted to the top 19.
What Are The Backup Witnesses Doing?
They do pretty much the same the same thing, but they produce just 3-4 of blocks per day.
What Happens If A Witness Fails To Process A Block?
The transactions contained in that block are lost. Forever.
It's That All They're Doing?
Nope. Witnesses are also adjusting a few network properties, the most important one being the price feed. The witnesses are broadcasting a special type of transaction, in which they wrap up information like:
- their APR for SBD (interest for holding SBD)
- their price for STEEM
- the cost for joining Steemit (yes, there is a cost for joining Steemit, that's why you get already something in your wallet after you join, that amount is paid now by Steemit INC).
How Should I Vote For Witnesses?
Now that you understand that witnesses are literally creating the network as we speak, you should have a clearer criteria for voting them. Here are my suggestions:
- look at the amount of blocks missed* and compare that with the overall activity and account age. Make an average. Some witness have a few thousands of blocks missed, but they are witnesses for more than a year, so losing blocks at this time interval is normal, especially during hardforks or upgrades.
- make sure the person / persons have the technical ability to maintain and debug that witness node, read their post and do your research about them
- look at their witness thread. Each witness is required to publish at least weekly a witness update, with a short follow up of their activities. Here's mine, as an example.
- look at their price feeds and other blockchain props and understand if they're at least around and publishing their price feed and other props
- see if they are involved in the community, either at a technical level, by providing tools, libraries or apps, or at the content producing level, by interacting, engaging and maintaining a positive vibe in the community
[*] All this technical data can be seen in this live witness list.
I Have A Headache Just Trying To Understand All This, Can I Delegate My Vote To Somebody Else?
Yes. Find a user you trust and delegate your witness voting power. In Steemit terms, that is calling "setting a proxy" for your votes, and you can find this form at the bottom of the witness voting page. Looks something like this:
I think that's enough for now. If you have questions, ask ahead. If I missed something or there's something wrong, I'll be happy to adjust.
Also, if you think others will benefit from this post, feel free to share.
For the Steemit ecosystem I created a free tool for checking your potential rewards at steem.supply.
https://steemit.com/~witnesses
Thanks for this article. I am clueless on tech and you seem to have the best interests of the steemit community at heart. I have set you has my witness proxy. Hope you use it to do awesome things!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Great info @dragosroua to help all understand how diligent the Witnesses are in keeping the Steem Train well-oiled and Steemin' down the track! Thank you Good Sir!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I feel so warm that you share a lot of information for newbie like us.
I just joined steemit 3 day ago and followed you and you post useful info for us everyday, it is very great. Once again thank you for your useful info!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
You welcome. Keep it up.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thanks for taking the time to explain, clarifies it a bit, although I don't think I'll ever fully understand, I'm not that technically inclined. Luckily we don't all have to be just to enjoy and find value in Steemit :-)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Is it in their hands also to viral and depress someone post?
Actually i am asking this because of my experience last week. I generally post technical analysis of different script and that day i posted a analysis about silver and it upvoted by 228 members. Because of megree payout of $2.50 for such no. of upvote , when I checked my post, i found that only ten people viewed my post and when only ten person viewed my post then how come I got 228 upvotes??
Please reply @dragosroua , i will be very thankful.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
There is a lot of automated voting still going on Steemit. It may slow down after hardfork 19 (a couple of weeks from now).
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Tell me about it! I have to process all this info in english which is not my native language jejeje. Really nice post :)!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Holy crappers! Thanks for trying to break it down for us less tech savvy in the steemit sea. I think I understand the witness thing about 50 % now!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hi, I'm reading your introduction posts, and like the one before I have a question regarding the witness process. Is my vote for a witness final or can I change it at any time?
Also, what would be the specs required to run a witness node at this time?
Thanks again for helping me understand this platform.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
You can change a vote anytime, you can vote for a maximum of 30 witnesses at any given time.
At least 48G RAM, and if you're serious about keeping it, find some decent SSD storage, probably morea than 200 GB. CPU not very important.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thanks for the info. Those specs blew me away. I assumed it would need a great machine but that is crazy. I guess the witnesses really deserve all the support we can give. You have my first vote
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I have looked at some users and they have earned tens or hundreds of dollars from the 1st week of posting. How is this possible? And how can I search and identify a witness? thank you!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
For the first question, I don't know the answer :)
For the second, go here: https://steemd.com/witnesses
Steem on :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you for your quick reply! In the meantime, I found out the answer to the 1st question in this article and I think it is pretty unfair :) https://steemit.com/tr/@muratkbesiroglu/5-advantages-using-paid-upvote-bots
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
nice one
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thanks for the exposure to how important witnesses are to keeping system functional.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Perhaps you can tell me, how much energy does it take to maintain the steem blockchain, across all the witnesses, including backups. We've seen those big numbers about Bitcoin. How will steem scale? Will it be more efficient, energy-wise, than Bitcoin forever because of dpos? For another reason?
Posted using Partiko Android
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Enlightening
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I gave this the vote with number 100, I'm proud for that :)) I can't believe I missed this article, when I was so new to the platform it might helped a lot, and even now I gained some important information. Thank you! When I will get back my delegated SP (even though it's few) my votes will mean something, and then I will be able to curate better your posts!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I am grateful for the effort you are making. Reading your posts is being very informative. Upvoted and followed !
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you @dragosroua for this information. I can understand how it works a little better now. I'm new and will add you as my witness.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
thank you friend, it helps
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you! I was wondering what the witness was all about.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
In respect of connections: how does a browser connect to the nodes? I am asking because it seems my mobile battery drains faster when browsing Steemit. I have not scientifically verified this yet.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
It depends on what app are you using? Are you using eSteem by @good-karma or just a browser?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I use Chrome on Android.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Chrome is notorious for being memory and CPU intensive on all OSes.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hi...im new here....i just know about witness as per your explanation.... but what the benefit from the vote for witness?...can you explain simply
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hi @dragosroua... Are witness relevant even today? I see this post is about an year old...
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Of course, they are always relevant, because without them, there will be no Steem blockchain :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you. I was wondering about witnesses and now I know better.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
If i understand well a witness can break or make you? Why would we take them than? onlly to be read faster? I am member from today, and still try to get the hang of inns and outs. A witnes witnesses the goodness of your blog? And other readers see this? and can choose to upvote you or follow you?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Nope, it's not like that :)
All the data in the Steemit.com website is saved in the blockchain, and the blockchain is, well, a structure of chained blocks.
To make sure the blocks which are containing posts, votes, comments and transactions are correct, we use this mechanism, called Delegated Proof of Stake, in which persons who own good equipment and who run a specific version of the steemd server, are validating them. Validation is important for transactions, primarily, to avoid double spending or other nasty stuff, but also for voting, etc.
This validation happens extremely fast and it's done by the program, the witness is just making sure the program is running correctly. Each block take no more than 3 seconds to be validated. Witnesses are taking turns.
In order to incentivize witnesses to do this thing, to take care of the platform, the blockchain is paying them. For each block a witness gets approx 1 Steem (but it gets a bit more complex than that).
So a witness is just a person who supervises a very performant equipment, which makes sure the data you're sending - posts, comments, votes - is correctly stored in the blockchain.
Hope it makes more sense now.
Feel free to ask more questions, if you need to.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I guess i will have an other 1001 questions :-) but so far so good i think i understand. You answered me accurate and so far as i know wright, so far more as others did where i wrote replies to, is that a reason to choose you as witness. Or have i got to choose my witness with more care ?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
You should chose your witness based on the following:
You can see some of these props (missed blocks, ranking, price feed) in any block explorer, but I recommend this: https://steemd.com/witnesses
Steem on!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit