Witness for Dummies, Like myself :D

One could not understand the dynamics/working of steem blockchain without having a basic understanding of Witness. They are an important part of Steem Blockchain and it is very important for every steemian to have some knowledge about witnesses.

We all know that Steem is decentralized i.e we don't have a centralized server for storing data, transfer of data and transactions.

So we need some people to run a server, store and verify all the transaction (upvotes, follow, posting and comments) going on Steem Blockchain. Without server (or nodes) there won't be any blockchain. The individuals running the servers are called "witnesses" on steem blockchain.

Simple Definition:

A witness is an individual who operates witness server (which produces blocks), publishes a price feed of steem/USD to the network and plays a role of consensus (decide whether to hard fork or not).

What does it mean by production of blocks, price feed and role of consensus?

I will try to address all the three points one by one-

1. Block Production

As there is no central authority determining who can do what. It's all based on the agreed protocol that all participants in the network have to follow.Every transaction, activity performed (upvoting, commenting, following and posting) on various platforms of Steem Blockchain (steemit, dtube, dmania etc) is pushed into the blockchain after being verified (if they are following established protocols or not) and signed by witness servers as blocks (produced).


2. Updating Price Feed

The system looks at the price feed and uses it to calculate what rate to award Steem rewards at. When the post is being calculated, "How much STEEM does this amount of SBD buy?" The system goes to the price feed data to decide.

Example -

In one of my past payout of $22.56, I claimed 8.780 SBD and 1.458 STEEM POWER, steem valued at 6.8.

Steem takes the value of SBD as $1, it is not affected by market value outside.

So 8.780+(1.458*6.8) = 18.694

The value 6.8 is taken from the price feeds filled by witness.


3. Role of consensus

The steem blockchain uses consensus mechanism known as DPOS.

Let's try to understand a little about consensus algorithm and DPOS, exact specifics of this beyond this article. If you want to dig deeper feel free to read steem whitepaper here

Consensus Algorithm

Consensus is the process by which a community comes to a universally recognized, unambiguous agreement on a piece of information. There are many algorithms society has developed for reaching consensus about who owns what. Every government on earth is a primitive consensus algorithm whereby the population agrees to abide by a certain set of rules enshrined in a constitution. The algorithms used by cryptocurrencies provide a better way to reach consensus.

How is consensus algorithm implemented in Steem?

Conceptually, the consensus algorithm adopted by Steem is similar to the consensus algorithm adopted by companies throughout the world. People with a vested interest in the future value of Steem vote to select individuals responsible for including testimony in the public record. Voting is weighted proportionally to each individual's vested interest.

Voting and block production algorithm

In the DPOS system, the witnesses are delegated by the collective Steem Power-weighted "witness approval votes" from steem accounts. Every user can vote for 30 witnesses, barring the limit to prevent the abuse. Each round (63 sec) 21 witnesses are selected to create and sign blocks of transactions. Twenty (20) of these witnesses are selected by approval voting i.e top 20 and one is time-shared by every witness that didn’t make it into the top 20 proportional to their total votes. The 21 active witnesses are shuffled every round to prevent anyone witness from constantly ignoring blocks produced by the same witness placed before. Any witness who misses a block and hasn't produced in the last 24 hours will be disabled until they update their block signing key.

To put it simply we have one block producer producing block every 3 sec and 20 verifiers authenticating the block produced. The block producer has a lot of SP on the stake. S/he may earn some SP producing right block but will lose a lot more producing something wrong.

To have some basic understanding of DPOS, you may watch this video by Daniel Larimer(Founder Bitshare, Ex-CTO Steem and CTO EOS) explaining DPOS.

or Bitshares blog:

https://bitshares.org/technology/delegated-proof-of-stake-consensus/


What is hard fork and what does a witness have to do with it?

As per Investopedia,

A hard fork (or sometimes hard-fork) is a radical change to the protocol that makes previously invalid blocks/transactions valid (or vice-versa), and as such requires all nodes or users to upgrade to the latest version of the protocol software.

Any changes in protocol or version (hard fork) of steem needs to be verified by the witnesses, if they reject any of the updates proposed by Steem Inc, it won't be pushed into the blockchain.

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 17 is an interesting example where the community disagreed with some changes Steemit, Inc wanted to make so the witnesses rejected the fork. 18 then went forward with modifications the stakeholders could agree with).


What are getting in return? What are they earning?

Top 20 witness earn up to 0.189 Steem Power (SP) per block, while others earn 0.945 SP.

For example, a witness at rank 50 generates around 20 blocks per day, that is:
20 blocks x 30 d x 0.945 SP = 567 SP/month (or 6804 SP/year)

Whereas a Top 20 witness gets rewarded for 1 block every 63 seconds, that is:
(60 s x 60 m x 24 h) / 63 s = 1371 blocks
Which is a monthly:
1371 blocks x 0.189 SP/block x 30 d = 7773 SP/month (or 93276 SP/year)


How does witness voting effect me?

We all are contributing our time and attention towards producing and curating content hoping it runs effectively and gain more attention in future. It's our responsibility to make sure, we are giving right people an opportunity to earn that amount of SP in the community cause they will have more influence in future on Steem.

How to choose witness to vote?

(Disclaimer: The following answer is totally my opinion)

We need to vote those witnesses, who are working day and night for making this community a better place every day. Whether he/she is helping with the tech or producing blocks timely and effectively.

Some points to keep in mind-

  • Try reading about them through witness URL/thread.
  • Activities/ initiatives for Steem Blockchain.
  • Steem/US Feed and witness updates.
  • Blocks Missed.

All witnesses put their SP at stake, but some have their efforts + SP at stake. And sometimes efforts by some witnesses are not visible, but they work very hard to take Steem to the moon.

So do your own research before voting.

You may access the complete list of witnesses here https://steemd.com/witnesses

Thinking about the voting witness, please do keep in mind certain rules.

Rule no. 1-Don't simply vote for a witness, just because the witness speak the same language as spoken by you/belong to the same country.
Rule no. 2-Don't simply vote for a witness, just because he is upvoting your content.
Rule no. 3-Don't simply vote for a witness, just because some of your friends ask you to vote.
Rule no. 4-Don't simply vote for a witness, if you see them every day on trending page.
Rule no. 5-Don't simply vote for a witness, just because he is spending a huge amount of money on advertising.
Rule no. 6-Don't simply vote for a witness, just because he is one among your friend.


How to vote?

you may visit https://steemit.com/~witness for voting directly.

Or follow the steps-

  1. Click on the menu button next to avatar
  2. Go to "Vote for Witness"
  3. Choose the witness to vote (remember you just need to click on upvote icon once, clicking twice may unvote them)

  1. If witness not among top 50

alternatively, you may use this link to cast your vote-

https://steemconnect.com/sign/account-witness-vote?witness=witnessname&approve=1

Don't forget to edit and change witness name.

Example: for voting @aggroed use may use

https://steemconnect.com/sign/account-witness-vote?witness=aggroed&approve=1

Can someone be the witness now?

The answer is yes! Anyone can be a witness.

Here's the answer from the @someguy123 post:

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.

If you are interested in setting up your server and be a witness, here is the complete guide by @jerrybanfield

Steem Witness Guides!
Steem Witness Basic Training
Launch a Steem Witness Today
12 Steps to Secure a New Ubuntu Linux Server
Steps 13 to 19 to Prepare an Ubuntu Linux Server
Get a Steem Witness + Seed Online Today with These Ubuntu Linux Commands
Appropriate Methods to Ask for Votes gives more tips on getting witness votes

References:

Steem WhitePaper
What is steem witness? by @someguy123
What is steem witness? by @steemguide
steemian.info
steemd.com
some weakness in DPOS by @uberbrady
Steem FAQ
Complete user guide
Image source


Don't forget to resteem, comment and upvote

Follow Me @tanishqyeverma

Sort:  

This is a lot of info to process (especially for new users) but let me rephrase what you said to me lately:

Doing a great job there bro.

;>)

hey Vincent!
sorry for the late reply ...seems I am lazy with the replies .. :)
thank you buddy!

you're welcome!

This post has received a 3.48 % upvote from @voterunner thanks to: @tanishqyeverma.

You got a 11.90% upvote from @upmewhale courtesy of @tanishqyeverma!

This post has received a 6.15% upvote from @msp-bidbot thanks to: @tanishqyeverma. Delegate SP to this public bot and get paid daily: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP Don't delegate so much that you have less than 50SP left on your account.

wow this a lot of information to process.
I will bookmark this post and read it very well.

good job sticker.jpg