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.
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
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.
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?
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
Thanks a lot @COSDpool for your helpful answer
-
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?
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.
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