Updating Stakepools

Hi - short question bc of the upcoming 1.19.0 release: what’s better, updating the node as soon as possible or wait a few days/a week and see if the new update performs well and if there are no major issues?
How do you handle that? BRGDS Sim

I don’t have an official answer, only a few observations:

I updated us quickly to 1.18.1 immediately based on claims that it would ease the transition between epoch boundaries and didn’t want to be responsible for any disruption in the network at that time. That claim was retracted soon afterward, people were cautioned not to install it, but we didn’t see the retraction for about 24 hours and continued syncing our DB for a while longer before eventually switching back to our previously 1.18.0 binaries.

The rest of that epoch was fine but then our relay nodes died in last night’s epoch boundary… the one after the one with the dire predictions, as we reported today here and on Github.

We have only been able to begin re-syncing our nodes after deleting our --database-path directory and starting over, which is taking far, far longer than when we originally set up our nodes, also with 1.18.0: at the rate it’s going now, our nodes still might not have reached the current tip by the expected release of 1.19.0 some time tomorrow (our last bootstraps from genesis on brand new servers took between 4.5 and 8 hours).

So we are in a situation where we will need the great speed improvement that has been promised. Having a base from which a relay could be rebuilt from scratch very quickly would be a great advantage of the new software.

But if I could do it over again I would have backed up the --database-path directory when we moved the 1.18.0 cardano-node out of the way, and kept them together somehow… so the old database directory could be reinstated along with the old node binary if the new node didn’t work. We would still be regenerating now after the corrupted databases, but we would be doing so from a checkpoint much farther along in the blockchain.

3 Likes

Hi Simon,

In my experience I tend to update quickly if there is a chance to alleviate performance issues with the current version I am running. In the case of upgrading 1.18.0 to 1.18.1, I did that quickly as the epoch boundaries on 1.18.0 were rough (mostly on relays). I took a chance at better performance and lost (had to revert back to 1.18.0, as did we all).

When my nodes are operating well, I typically will wait 3-4 days following a new release before upgrading as this allows ample time for community feedback to accumulate.

On that note, I plan to upgrade to 1.19x relatively soon after it is release.

Your friend, FROG

2 Likes

Alright thank you both for your detailed answers! Helped me a lot. Well seems that its maybe better to wait one or two days to be safe.

2 Likes

Great info! Thanks @COSDpool and @ADAfrog.

Sorry as I’m a newbie. Could you please point me to a guide somewhere for the instructions of updating to a newer version? Obviously I shouldn’t have to run the command cabal build all again, right?

3 Likes

You’ll definitely need to cabal build all again, nor would you want to do it any other way, since you have to assume any part of that code could have changed between versions. In fact all the intermediate results of the compilation also need to be “cleaned” out.

So first you would go to the directory where you git clone'd cardano-node and get the new version (not there yet at the time of this writing):

git fetch --all --tags
git tag
git checkout tags/1.19.0

and then rebuild the cardano-node package from scratch:

cabal clean
cabal update
cabal build all
4 Likes

Thanks a lot @COSDpool for your helpful answer :pray:

  • Would the node still be running during cabal build all? I guess NO?

  • After the cabal build all command is completed. Can I just re-run the node and relay and no need to update any parameters?

1 Like

What I did: one of our two relays, each of which is a cloud hosted VM, has better network connectivity and less competitive residency on our hosting infrastructure. I did our last compile there while both relays were live, assuming correctly that both would stay in sync during the compilation.

So in general it depends upon the specifications of your node. If either the compilation or the demands of the relay were too great for us to do them together on the live server, we would have brought down that relay for about 5 minutes to take a “snapshot” like you can do on AWS or DigitalOcean, built a machine from that snapshot, powered it up, shut down cardano-node on the cloned relay & done the compile there.

All our servers have 4G RAM and 2vCPUs which is generally over-provisioned, and the compilation took about a half-hour. We then installed cardano-node and cardano-cli as usual & then rsync'ed them to the other node & the block producer.

Because of UNIX demand paging you can move the binary while it is still running (rename the old one to cardano-node.1.18.0 or something), and then restart cardano-node as usual to pick up the new binary. You will definitely want that old node version handy if there is any nasty business with the new one.

2 Likes

Hi, Thanks to bring this topic up. I have a plan to wait for a while before upgrading to 1.19.0. My question, are there any consequences or any trouble that I don’t know if I upgrading a little bit late compare to other node? Or that is OK?
And I see some of the node plan to upgrade immediately, are there anyone that plan to update little bit late?
Thanks

Many thanks again @COSDpool. You’re awesome :+1:

2 Likes