Steemit Newbie FAQ - Witnesses: What Are They And Why Should You Care

in #steemit7 years ago

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:


Screen Shot 2017-06-06 at 3.40.12 PM.png


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.


I'm a serial entrepreneur, blogger and ultrarunner. You can find me mainly on my blog at Dragos Roua where I write about productivity, business, relationships and running.
For the Steemit ecosystem I created a free tool for checking your potential rewards at steem.supply.

Dragos Roua


If you appreciate my contribution, you can vote for me as witness here:
https://steemit.com/~witnesses

Sort:  

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!

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!

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!

You welcome. Keep it up.

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 :-)

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.

There is a lot of automated voting still going on Steemit. It may slow down after hardfork 19 (a couple of weeks from now).

Tell me about it! I have to process all this info in english which is not my native language jejeje. Really nice post :)!

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!

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.

Is my vote for a witness final or can I change it at any time?

You can change a vote anytime, you can vote for a maximum of 30 witnesses at any given time.

Also, what would be the specs required to run a witness node at this 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.

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

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!

For the first question, I don't know the answer :)

For the second, go here: https://steemd.com/witnesses

Steem on :)

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

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.035
BTC 65916.61
ETH 3431.41
USDT 1.00
SBD 4.66