Æternity node upgrade v6.3.0 released – Introducing test mode for nodes and improving on-chain transaction throughput! 🎈

The æternity core dev team has announced a new upgrade to the æ node. The final tests have been conducted and the new version v6.3.0 has been successfully released.

For in-depth info as well as discussion about the new release with the core developer team and other community members, visit the æternity forum.

The main focus of the new release are the two areas: Sophia developers tooling and the Transaction pool.


Different modes

The prime test subject for this system is dev-mode — it is a way to set the node in a test mode. This feature was worked on in tight cooperation with the dev tools team. This mode uses a special consensus usually used in internal tests. It now allows the node operator to mine on demand. It comes with a special API that would be consumed by a test execution tool. The goal is to provide an end-to-end testing environment for Sophia smart contracts. The dev-mode comes with sensible default values and a simplified config.

The node can now be entered into different states, disabling whole segments of the software while letting the other parts of the system continue functioning. This allows us to inspect the node’s DB while it is static. This was a prerequisite for the Rosetta API, which can now be developed. It also allowed the development of different scripts, for example, the new version of the node comes with a DB rollback script that allows the node operator to revert the system back in time and let it sync again from there. The maintenance modes now also come in a form of a script:

bin/aeternity maintenance on | off | status

Transaction pool

In v6.3.0 the transaction pool and the micro block generation was revisited. Since the goal is getting a smoother experience for actual users, the node will now punish bad transactions. The transaction pool now has a strict mode. This allows a different number of retirees per transaction error to be specified.

Some context: a transaction can be invalid (like — having a plain wrong signature) or temporarily invalid (when there is a nonce gap, there might soon arrive a transaction that fills the gap and this transaction will become valid instantly). The outright invalid transactions are not allowed to enter the pool ever, but the temporary ones are allowed in. Then they stay for some time, taking one of the following paths:

  • the transaction becomes valid and it is included in a block
  • the transaction is garbage collected — this is configurable but by default the transaction stays for 2 weeks

The strict mode takes a more dramatic approach — each node operator can specify how many attempts a temporary invalid transaction is allowed. This is granular down to the error itself — for example, if there is a nonce gap — some grace period is provided but if the wrong vm version is being used — the transaction can be kicked out of the tx pool right away. This is all configurable by the node operator in the settings but some sensible defaults are provided.

If a transaction had been tried and it was kicked out of the transaction pool, the old behavior is to allow it back, in case it could become valid again. v6.3.0 takes the opposite approach — a transaction that was deleted locally is not allowed back in the pool. This is, of course, configurable and a node operator can choose to allow those in their own pool.

What is more, the micro block generation approach was revisited. This will likely result in higher transaction throughput.

Other small improvements

  • the State Channel minimum depth values have been revisited and a new strategy for it has been provided
  • a bug that was crashing a few HTTP endpoints when the flag int-as-string was raised has been fixed
  • a bug in OTP 21 has been identified. Now the default OTP version is 22. OTP23 is officially supported now. This is a step towards support of OTP24

All these upgrades are part of v6.3.0. Node operators are suggested to upgrade to it in order to take advantage of all the new features.

As already mentioned, for a more in-depth explanation of the upgrade as well as discussion about it with the core developer team and other community members, visit the node release post here on the forum.

Read the full article on the æternity blog: https://blog.aeternity.com/æternity-node-upgrade-v6-3-0-released-a5250cf47407