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
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
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
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
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 v18.104.22.168 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 - v22.214.171.124 (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!