Seriously, what is a STEEM witness? Why should I care? How do I become one? (Answer)

in #witness-category8 years ago (edited)

Some people are still confused as to what a witness is. There's a lot of mixed information on Steemit as to what a witness does, and how much they earn.

I'm here to clear this up with a thorough post, with simple explanations where possible.

What is a witness?

A witness plays a crucial part in how the STEEM network functions. Some people might not be aware of this, but Steemit is just a fancy web interface on top of a large network called STEEM, which operates remotely similar to Bitcoin.

Simple Definition:

A STEEM witness is a person whom operates a witness server (which produces blocks), and publishes a price feed of STEEM/USD to the network.

Witnesses have many tasks. The first and foremost is to produce blocks (thus process transactions), the second most important is to produce a price feed, which is how STEEM Dollars are always worth 1 US Dollar in STEEM (using the 7 day exchange).

You may have heard of the term 51% attack before. Unlike Bitcoin, miners don't matter much to the STEEM network, instead, that is a witnesses job:

A hard fork happens when 67% of the top witnesses are all running a certain version of STEEM, which means the top 19 witnesses can pick and choose whether to agree with a fork or not. (e.g. Hard Fork 13 and 14 were both postponed for a week, and re-designed because witnesses refused to update)

Tl;Dr

  • They're the main producer of blocks (not miners)
  • They maintain a price feed, which is how SBD functions
  • They play the role of consensus (decide whether to hard fork or not)
  • Many witnesses, such as myself, @riverhead, @roadscape @jesta and @arhag work on important things to help the STEEM network function and grow
  • Some witnesses don't produce any content, or work on anything STEEM related, e.g. @gtg - however, they are sometimes highly focused witnesses, who are very reliable (gtg has only missed 2 blocks after running for months)

Why should I care?

A witness is paid proportionally to how high they are in the witness ranks, excluding the top 19 witnesses (who get 1 block every ~63 seconds).

But how do they get to those ranks? They get voted in, by people like YOU. It's just like an election, if you don't vote, other people may vote in witnesses who are malicious or simply unreliable.

@thecryptofiend has came up with a questionnaire for witnesses, which may help people decide on who to vote for: https://steemit.com/steemit/@thecryptofiend/witness-questionnaire-a-solution-for-voter-confusion


Witness voting page

You can see the witness ranks, and vote for witnesses at https://steemit.com/~witnesses

How are blocks created/scheduled?

It's not a very even mixture as you would hope. Blocks are produced in "rounds", which are 21 blocks long, and blocks are created every 3 seconds.

During each 21 block round, the blocks are distributed as such:

  • 19 blocks go to the top 19 voted witnesses (who are slightly shuffled to avoid witnesses purposely skipping blocks)
  • 1 block goes to a Proof-of-Work miner, who becomes a witness for just 1 block.
  • 1 semi-random witness outside of the top 19, which is influenced by their ranking

You can read more about the witness scheduling (it's very complicated!) in this article by Steemit CTO @dantheman :

https://steemit.com/steem/@dantheman/steem-witness-scheduling-algorithm

How often do they get blocks (how much do they earn)?

As mentioned in the previous section, witnesses are paid proportional to their rank in the system. A witness at rank 30 can produce as many as 4 blocks/hour, compared to a witness at rank 50, which may produce less than 1 block/hour.

A STEEM block is worth 1 STEEM Power (not STEEM, or SBD), which means all rewards for miners/witnesses are trickle-paid for 2 years.


@someguy123 on SteemDB

In my current position, 39, I create between 2 to 3 blocks per hour. (2 * 24) * 31 = 1488 - that's approximately 1,500 STEEM Power per month at rank 39.

But what about the top 19? What do they get?

The top 19 witnesses get 1 block each, per 21 block round. This means they get approximately 1 block per 63 seconds.

Per day they get roughly 1400 SP

(60 * 60 * 24) / 63 = 1,371.42

Per month they get roughly 42,500 SP

(60 * 60 * 24 * 31) / 63 = 42,514.28

And per year they get roughly 510,000 SP

(60 * 60 * 24 * 31 * 12) / 63 = 510,171.42

Can anyone become a witness?

The short answer is: Yes.

Becoming a witness requires several things:

  • A powerful (and reliable) server to run a witness server on
  • A second powerful server, with good bandwidth - to operate a Steem Seed (similar to a Bitcoin full node, distributes blocks)
  • Creating a signing key, and then broadcasting your intent to become a witness from cli_wallet
  • An accurate price feed of STEEM/USD which is updated at least once per day
  • Technical capabilities - you should understand most STEEM concepts, and be able to deal with server problems quickly
  • Trust from the community that you would be a good candidate for a witness

Some of these steps are optional (e.g. the seed), while others might not matter until you approach the top 19 (the price feed) however, they're all very strongly recommended if you want to succeed as a witness.


I will be posting an in-depth tutorial on setting up a witness soon, as many of the existing articles lack important details. Until then, if you want to set up a witness, I recommend joining #witness on STEEMIT.CHAT and asking for up to date guidance.



Do you like what I'm doing for STEEM/Steemit?

Vote for me to be a witness - every vote counts.

Don't forget to follow me for more like this.

Sort:  

Short and consumable write-up, hopefully it'll get people starting to think about witnesses and who they should vote for. One comment:

Some of these steps are optional (e.g. the seed, the price feed)

The price feed really isn't an optional step for the top 19, it's more of a requirement. It's "optional" for those outside of the 19, but not running one may prevent whales from casting a witness vote for a candidate.

Updated to clarify that. Thanks for the suggestion!

@jesta K hope you can simplify witness is for newbie like me too. So complex a term is but interesting

If I understand correctly, Steem data (posts, images, ...) are stocked on the witness servers or am I wrong ? Witnesses mean decentralization ? Thank you very much for your explanation. Best regards,

As far as i know the posts are stored on the STEEM blockchain and the images are in the IPFS with only links to those stored on the blockchain.

Thank you for your answer. Take care.

Nice, I had not known that about witnesses outside the top 19 getting blocks. Unfortunately, @dantheman's explanation of the scheduling algo in that post you linked to is really awful. :)

Do you produce blocks regularly, or is it at random intervals? I mean is it every 2.6 hours exactly or on average? (some 2, some 3, some 5)

You can try reading my post on the witness scheduling algorithm. It is more up-to-date than @dantheman's old post (although my post will also become slightly out-of-date after hardfork 14). Particularly look at the "How witness scheduling was intended to work" and the "The new witness scheduling algorithm" sections.

But I think a more approachable way of understanding the witness scheduling algorithm (my post still goes into the technical details which may be undesirable to some) would be through the following analogy:

Imagine the selected set of Steem block producers per each round (21 blocks, which almost always corresponds to a period of 63 seconds) as a very selective club that only allows 21 people in at a time. You have some number of people who are considered VIPs who are allowed to enter the club at any time (in fact, until hardfork 14 goes through, they are forced to enter to club if they are considered VIP) and stay there all the time (as long as they are still considered VIPs). While they remain in the club and do their duty of producing blocks, they will be paid each round (each 63 seconds). Only 19 VIPs are allowed in the club at any time. If someone that chose not to enter the club has higher standing (more witness votes) than an existing VIP in the club and they now decide that they want to enter the club, the existing VIP in the club with the lowest standing is no longer considered VIP (and therefore likely kicked out of the club). Thus, the set of VIPs are determined by the accounts in order of descending witness votes starting from rank 1 to whichever rank it takes to find exactly 19 people who want to join the club. Prior to hardfork 14, an account cannot refuse to join the club, so there are always exactly 19 VIPs who are exactly the top 19 accounts with the largest amount of witness votes pointing to them by the Steem Power holders (1 witness vote per each SP of the accounts voting for you). The other 2 slots (of the 21 total slots available for the club) change every 63 seconds. There are two ways to enter the club: the front door and the back door.

If you are VIP, you are freely allowed to enter through the back door, and you can stay in the club as long as you want (after hardfork 14 you will be allowed to leave whenever you want) as long as you still remain VIP (which can suddenly change with a single vote). If you are not VIP, you can only enter the club through the back door if your virtual self-driving car completes a lap in a special race occurring inside of a massively multiplayer online video game (after hardfork 14 you can choose not to play this video game). As soon as your virtual car completes a lap, the game is paused for everyone, and then you enter the club and are allowed to stay in for only 63 seconds (again assuming you aren't VIP), after which point you are paid a reward (assuming you did your duty of producing a block for that round), kicked back out to the street, and then the video game resumes. The speed at which your virtual car travels on the racetrack (relative to the in-game clock) is proportional to the amount of witness votes that are pointing to your account by Steem Power holders. One other thing to keep in mind about the virtual race is that the in-game clock operates independently of the real world clock. The video game can be paused, and when it isn't paused it operates at a very fast clock rate (since there is no user input needed for the virtual cars to drive themselves). In fact, you can think of the video game operating so fast that as soon as it is unpaused, it simulates the race until the next virtual car completes a lap (at which point it pauses again) all in less than a millisecond.

If you want to get in through the front door, you need to mine. There is a long queue (of typically approximately 100 accounts) to the entrance of the club. Only one account from the front of the queue is allowed into the club once every 63 seconds (after hardfork 14 the person at the front of the queue has the choice to exit the queue and not enter the club, giving that privilege to the next account in line after them, and in fact they will be forced to make that "choice" if the account's signing key isn't properly configured). But once they are in, just like the people getting in through completing the video game lap, they are only allowed to stay for 63 seconds, then they get paid a reward (assuming they did their duty of producing a block for that round) and are kicked back out to the street. Someone waiting within the front door queue can still operate a virtual car in the video game at the same time (in fact, until hardfork 14 goes through, they must do so as long as they have non-zero witness votes). If their virtual car passes a lap in the video game (or they suddenly become a VIP), they are allowed to save their spot in the moving queue, leave the queue, and enter the club immediately through the back door (they will still only stay for 63 seconds before being kicked back out unless they are VIP). However, their spot in the front door queue continues moving forward over time, so if they don't get back in time before their spot reaches the front of the line, they will lose their spot (this is unlikely to happen to a miner unless of course they are also a VIP at the same time). Not just anyone is allowed to enter the front door queue. There is a bouncer standing at the back of the queue that only lets you enter the queue if you have a recent winning lottery ticket. The club runs a new lottery every 3 seconds. The number of lottery tickets you "purchase" (using your hashing power) for each new lottery is proportional to your mining hash rate at the time of that lottery.

Thanks. So the racecar analogy seems to be saying that the next running witness is selected deterministcally. Correct?

There's some randomness to it. There's also the fact I fluctuate in rank a lot. Last week I went from 47 to 51, and was stuck there for days. Now I'm at rank 39, after rising from 44 a few days ago.

Dan describes it as a "virtual racetrack", where your ranking adds a certain amount of points to how close you are to the finish. When you reach that virtual finish line, that's when you're allowed to produce a block. Thus people in higher rankings move up faster on that virtual racetrack.

Thank you very much for this.

I am already following you and voted for you as a witness, which is an achievement as i have only voted for 5 witnesses so far.

Can you explain what happens when i only vote for a few witnesses vs many? I don't quite understand how the voting works other than it is based upon SP.

That is a very good question.

The only thing you need to know is that you're allowed to vote for up to 30 witnesses (then if you want to vote for more, you gotta remove some of your existing votes). I believe they all get an equal amount of STEEM power from your vote, but it could also be similar to voting power, where it gets split between witnesses. I'm not entirely sure.

Thirty votes ever or in a time frame? I’m still quite lost. I thought I was doing well to understand what blockchain is and this is a completely new thing for me.

Your last sentence made me willing to consider anything you have to say.

This is a good post
I do have a few questions , is a miner and witness the same thing? If you were buying all new equipment to do this what equiptment would you buy? What kind of electric bill is envolved in those top witness numbers, or yours? I mean it looks like you would be losing money running your witness unless you are one of the top 19.
Lets take your 1488 sp a month. Lets say it is worth $.80 that would be $1190 with out knowing what electric is it wont be accurate, but I used to mine bitcoin and litecoin and my electric bill was $800 a month, so i am going to use that number.
1488 sp x .80 = $1190
$1190 - 800 electric = $390 a month
Now lets look at equiptment I spent $22,000 on mining eqiuptment and the difficulty level quickly put me out of mining bitcoin and litecoin unless I bought more equipment.
So my question is, does the difficulty level stay the same or rise on steem?
Now lets say the equiptment is $10,000 And you are only making $390 a month it would take 2 years to pay off that equiptment, not including buying new equipment to keep producing the same number of blocks because of difficulty level rising. Thats not including if the price of steem keeps going down, and i honestly dont see a reason why it would go up. Supply and demand, and steem has a never ending supply doubling every year with very little demand. The only way it will go up is if every body would always power up and and never power down, even then they are probably producing way more then they are paying out. Even though total accounts are going up , active accounts are going down that is not a good thing. I have seen a lot of alt coins and they almost always go to basicly nothing.

Witnesses aren't like miners. They don't "mine". They get scheduled for a block, and when the time comes, they just broadcast the block with their signing key, and the rest of the network goes "oh it's someguy123, he was supposed to broadcast this block just now so let's take it".

Because of this, witnesses don't need "mining equipment". Any run of the mill dedicated server or VPS is perfectly fine. You're mostly looking at network connectivity. You want a provider with DDoS protection (so if you, or anyone else on the host gets attacked, then your witness shouldn't be affected), and a large network. OVH and Hetzner both fill those gaps these days. DigitalOcean is also pretty good, but expensive.

You also have to be aware that miners and witnesses get paid in STEEM Power. Even though I'm currently getting 1500 SP per month, my ranking changes a lot, and my current total of 5000 SP / 104 weeks = just 50 STEEM per week, it's not that profitable until I rise up some more.

I can't tell you much about the mining system in STEEM, but it's very different from Bitcoin. Instead of mining blocks, you mine account private keys (ECDSA instead of SHA256), and if you successfully mine the key, you become a witness for 1 block, allowing you to get 1. a new account of your choice (that's why badger has like 100 badger[1-9] names), and 2. 1 SP from the block. (I'm not 100% certain of these, someone correct me if I'm wrong)

Thank you for replying, Just one more question. What kind of expenses do you have and how much?

The server my witness operates on costs about £30/mo (thats $40 in US Dollars). That server runs several other things (but all isolated on different networks within VMs), but the witness is still fine.

Thank you for posting this! I am clueless.

Voted for you and @jesta as witnesses because I like what you're doing. I'm considering to become witness too, so look forward seeing a detailed guide.

Wow, thank you so much for this. As someguy123 as my witness I fear no evil :) Witness vote engaged!

Oh cool! Thanks for this post. I am a total noob so been wondering what the deal is with whales, witnesses and all. Looks like I still have a lot to learn about steemit.

Being a witness sounds like a full time pain in the ass job.

You have answered the questions we should be asking. Thank you for your well written article.

Let's vote for those witnesses that will add some more value to the community

If i run wintness node... how much can i earn? any rough estimate?

Depends on your position in the witness list, as mentioned in the article.

Below 50 could be less than a block every 2 days if not per week. 50 gets 1 block a day, while 30 can get up to 4 blocks per day.

I'm getting more and more motivated to apply for witness!

nice, been looking for this kind of article, thanks
waiting for the setting up witness tutorial

Good post! Follow you and vote for witness

Interesting stuff. I'd heard about witnesses, but didn't really understand what it involved before. It sounds like a fair bit of work, so it's understandable that they get rewarded. I do plan to get more involved in Steemit, but I may be a way off applying to be a witness.

Fantastic post. I think this is the easiest to understand description I have seen. Thanks for link to the questionnaire too:)

This is a good post , upvoted followed and voted for you as witness.
💋 @halo 💋😇

I am missing now 'favourite' or 'bookmarks' in Steemit. This post should be somewhere there. And 'Witnesses' menu entry should be renamed to 'Vote for a Witness'. Me and I guess a lot of people do not click there as I thought that this is just a static list and I have no influence on it.

Hi @someguy123, I'm just stopping back to let you know you were one of my favourite reads today. You can see what I had to say about you here

Thanks, it does somewhat clear it up for me, although its still a little beyond my comprehension lol

That was clear enough to understand and Ill leave that job to the more experienced members, to much hard work lol

This post has been linked to from another place on Steem.

Learn more about linkback bot v0.4. Upvote if you want the bot to continue posting linkbacks for your posts. Flag if otherwise.

Built by @ontofractal

Looking forward to your witness tutorial. I've been thinking about switching one of my mining servers to a witness now that mining Steem is all but dead. From what I can see setting up a witness and setting up a miner are somewhat similar, but I'd like to see your tutorial before making any decisions.

Clouds of misunderstanding disappeared

Thanks much for the explanation.

@someguy123, just arrived here from @reggaemuffin's blog. I am just a week old here and still learning the ropes. This blog is good and gives me a better foothold in the steem world. One step at a time, my learning continues. Thanks for the blog.

And I voted @reggaemuffin for witness..

This is a little bit (a lot really) out of my knowledge area. I am learning with help from great new friends like you! Thanks @someguy123

out of many I read about witnesses, your explanation is spot on!

This has been really helpful. Someone requested me to vote him as witness, but I didn't know what it was! I'm new to the community XD

Nice post to make us understand how things work ...... Lets all support steem and become a witness.... :D

This was important for me. Thanks

@someguy123 still confused with this witness thing but thanks for the information I will keep reading on post about this

Whoa, okay. Now i know!

Thanks for this - trying to get my head around the various components of steemit. This was quite informative, cheers. @positiveninja

One thing I've been wondering lately is how accessible Witnesses would be. Are any of them on Wire? (I know that Steemit has a chat site --- and would be keen for alternatives...more secure ones)

This was an informative article.Timely and very well written.

Do any witnesses rent server space or do they all own their own servers?

Finally, I was looking for something like this post for days. Glad to found it. Nice post, now I know what is a witness. Thanks.

Thanks for the info i was wondering what a witness server was. it was bothering me because one of my favorite dtubers is setting up one so i wanted to know.

I'm disabled and have a ridiculous amount of free time these days. Am fascinated with becoming a witness and being a "good" witness, but fear that I don't have the technical knowledge (or horsepower) to fully participate. I don't have dedicated servers and whatnot. Just a laptop and a mobile phone, sadly. Thanks for taking the time to write this post, it's helped me better understand the purpose of a witness.

A very detail explanation, thank you very much.

"Ahh'm givin' ye an up-vote fur yer efforts! But guid Laird matie! who coods ever make heed nur tails of thes tangled web?! Mair importantly, who woods want tae?! Blye me!" 😵-Keptin

I know I'm a little late, but thanks a lot for this post. It made me understand much more all the current Steem situation which caused the shut down earlier today.

Thanks for that. Follow over here. I'm a quick learner, and this sounds actually like I might be interested in it. I've got a lot of server power being underutilized at the moment, so maybe I could lend a hand once I learn more? Can the dedicated server be a virtual machine? that's how the rest of my infrastructure is set up.