Pai Mei is Angry Again! Price Feed

in #witness-category7 years ago (edited)

Once again, some witnesses have angered Pai Mei.

Reliable Price Feed

The STEEM whitepaper describes the importance of the price feed, in the Steem Dollars (SBD) section on pages 9-12.

Steem Dollars are referred to with the symbol SBD, an acronym for Steem Blockchain Dollars. Creating SBD requires a combination of a reliable price feed, and rules to prevent abuse. Providing a reliable price feed involves three factors: minimizing the impact of an incorrect feed, maximizing the cost of producing an incorrect feed, and minimizing the importance of timing.

Witness Duties

All witnesses are required to do a few things:
1- Run a stable witness node 24/7, with backups if needed, and avoid missing blocks.
2- Run a seed node (optional, but highly recommended).
2- Publish a price feed at least once daily.

The first and second tasks are the biggest challenge. They require some linux admin skills and financial input. The importance of the servers cannot be stressed enough, but that's not the topic of this post.

Last, but not least, the third task. It is the easiest thing to do in a witness setup and doesn't require additional costs. The price feed can be even ran from your own computer, all operating systems included. Currently, 33 out of the 111 active witnesses (30%) are in the red, i.e. not publishing a price feed or their price feed is older than 24h.


(click to enlarge)

Price Feed Importance

The price feed is calculated from the median average of the top 20 witnesses from the last 3.5 days + the backup. It's true, the backup witnesses don't have much impact, given their constant rotation on the schedule. For argument's sake, let's say all the top 20 are publishing a 1$/STEEM price feed, even if all the backup witnesses published a $100/STEEM feed, it still wouldn't change the median value of $1, let alone over the course of 3.5 days. In other words, their influence is transient and negligible. However, that's not a reason to be negligent.

The price feed is needed by the network to convert SBD to USD via STEEM's price, therefore it is used for:

  • SBD to STEEM conversion
  • Calculation of the debt ratio
  • Calculation of the reward payouts

Imagine if the majority of the top 20 witnesses go down for some extraordinary reason (datacenters outages, desisting from witnessing, blind whale voting, hostile takeover, whatever), and that the backup witnesses are publishing wrong feeds, old feeds or none at all. Suddenly, the backup witnesses' feeds become more relevant. So what happens? The median price feed gets corrupted of course, the conversion and the reward distribution go haywire. If the price feed is too high, the users will get more SBD and less STEEM. Vice versa, if the price feed is too low, users will get less SBD and more STEEM. Naturally, the vote's value in SBD is also affected since it is directly proportional to the price feed. Therefore, an accurate price feed is required to give the users the fairest amount of STEEM rewards, in relation to the market price.

Price FeedSBD RewardSTEEM RewardVote Value in SBD
Too High
Too Low

I urge every Steemian (witnesses and voters) to often consult https://steemian.info/witnesses to see what's going on, not only with the price feed, but with the overall parameters. If you are witness and something is amiss, give yourself a kick in the butt and fix it. If it's your neighbor, give him a nudge. If they don't care to fix it, unvote them, that might catch their attention.

Running the Price Feed

Conductor and Steemfeed-JS are two popular packages that allow the automation of the price feed publishing. There are many other scripts, pick your flavor, and stay in the green. The price feed can break easily for various reasons. Because the price feed is based usually based on an average from multiple exchanges, if one exchange goes down or is unreachable, your script may stall. Also, if the RPC node you're using is down, the script will freeze. We saw that happen recently with the decommissioned steemd.steemit.com node, I wrote a post about that: Steemfeed-JS RPC Node Update.

So please make sure you're monitoring your server of any symptoms. https://steemian.info/witnesses is a good place to check, or if you have your own fail-safe mechanisms. Whatever works.

Closing Thoughts

I'd like to quote those excerpts from the white paper:

SP holders elect individuals, called witnesses, to publish price feeds. The elected witnesses are presumably trusted by those who have a vested interest in the quality of the feed. By paying those who are elected, Steem creates market competition to earn the right to produce feeds. The more the feed producers are paid the more they have to lose by publishing false information.

Thus, if the community is rewarding witnesses (in SP) to provide stability, why would the community elect and pay for those who don't care or take their duty seriously?

In the event the feed does get corrupted, network participants will have an opportunity to vote-out corrupt feed producers before the corrupted feed can impact the actual conversion price. Perhaps more importantly, it gives feed producers an opportunity to detect and correct issues before their feeds start impacting the price. With a three and a half day window, community members have approximately one and a half days to respond to any issues that come up.

And that's exactly what I did. I have written many times about keeping the network healthy. Alas, the message seems to fall on some deaf ears. So, as a Steemian and a witness, I have pulled my votes for witnesses who have been neglecting their price feed repeatedly. If I take my witness job seriously and if I care about the network, so should you. There's no reason whatsoever NOT to publish a correct price feed. We are elected to provide a stable network, we should be looking after it, not coasting, taking our ranks for granted and collecting rewards.

Those who have been publishing an accurate price feed, or in the process of fixing it (and keeping an eye on it), Pai Mei is very pleased.

Those who aren't updating their price feed regularly... what are you waiting for?

Recommended readings

Here are some in-depth links that discuss the importance and usage of the price feed.


Follow

Available & Reliable. I am your Witness. I want to represent You.

🗳 If you like what I do, consider voting for me 🗳

Vote

If you never voted before, I wrote a detailed guide about Voting for Witnesses.

Go to https://steemit.com/~witnesses. My name is listed in the Top 50. Click once.

Alternative voting methods

https://v2.steemconnect.com/sign/account-witness-vote?witness=drakos&approve=1
cli_wallet: vote_for_witness "YOURACCOUNT" "drakos" true true
steem-python: steempy approvewitness drakos --account YOURACCOUNT

Sort:  

That is a nice article and i am glad you brought it up. I feel that witnesses are more than often neglecting their responsibilities after they get enough support. Price feed affect each and everyone's earnings hence they must be accurate. I do not want to be getting more rewards than i am supposed to and i do not certainly get less. You've got my vote. Keep up good work!

Thank you. Fortunately, the good witnesses at the top are doing their job well. I'm glad to be one of them, and will continue my efforts in contributing to a sound platform for everyone.

Now THIS helps me to understand what the role of a witness is, AND it informed me of the importance of keeping up-to-date price feeds. I'll be checking out the link provided and educating myself further before voting at all for witnesses. Thank you!

I am not even making a block/day so the price feed is my lower priority. I would like to start the seed node but cannot currently. I want to support more steem with my witness work but I cannot do more right now.

I had my price feed up and running since day one. I too started with less than a block a day. You can run the price feed on the same server as the witness, it doesn't require any additional resources. However I totally understand your position. The post was aimed more at the ones with decent ranking who don't seem to care about their setup.

You're so nice for commenting on this post. For that, I gave you a vote!

Yeah I know ;-). We know the main issue with dPOS is voters apathy and seeing it first hand is not reassuring. I feel like not enough people (or SP) care.

I didn't know I was that high(#107) in the ranking. So I just took some time and put up my feed. My only complain is that it doesn't use more exchanges as per https://coinmarketcap.com/currencies/steem/#markets.

Also steemian.info rocks!

On other hand, remembering to focus on the price feed can also be a method of proving to potential voters that you are a capable witness :)

ahah one has to choose his battles. Actually the price feed or my having a seed node won't make a difference for most voters. The list of things I want to do for/around steem is already packed: check the security of the (brain)wallet, assess security in general, advance on a PoC ledger nano+steem, write and interact even more,... As long as I stay motivated, I feel like I can do a lot. It's a work in progress to be a full fledged witness. A block per day will be my goal.

I plan on running for a witness as well , hopefully I’ll get there being a woman

Anyone can build their witness node as long as you can manage your own server or someone to manage for you. Can afford losing some $$$ money in the process. Though if you have a lot supporters e.g. Whales and friends, ask them to vote for you.

And extra hours hanging out :)

And guess what. I've created a step-by-step procedure on how to Setup a Witness Server too.
https://yehey.org/witness-update/@yehey/howto-setup-witness-node-by-yehey-updated-tutorial-guide

We love to see your Witness node up and running.

I'm sure you could. Being a woman has nothing to do with it though. It's about being able to technically run servers, bring positive things to the platform and of course gathering lots of voters. We have @patrice who started witnessing a while ago and she's been doing well so far. But please, no cat fights 😸

I meant to say like I know majority of witnesses are men . :D

What does that change?

😼

I need to work on the "gathering voters" part.

Just have realistic expectations. Doesn't matter what gender you are. I do well because I've been working with @steemcleaners since the beginning. I also started @spaminator.

I have the skills to run and maintain a server but I'm not a developer or programmer so I don't have any expectations to make it into the top 20. And I'm fine with that. I'd like to hang out around 40-50 but there are a lot of witnesses who both run a reliable server and have other valuable contributions to the community.

Thanks for the advice ! I know it’s a work in progress but I think it’s about time now

Beautifully explained and well said dear drakos. I am honestly surprised to learn how many top witnesses aren't publishing price feeds, given the simplicity of that process ..

Let the force be with you Pai Mei.
Wait, is he the opponent of Jacky Chan in Drunken Dragon?

I even provided a step-by-step procedures on how to update the Witness price feed.

Cheers,
@yehey

WowOWOWow .

.interesting.

thank you for keeping on top of this, I don't totally understand it but clearly this is some important oversight

Checks own price feed

Pai Mei will be pleased.

Yes, he is always pleased with good witnesses.

I'm just a little fish but this article was a great insight into the mechanism of the platform. I guess I should take time to read the white paper some day.

You do the witness running you're doing amazing well, while I do the choosing and following.
Amazing guy @drakos

@drakos :) Great info... up vote :D hehe to get their attention...love it!

You got my witness vote @drakos just voted! :) Hope this helps and thanks again for helping to support my post! Its greatly appreciated and glad I could return the favor!

I plan on setting up as a witness soon. I have an odd question. I see that the price feed can be done from any computer. Is it possible to complete this task before becoming a witness as sort of a step up process?

You need to broadcast your witness first, telling the system you're up. Then you publish the price feed which is one of the parameters you set for your witness. To regularly publish the feed, you can use Conductor or Steemfeed-JS, respectively ran with python or nodejs, both multiplatform options.

Its pretty good post, you wrote hugely thing that to be knowed by everyone for feed. Ny reading this can guide everyone to analyze how it move. Thank you very much for this post @drakos. I like it best and really appreciate this. Im very sorry @drakos, in this right time my upvote didn't change much.

You got a 8.48% upvote from @upme requested by: @drakos.
Send at least 2.5 SBD to @upme with a post link in the memo field to receive upvote next round.
To support our activity, please vote for my master @suggeelson, as a STEEM Witness

Thank you for this article, my feed was offline for long, but you inspire me to fix it.
I use not docker version and start it with pm2 looks better to me.

This post has received gratitude of 11.81 % from @appreciator thanks to: @drakos.

I am so happy to read this post, I noticed this also some weeks ago. I was serious thinking, how is this possible. You got an Wittness Vote from me.

hi friend drakos law your post i had a doubt because on one occasion the SBD and the Steem were canceled sometimes higher because I understand that it depends on the witnesses according to how the price feed is carried out, or clarify that doubt please

Would you please support me if you would like a few bitcoin writing :)

Nice one drakos.i found your links so helpful remain blessed

Thank you,for your nice post.