To Fork or Not to Fork?

in #witness-update6 years ago (edited)

Hard Fork 20 planned date is closing in, with less than 4 days to go. The question is, should we go with the fork or wait?

Before I proceed, I'd like to underline that even though I haven't blogged much lately, I've been quite busy with lots of server work and testings. On the day of the 17th September bug, my server monitoring script triggered and woke me up at 7:00 am when the incident happened. I spent the whole day/evening/night with the Steemit developers, the other top 20 and a few backup witnesses working on it to figure it out what happened, test patches and implement them, until it was fixed. Went to sleep at 3:00 am, then woke up again at 7:00 am the next day to make sure things were running smooth. Keep in mind that testing takes time, as quite often replays are involved which take 3-4 hour each time, hence the lengthy process of testing. It was a very long day, I barely had time to even write about it. There were plenty other blogs anyways, so the information was out there.

This was not the first time the blockchain suffered a halt, and every time the team put up the best effort to restore functionality. I've been on the front line with them every time during major crises since I became a witness.


Together we make Steem better.



So, as we tirelessly dealt with last week's bug that halted the blockchain for 12-16 hours (remember remember the 17th of September) (https://steemit.com/steem/@steemitblog/steem-status-100-operational), thanks to an invaluable input from a witness, coordinated with efforts from Steemit developers, and immediate fix was rolled out and a v20.1 release was done 2 days ago. However, as time is pressing toward the fork date, there are still issues to consider:

  • Bugs in the code still being worked on and fixed.
  • Configuration discrepancies.
  • Migration delays that some developers are facing, such as implementing AppBase and updating with the new HF 20 parameters.

In fact, just now, a new v20.2 update was released https://github.com/steemit/steem/releases/tag/v0.20.2

I support the new exciting features of HF20, but I feel there isn't enough time to fully migrate and observe the code's behavior. It's one thing to do limited things on a test net, it's another to experience real time events on the main net (like what happened on 17th Sept).

So what will happen on the 25th September? To be clear, on that date, if the super majority (17/21) of witnesses runs the HF 20 code (i.e. vote for it) before that date, then the fork will occur on schedule. However, if no super majority is reached, the code will continue to run normally, without the HF 20 features. If the super majority is reached at a later time, in a month for example, then HF 20 will activate. Right now there are 10 witnesses out of the top 20 running the v20.1 code, including myself. However, the rest of my servers are still on v19.12 and I will switch back to them in case of critical issues.

In the meantime, I'm monitoring closely the developments and will adjust accordingly.

I have updated https://steemian.info/witnesses with a countdown to the hard fork, highlighted in blue v20.2. Witnesses still running v20.0, please stop it and update, since that code was buggy. And of course those with broken price feeds, you know what you have to do. Keep an eye for announcements in https://steem.chat/channel/witness

hf20 countdown.png


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

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

Vote

Check my guide about Voting for Witnesses.
Go to https://steemit.com/~witnesses. My name is listed in the Top 50. Click once.
Alternatively you can use SteemConnect to vote for me or set me as proxy

Sort:  

It's the same v20 that we are familiar with just with some fixes that we are really happy to have before HF will be triggered.

I think it's a little soon to fork. Would like to see more testing done on HF20 code first.

Let's throw more "bad and tainted" data at it on testnet... one more time. If we had done that... this last outage would not have happened.

Actually this isn't accurate. Unless testnet has a mixture of v20 and v19 nodes (replicating production state), this problem would not have been caught. Remember the bug was that one of the HF20 consensus rules became active by accident before the scheduled date.

The testnet is actually getting a copy of the transactions that are getting submitted to the mainnet automatically transmitted.

That's only good when it shows us that "normal everyday data" seems to work.

I was hoping we deliberately send "bad and tainted" data to the nodes, and eonwarped makes a good point.. Having a mixture of v20 and v19 nodes on testnet is best, especially to duplicate the transition period.

On a testnet, you really do need to go wild, and test every possible scenario when possible.

It's impossible to do that... but if you can get "close to impossible", you'll get "close to seeing if the code is nearly perfect" too. :)

Thank you for this detailed update Drakos. We have to trust in our witnesses to make the best decisions regarding what happens with the underlying code.

I don't know if this is publicly available information or not, but I would be interested to know which of our top 20 witnesses (if any) were NOT a part of the effort to get things back up and running September 17th. We all know some witnesses are more attentive than others, I believe those who are not part of keeping things up and running should be held accountable in the witness voting.

Thank you for having alarms set and making your witness nodes a priority. It does not go unnoticed and is appreciated!!!

It's a very valid question. As much as I would love to give individual credit to those who put efforts on that day, I think it's best that they write about their experience themselves and let their supporters be the judge. The timezone, work schedule, family matters or other engagements, they all affect the availability of each witness, which doesn't make them any lesser than others. Also, an event such as that, however critical it was, should not be the only metric in evaluating the overall community/technical input of a witness. The bottom line, each witness contributes in their own ways whenever humanly possible.

Thanks for being an awesome pirate witness!

Thank you for the update ! Take care @drakos

Posted using Partiko iOS

Thanks for the hardwork. Being a witness is not easy and you are surely deserve to be top 20.

I'd vote for a delay. Best to get things right than make a mess.

Is there a list of what each witness favours? Perhaps we can influence a delay by changing our witness votes.

Looks like it's going to happen, unless a critical bug happens or is discovered within the next 24h.
https://steemian.info/witnesses

I am hoping all will run smoothly @drakos and it is really a good news for the steem community to have steem developed into a batter blockchain through the course of years.

That's a great update of steem community and I appreciate your post and I think that steem recover recently and thanks for sharing this information ..

Many people are waiting for my HF20 to also wait because this is the first HF for me.

Thanks for the update @drakos, interested to see what happens next week!

FORK, but closer to the day of

Thanks for info @drakos, resteemed

😎👍👍

thank you for the update drakos and sharing your experience, its so important for us to see how hard you all work and what's going on behind the scenes. so many planks and minns have no idea what you all do so much appreciation to you for all your hard work!
i hope you get to rest and get some playtime. peace, eagle spirit

There are certain features I really want from HF20...and other ones I'm not too keen on...but, even if it has seemed like forever waiting for it, perhaps some extra time should be taken to evaluate it...if it's needed.

Awesome work man !! Thanks for the updates

wait September 25 to give a full evaluation

Hi @drakos!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 8.207 which ranks you at #22 across all Steem accounts.
Your rank has improved 1 places in the last three days (old rank 23).

In our last Algorithmic Curation Round, consisting of 424 contributions, your post is ranked at #1. Congratulations!

Evaluation of your UA score:
  • Your follower network is great!
  • The readers appreciate your great work!
  • Great user engagement! You rock!

Feel free to join our @steem-ua Discord server

Cool countdown, hoping everything goes smoothly on Sept 25th 👍

thank you for the update and this informative post!
(Would be great if you take a look of my latest drawings:)

What will happen on September 25? I think it is a day to make a very important decision and in which everything should agree that it is to look for the best for Steemit's direction.
It is unbelievable the work you do so many hours without sleeping so that everything works, should not be lost. There are many things that should be discussed but together you can achieve it, you should only focus on the main problems that exist now.
besides that September 25 will be my birthday😊!
It's going to be a very important day 😊😊!

@drakos I don't understand all this tecnical detail, i just want to say THANKS for your work as a witness and curator!

I thought Hard Fork had already on September 17...And it turns out that it starts tomorrow 25...Thanks for the information!

Well, we did fork, sigh... and it's bee quite struggling for everyone, I guess for you all witnesses as well... after the incident prior I would have voted for testing it more. Still every change sometimes comes at a risk and at a cost... and I can't see other solution now than being patient and trust.

I;m very positive about the hard fork and I think it will improve steem a lot, I'm still voting for you as a witness, thanks for your activity on the blockchain, I also included you in my recent post about the hard fork.