Zero to Witness: Part 8: Witness responsibilities

in Witness Activities2 years ago (edited)

So far in this series, we've been looking through a purely technical lens.

As we mentioned way back in Part 1, the whole point of witnesses are to secure the Steem blockchain by verifying transactions in return for block rewards.

In a classical proof-of-work or proof-of-stake system, technical considerations are all we need to address in order to be an effective minter of new coins.

With Steem's unique witness-based verification system, however, tech isn't enough. Before proceeding any further, it's time to look at the community considerations of becoming a witness.

A Good Steemian

Unlike so many other consensus mechanisms, with Steem, reputation is one of the most important factors in whether or not you'll be successful.

Everyone makes their impression on a new community in different ways. The Newcomers Achievement Program provides a good pathway for new Steemians who don't have their own ideas on how to make a splash; others prefer to just hit the ground running and find a niche in which to start building content. In my case, I started writing a Shader Programming tutorial series to engage with the community and meet new like-minded people.

I'm talking about the wider Steem space here, not just witnesses; but as a prospective witness your need to be in good standing with the community is higher than ever.

In contrast with proof-of-work mining, it's not enough to simply show up. In order to climb the witness rankings, you have to be accepted by the community, because the community votes to elect witnesses.

Steemians who vote for witnesses assess a witness's community activity level, and it's important to be seen to be working for the community.

Day-to-day Witness Responsibilities

Aside from community aspects, becoming a witness isn't a fire-and-forget process from the tech perspective either.

Updating

Nodes must be kept updated. Typically a top witness will have 2 witness nodes running, for 100% uptime in the event they have to take one down to update it. In this case, switching between the active node can be automated (and that's something we may well come back to in future).

It's also the witnesses who effectively decide whether a given hardfork will be activated or not, as for the hardfork to occur a majority of witnesses must "vote" for the hardfork by updating their node to a version of the Steem software that will cause the fork.

Therefore, it's important to remain engaged with the community so that you can decide whether a fork should be implemented, and vote accordingly by either updating or not updating. In this way, as a witness you're part of the decision-making process for how Steem develops.

If you have coding skills, a valuable contribution is in reviewing code in a potential hard fork situation.

Full API node

As well as one or more witness nodes, top witnesses often provide full Steem API nodes. These nodes offer public API access -- a way a servive provider can interrogate the blockchain by asking an API node "show me all the comments relating to a particular post" (for example).

Running full API nodes gives service operators a freely-usable interface onto Steem without them having to maintain their own node, and so are very useful in encouraging additional developer activity on Steem.

In our SteemWOW guise, @freelance.monkey and I have been building a Jussi-powered full node which isn't quite ready to present yet, but which may well form the basis of my next tutorial series :)

Publishing data feeds

The most important responsibility of a witness apart from endeavouring to keep their nodes running 24/7, is to publish a price feed to the blockchain.

The Steem economy partially depends on having a decentralised price feed for STEEM/USD and SBD/USD pairs. This is accomplished by having witnesses push a publish_feed transaction onto the blockchain, in an automated fashion.

Among other things, this price feed is used to determine the dollar value shown in STEEM wallets. It's taken to be the median price of the price feeds published by the top 20 witnesses in the last 3.5 days.

Besides the price feed, there are other values that a witness can push to the network.

Have a look at the witness list, and you'll see a column for Reg fee, APR and Block Size. While we'll look into these in more detail once we're actually setting up scripts to publish our feeds in a future episode, for now it's enough to know that the network consensus on these values is also taken as a median of the top witnesses's values.

Introducing SteemWOW!

Many witnesses choose to adopt a "brand identity", and now I can reveal that my friend @freelance.monkey has joined me to form a new team (drumroll please):

steemwow@2x.png

Our team ambitions are greater than just getting a witness set up. A few weeks ago we registered steemwow.com and intend to use SteemWOW as an umbrella brand for some exciting Steem dev projects that we've been chatting about, as well as the Witness Node and upcoming API Full Node.

Stay tuned for more!

Summary

In coming days, we'll upgrade our node from a Seed Node to a Witness Node, actually becoming a witness, and start our voting campaign!

Please don't try and vote for us yet. Soon, you can :)

This has been a very non-technical episode; we haven't even logged into the server! However, I felt it important to discuss the above points first, so that if you're following along you can make a judgement call about whether or not to proceed to becoming a witness now that you've seen the responsibilities required of you.

After setting up our Witness node, we'll come back to the tech side of getting our price feeds working and automated.

Series Index

Part 1: We need a big computer!
Part 2: Connecting to the server
Part 3: Securing the server (see also Passwords: A Rant)
Part 4: Enabling certificate authentication
Part 5: Downloading the blockchain
Part 6: Unpacking the blockchain and configuring Steem
Part 7: Starting and syncing Steem

Sort:  

Imagen2.png
CONGRATULATIONS

This post has been upvoted with @steemcurator09/ Curated by: @weisser-rabe

Thank you very much!