Tuesday, October 11, 2022

Release: mx-chain-go - v1.3.44

Release v1.3.44 is ready for Mainnet.

This release comes as a fix release for some bugs that were discovered after v1.3.42 activation.

Intercepted trie nodes are no longer saved as unmarshalled entities in cacher + v3 trie syncer version

With v1.3.42, trie sync process consumed >7GB of RAM when syncing shard 1 state. That’s why we added a new trie sync variant based on the depth-first algorithm that will make the internal structures contain less data at any certain time because the nodes traversal will reach leaves nodes before adding new branch nodes. We also made the intercepted trie node struct hold only the byte slice of the trie node, not the un-marshalled version. The un-marshalling will happen during the actual trie sync.

Changed files: #4533

Remove unnecessary gasComputation.Reset call

The gasComputation component started to consume large amounts of time when the calls to SetGasProvided were done on several hundreds of transactions while the node tried to propose a new block. Each transaction hash from the miniblock that was added as record in the map which was latter used to append each executed hash caused exponential execution time consumption. What we did was to remove unnecessary gasComputation.Reset() call from the basePreProcess.handleProcessTransactionInit call.

Changed files: #4535

Fix old NFT liquidity

You may have observed that some of the NFTs could not be transferred any longer. The affected tokens were those which were not moved after activating OptimizeNFTStore (epoch 795). We Integrated a new vm-common which resolves the issue of sending ESDTs with metadatas that keep the metadata in the user account and not in the system account.

Changed files: #4548

Fix preferred peers loading

The preferred peers are no longer provided as hexed BLS public keys. The correctness of the provided values is done in the peersHolder struct. So we removed the initial handling and passed the connection strings directly to the peersHolder struct.

Changed files: #4529

Fix old database cleaner

oldDatabaseRemover relied on the fact that all storers return the correct oldest epoch and ones that don’t, have an epoch approach, they would have returned an error. However, a disabled Storer has been introduced recently and returned 0 as that value, with no error.

Changed files: #4549

Fix start snapshot after restart

We observed that if a snapshot was interrupted, when the node restarts, it was needed to start the snapshot again. The code that triggered that snapshot was on the constructor, thus triggering the same snapshot multiple times (each time the NewAccountsDB constructor is called). In order to mitigate this behavior, we moved the snapshot starting after restart on a separate method (StartSnapshotIfNeeded) only when is needed.

Changed files: #4551

Activation epoch

There is one flag that will be enabled on epoch 811 which is scheduled to happen on October 19th, 2022 ~15:20 UTC.

  • FixOldTokenLiquidityEnableEpoch: due to an unintended behavior, old NFTs/SFTs that didn’t have their metadata stored in the SystemAccount were unable to be moved after the the v1.3.42.0 release activation (see Fix old NFT liquidty).

The other 4 fixes are 100% backwards compatible therefore no flag is needed for activating them.

Release: mx-chain-mainnet-config - v1.3.44.0 (link)

Feel free to send us a feedback or open a topic in our Github Discussions tab and share your thoughts so that the entire MultiversX community can hear you. If you have a great idea, share it with us and let’s make it happen by implementing and integrating it in our ecosystem.

Stay Hungry! Stay Foolish!

Do you need more information?

Explore projects, tokens, and integrations built on MultiversX