Upgrade to 0.73.4
This guide describes the steps to upgrade from v0.73.3 to v0.73.4 using the protocol upgrade mechanism. See the changelogs for v0.73.4 ↗ for information about breaking changes and new features.
Assumptions for the guide
The instructions below are written for Debian-like Linux operating systems.
The guide assumes you are using systemd commands (systemctl
and journalctl
) to control binaries. If you are using something different, your system's commands may vary.
This guide is specifically intended for those who are already running a validator node with version v0.73.4
.
Study the changes between versions
Before upgrading your node software, review the changelog for v0.73.4 for a list of breaking API changes compared to the previously released version.
Before you upgrade
Please read the changelog to see all the changes. Below you can find a list of the changes you must perform before the upgrade to v0.73.4 in this document.
When should I upgrade config?
You can update the config any time before the upgrade block happens.
We recommend you do it in the following way:
- Make a copy of the original config.
- Update the config in the copied files.
- A few hours before the upgrade, replace the original config with updated one.
Make sure you have a backup for the original config in case you need them in the future.
We do not recommend you do it too early in case you have to restart your node with the current version for some reason, for example if your node fails or your server restarts, etc.
Config changes
The default locations for configuration files:
- data-node:
YOUR_VEGA_HOME/config/data-node/config.toml
- vega-core:
YOUR_VEGA_HOME/config/node/config.toml
Add the following new parameters to the configuration files.
We recommend checking all of the changes on your own. Follow the below instructions to do it, and read through every description to understand the changes:
- Download vega
v0.73.4
- Generate config files within the temp home directory
- vega config
- tendermint config
- data-node config
- Compare the new generated file in the temp location and the old file to see the differences.
EvtForward.EthCall
config file
: vega-coredescription
: The parameter allows you to define basic configurations like the call period to ethereum node.kind
: new parameter
[EvtForward]
[EvtForward.EthCall]
Level = "Info"
PollEvery = "20s"
Vesting
config file
: vega-coredescription
: Manipulate the vesting engine configurationkind
: new parameter
[Vesting]
Level = "Info"
Broker.Socket.DialTimeout
config file
: vega-coredescription
: The below change(Broker.Socket.DialTimeout
) is fundamental when you run the data node, but it also needs to be updated for a validator node. We recommend you update it to96 hours
due to changes in the data node initialization mechanism. It now downloads and loads all the segments into the database by default. This process may take a day or more.kind
: parameter change
[Broker]
[Broker.Socket]
DialTimeout = "96h0m0s"
Snapshot.StartHeight
The following parameter changes were introduced in v0.73.0. If you still have the old values, we recommend updating to the new ones.
config file
: vega-coredescription
: The behaviour of the parameterSnapshot.StartHeight
changed, and its default value has been updated from-1
to0
. However, we DO NOT recommend changing this parameter before successfully migrating to version 0.73.0! Prior 0.73, setting this parameter to0
triggers the removal of the existing snapshots. If you start with the wrong binary or end up with a rollback, your node will use the old behaviour and remove existing snapshots. For the new logic to load a snapshot, see the below pseudocode block.kind
: parameter change
[Snapshot]
StartHeight = -1
if localSnapshots { // so ignoring state-sync even if it's enabled
if startHeight == 0 {
// Loading from latest local snapshot,
} else {
// Try reloading snapshot from specified height.
// Error -> No snapshot for version XXX
}
} else {
if startHeight == 0 || startHeight == -1 {
// Replay the chain or state-sync if enabled. Up to tendermint to decide.
} else {
// Wait for state-sync to offer expected snapshot for height
}
}
TrustedProxies
config file
: data-nodedescription
: The parameter defines trusted proxies which can override the real user IP address withX-Real-IP
orX-Forward-For
headers. If the proxy address IP is not in the list ofTrustedProxies
, Vega ignores the above headers. You must repeat this parameter for thegRPC API server
and theGateway server
.kind
: new parameter
[API]
[API.RateLimit]
TrustedProxies = ["127.0.0.1"]
[Gateway]
[Gateway.RateLimit]
TrustedProxies = ["127.0.0.1"]
NetworkHistory.GarbageCollectionInterval
config file
: data-nodedescription
: The interval at which garbage collection should be run.kind
: new parameter
[NetworkHistory]
GarbageCollectionInterval = "24h0m0s"
SQLStore.VerboseMigration
config file
: data-nodedescription
: Enable verbose logging of SQL migrations. Logs shows only once when Vega executes the migration. We recommend enabling it in case of any issues.kind
: new parameter
[SQLStore]
VerboseMigration = true
NetworkHistory.Initialise.TimeOut
config file
: data-nodedescription
: We recommend you update it to96 hours
due to changes in the data node initialization mechanism. It now downloads and loads all the segments into the database by default. This process may take a day or more.kind
: parameter change
[NetworkHistory]
[NetworkHistory.Initialise]
TimeOut = "96h0m0s"
NetworkHistory.Initialise.MinimumBlockCount
config file
: data-nodedescription
: The network history initialization process has been improved. Now the process is automated. The datanode should download all the history segments and put it into the database by default now.kind
: parameter change
[NetworkHistory]
[NetworkHistory.Initialise]
MinimumBlockCount = -1
maxNumberOfFirstConnectionRetries
config file
: vegavisor configdescription
: You need to leave more time to wait on the data node for Visor. Increase it to a higher number. This is especially crucial for data nodes.kind
: parameter change
# Try every 2 seconds, 172800 retries is 96h
maxNumberOfFirstConnectionRetries = 172800
Upgrade your node
To upgrade the network follow the protocol upgrade documentation.
Common issues
If you come across any problems, please refer to the frequent issues solutions before requesting help.