Fixing Bugs, More Performance Testing and Fine-Tuning Gas Fees

As we approach æternity’s Mainnet launch, we are focusing our efforts on fixing the few remaining bugs, running load, performance testing, and optimizations.

Gas fees are the crucial part of the æternity blockchain, and we are working to finalize the fee-related tasks:

Handle gas of VM primitive operations considering static base, TTL (for oracles), and equivalent transaction size [PT task]. The gas of VM primitive operations is the sum of the following components:

Base static gas (if any) For oracles, gas considering TTL of state object

Implement gas costs of call based on size of call data [PT task]

Add gas cost for maps in return value [PT task]

æternity’s core development team is also investing significant time in load testing and optimizations that result from identifying potential bottlenecks:

One of the tweaks that significantly sped up the handling of transactions is not immediately retrying rejected transactions. The way the mempool originally worked, transactions candidates with high fees were likely to be included as the next microblock candidate. For example, if an expensive contract call with insufficient gas is posted, it could effectively block cheaper transactions. To solve this, transactions that have been tried but do not fit in the chain at the moment are put last in the transaction pool, waiting for the next leader cycle [PT task]

Another major component of æternity’s blockchain are state channels. The last few optimizations are currently being carried out by the team:

State channels force progress should not include the whole state channel’s state, including all accounts and contracts, in order to force progress a single contract. However, it should still be able to provide enough information to build a Merkle Patricia Tree with the correct root hash [PT task]

In addition, a number of fixes and smaller tweaks were performed that can be seen in our [PT task].

Apart from all that, the dev team is also deliberating on the features that will be introduced with the first forks after Mainnet launch. Expect more information soon.