v2.3 is a minor update but not backward compatible with
v2.2.X. This update introduces AIP29, an increased vendor field length, various performance improvements and more.
Upgrade time: low - upgrading to
v2.3 only requires minimal configuration changes.
Complexity: medium - the
wallets table has been removed from the database which can impact third-party applications.
Risk: medium -
v2.3 is not backward compatible with
v2.2 and includes breaking changes.
v2.3 is fairly straightforward if you follow the instructions. Even though we try to ensure backward compatibility (BC) as much as possible, sometimes it is not possible or very complicated to avoid it and still create a good solution to a problem.
Upgrading a complex software project always comes at the risk of breaking something, so make sure you have a backup.
After upgrading you should check whether your application still works as expected and no plugins are broken. See the following notes on which changes to consider when upgrading from one version to another.
Be sure to complete all of the following steps before you continue to upgrade with the
ark update command to the latest version.
Since 2.3 we ship an additional logger implementation,
@arkecosystem/core-logger-pino. We advise you to switch to the new package, to do so open the
~/.config/ark-core/<network>/plugins.js file (e.g. for mainnet using nano you would run
nano ~/.config/ark-core/mainnet/plugins.js), locate the
@arkecosystem/core-logger-winston plugin and replace it like shown below.
Open the file
logger-winston package. The logger package can be found at the start of the
plugins.js file (line 3 starting with
Remove the section related to the
core-logger-winston (remove the following code):
Add the new logger configuration to the already opened file
~/.config/ark-core/mainnet/plugins.js. Add this line (see below):
Save the changes. Your configuration file should look like this:
Do not run any of the mentioned commands with
sudo unless explicitly stated.
Make sure that Step 1 was successfully completed before running the
ark update command via the cli. To update to the v2.3 run the following command:
When updating from 2.2.x to 2.3.0 the first start might take a few minutes because Core will need to migrate all transactions to have an
asset column that is required for AIP29. This can take up to a few minutes on low-spec servers. As a node operator your work here is done. You successfully upgraded to the latest version of ARK Core. If you are a developer please check the next Section below, where major changes are listed.
This section addresses developers and lists notable changes during this version upgrade. For more details make sure you checkout the CHANGELOG document. The following breaking changes where introduced in v2.3:
From version 2.3 onwards all aliases defined by Core packages will adhere to the
kebab-case format. If your plugin makes use of any of the following packages, make sure to adjust the calls to the core containers
resolveOptions methods with the new alias:
Core 2.0 has been fully reliant on in-memory wallets since the 2.0 release. This change removes storing of wallets in the database, reducing the database size and bringing various performance improvements. If you have applications that rely on the database wallets table you will need to migrate them as soon as possible to using the API calls as this is the only way to get wallet data.
This major change is the transition to full SHA256 block IDs, encoded as a hex string. In simple terms, this eliminates a potential collision of block IDs with blockchain height or other block IDs, making ARK safer and future-proof.
The Smartbridge (Vendorfield) can now hold a total of 255 bytes of data, compared to the previous 64 bytes this is a four fold increase. This increase will allow applications to store more data on the blockchain and widen the use-case landscape.
To continue testing on the developer branch, you must switch your
ark cli to the
next release channel. This is for experienced users and developer projects that want to test the new features ahead of the official release on our mainnet. Use this for testing of developer releases, devnet only.
During the development of 2.2.0 we had channels for
rc as a lot of testing had to be done before going public with the switch from using a git repository to providing a CLI. Run the following command to install the
next release and stay on the
next release channel:
From 2.3.0 onwards the
next channel will serve as a combination of all of the old channels on
devnet. This means there won't be any need to switch between
If you happen to experience any issues please open an issue with a detailed description of the problem, steps to reproduce it and info about your environment.