[ROADMAP] Aeternity Roadmap Q3-2023

The Aeternity Foundation (AF) supports the aeternity protocol and ecosystem.

The AF is giving funding grants for applications on the promotion of the success and growth of the æternity ecosystem as well as the ae blockchain maintenance. Weekly detailed reports on the progress of the developers can be found in the Active Grant Applications under the forum’s AF Grant Category .

Our goal remains the same: to make the ænode faster, better, and lighter and the æcosystem more attractive for the users. The Hyperchains network using the ænodes has been designed to attract enterprise customers and their users. On top of the faster æternity network and hyperchains network the decentralized applications (æpps) can be run with higher performance and in a private context. Therefore, the whole æternity ecosystem will perform with higher availability, scalability, security and performance.

Q2 2023 Recap

A short review follows:

  • HyperChains

    With the introduction of lazy_leader functionality, there were identified and solved a lot of race conditions in the consensus. The lazy_leader implementation is to be completed next weeks. Quite some progress had been made configuring and running the full AE stack in K8s.

  • HyperChains in Kubernetes

    Quite some progress has been made configuring and running the full AE stack and now the nodes can run in K8s.

  • Garbage Collection

    Some corner cases were identified with the new chain state garbage collection. The collector now detects and scans siblings properly taking in the account that their fork may later end up being the main chain. This feature was included in Release 6.11.0.

  • Snapshot Sync

    Some initial work was done with regards of making the P2P protocol upgrade able to new versions. Currently it supports only one version and the snapshot sync will rely on the introduction of various new P2P messages. The approach being taken will keep backwards compatibility and will upgrade each connection to the lowest denominator.

    Some other bits are in prototype state:

    a) Spine sync, was prototyped earlier, syncs all key block headers. This was initially intended to be used with “Block Witness” logic, but since this has been abandoned, the plan is to sync a state tree snapshot, along the lines of Eth Snap, then proceed with normal sync.
    b) Code for producing snapshots on-demand is largely already in place.

  • Front End Playground

    Some work has been done with the calldata library. This project is now on hold until the new Rust libraries get more mature.

  • Advanced State Channels

    Some considerations had been done of a possible new functionality in the context of HyperChains. The method for end-to-end encryption of relayed messages has been improved.

  • Middleware

    There were achieved significant advancements in enhancing the middleware functionality, performance and reliability. Innovative methods were introduced for accessing resource data such as contracts, oracles, channels, and names. These new approaches enabled improved processing and exposure of AExN contracts data, enhancing the overall capabilities of the system. Furthermore, the compatibility with the node Release 6.8.1 was ensured. Additionally, some improvements were made to the system’s documentation, making it more user-friendly and reliable, providing users with a better understanding of the system’s features and functionality. These efforts collectively contribute to an improved user experience and a more robust middleware system.

  • JavaScript SDK

    A sdk Released 13.1.0 was made. It includes the following:
    a) a signing of typed structured data
    b) an ability to claim a name with non-ASCII chars
    c) a way to sign a transaction for payment over aepp-wallet
    connection, middleware’s HTTP and WebSocket clients.

  • Sophia/FATE Compiler

    There were added some compile-time constants to Sophia as well as several bugs in FATE runtime and compiler were fixed.
    Some plans and research were done on the costs and benefits for rewriting the Sophia compiler from Erlang to Rust. After discussing and reviewing different options, a decision was made to go for this endeavor. The goal is to deliver a high-quality, flexible and scalable product that will greatly improve the developers experience by allowing much smoother integration with external tools. The new product will boost future development efficiency. A detailed tasks list can be found in a dropbox paper. A regularly updated flowchart with tasks and dependencies will be made publicly available.

    The following tasks were already completed:

    1. Almost entire serialization logic has been successfully rewritten in Rust

    2. Erlang interface for the aforementioned has been established and tested

    3. Bytecode library has been partially rewritten (serialization and autogeneration is missing)

    4. Researched decisions on how to organize main compiler codebase with selection of tools used for parsing and lexing

  • Sophia/FATE debugger and REPL

    The FATE bytecode was extended with debugging symbols. The Sophia compiler now produces debugging symbols in the generated output. It was added an infrastructure to FATE to handle debugging instructions such as breakpoints, jumps, state lookup etc. REPL was extended with access to debugging features. The web interface to the REPL was updated to work with most basic features of the REPL.

Q3 Roadmap

HyperChains

Hyperchains have still the top priority and the implementation will be completed soon.
The work on the following tasks is in progress:

  • lazy_leader functionality
  • a parent chain fork awareness
  • a hc config tool
  • a staking UI update to the latest contract changes
  • tooling to facilitate setup and deployment
  • setup and deploy documentation
  • an AE wallet in order to support HC’s child chain signing

API Revisit

A revisit on the internal API is planned to make it easier to implement plugins. This is mostly an ongoing process and the API is being adjusted when needed. The goal is to have a static API in order to support different plugins across different node versions. Documentation and tutorials are also needed.

NODE UI

A simple local webpage allowing the users to operate their node will be developed. This is mostly an RnD project.

Snapshot Sync

Sync the backbone of headers first and then download the MPT some blocks below the top. This includes a whole spectrum of new P2P functionalities like communicating P2P versions, enabled node capabilities and so on.

Jump Sync

This is still at the idea stage. The thought is for syncing nodes to share a Proof of Inclusion of the block hash at a given height + the Genesis hash, allowing a connecting node to jump directly to that height, trusting that the hash is indeed on the main chain and connected to Genesis. More theoretical analysis and experimentation will be needed.

Tooling Support

The support and improvements for tooling are long running tasks that are continuously tackle: GUI launcher, aeCanary, monitoring tool, plugin system, devmode, state channel use cases and so on

Middleware

The focus will be on implementing following major features that will enhance the functionality and usability of the system:

  • adding statistics endpoints, which will enable the display of chart data that will provide valuable insights and visualizations to users, facilitating data analysis and decision-making
  • expanding support for NFT and nested resources information
  • deprecation of the Middleware API V1 version in order to optimize the system

All upgrade will bring improved functionality, performance, and security to the API, ensuring compatibility with the latest node changes, including support for hyperchains.

JavaScript SDK

It is planned to implement an alternative way to connect aepp with a wallet using WalletConnect. The scope of refactoring includes:

  • improve the existing aepp-wallet interface
  • find a better way to calculate transaction fee
  • implement a consistent way to represent AE coins in code

Sophia/FATE

Sophia/FATE compiler maintenance and development are ongoing tasks:

  • Fix high priority bugs, currently: 476, 471, 470, 395. More bugs could be included as we progress.
  • Provide developer support by answering questions in the forum and github.

The plan is to replace the Erlang compiler with the Rust one and to refrain from adding new functionality to the current compiler. All new features will be implemented in the Rust compiler only.

Sophia compiler rewriting includes:

  • Finish the reimplementation of aebytecode in Rust.
  • Rewrite and test lexer and parser, at least a simplified version
  • Define the entire compiler’s project structure and provide type definitions for most crucial data across the compilation pipeline.
  • Implement infrastructure for basic type checking.

Sophia/FATE debugger and REPL tasks:

  • Expose full REPL/dbg functionality in the new web interface
  • Provide machine-readable interface to the REPL
  • Fix deployment: update the Dockerfile and make sure the application is startable out-of-the-box in release mode

State Channels

There is a plan to move the state channels out of the node. This will speed up the core node tests but also would allow building server-side infrastructure for supporting SCs and perhaps simplify running State Channels on mobile devices. This task aims primarily at taking the SC FSM out of the node.

Some ideas exist for how to evolve the State Channel Market concept. One idea is to provide a fast bridge between Hyperchain child chains, or between child- and parent chain. More concrete use cases and more developed user interfaces may also be explored, as well as making the demo properly decentralized, with proper wallet support.

This could in part help to clarify and improve the experience of using State Channels for highly interactive, high-volume applications.

All regular reports on any grant application progress can be found in the æternity forum, see ae maintenance , middleware , js sdk , sophia and fate, etc.

The updates on the ærelease schedule will follow dynamically in this topic. The previous roadmap can be found on the AETERNITY ROADMAP Q2 2023 .

You are welcome to contact us under the Email: [email protected]

Release v6.11.0

Release Date: Juli 7, 2023
Type: Maintenance / HC , see forum post and release notes

Release v6.12.0

Release Date: Q3, 2023
Type: Maintenance / HC