[Active] MDW Grant - Q4 2023

Application Status

Status: Active
Last updated: 15.12.2023
Submited by Sebastian Borrazas (hi@sborrazas)
Team: Sebastian Borrazas, Rogerio Pontual
Approved Budget (in h):
Used Budget (in h):
Planned Delivery: 31.12.2023

Specify the funding category

Open Source Development

Application Title

AE Middleware Q4 2023 feature development and maintenance

Applicant

Sebastian Borrazas - sborrazas (Sebastian Borrazas) · GitHub
Rogerio Pontual - jyeshe (Rogerio Pontual) · GitHub

Value Application

The upcoming grant will build upon the foundations established by the previous one. We will be leveraging the progress and insights gained from the previous grant to further advance our research and development efforts. This will involve building upon existing changes and exploring new ideas to continue improving Middleware.

Definition of Terms

The middleware is an indexing api for the aeternity core node, it exposed data in ways that the core node can not or is not supposed to be.

It is heavily used by various projects in the aeternity ecosystem such as the explorer, superhero wallet and dex, but available for everyone to consume or host themselves.

The overall goal of middleware is to expose all data in aeternity blockchain in a structured, filterable and developer friendly way.

Status Quo

Our work done during the previous grant includes the following major features and work:

  • Add statistics endpoint to count transactions filtered by date and type
  • Add blocks statistics endpoint to count amount of blocks per a given timeframe
  • Index hyperchain seed contracts
  • Add new NFT metadata endpoint
  • Add aexn_type to contract transactions
  • Sort aexn contracts by creation
  • Query active entities
  • Add approximately calculated time on several endpoints
  • Improve overall memory sync performance and offloading data prior to sync
  • Update to latest Node version and support for it
  • Several bugfixes on the syncing logic and endpoints

Required Work

Some of the upcoming work to be done is due to some changes on the node. These and future changes require a thorough analysis and implementation to ensure the smooth functioning of the system. Additionally, we will be covering some of the new features of æscan as they become available. This will involve exploring the new functionalities and providing a detailed overview of how they can be used to improve the efficiency and effectiveness of the system.

  • Include AEx9 minting and burn event on the AEx9 transfers to query and filter tokens.
  • Track DEX contracts pair creations, including swap tokens.
  • Update node version.
  • Add name activation statistics.
  • Add endpoint tracking last 24hs transactions count.
  • Incorporate an asynchronous process to execute all synchronisation requirements, preventing any disruptions to the web endpoints.
  • Improve previous names handling to avoid database record size overflow
  • Improve counting of persisted contract by adding some caching layer that’s initialised at startup
  • Update contracts endpoint to be able to sort by most used AEx9 contracts
  • Add new endpoint to display all of an account’s tokens
  • Discuss any other features required by the aescan team

Estimate

Our team is dedicated to the project, and we’ll be allocating resources based on individual availability. Additionally, we’ll prioritize tasks according to the urgency of requests to ensure timely delivery.

Known Limitations

Although we aim at delivering all proposed features as outlined, there may be some higher priority tasks coming up that need to be worked on by the middleware team, thus not every proposed item is expected to be delivered.

Outlook

As we continue to evolve the project, new features will emerge. We’ll need to collaboratively evaluate and prioritize these features to enhance the overall functionality."

Publishment

During development there will be new releases published and deployed continuously.

We publish our work in the official AE repositories.

Maintenance

Maintenance is part of the proposal and included for the approved timeframe.

1 Like

Week 6 (Nov 6 - Nov 12)

Sebastian

  • Ignore errored contract calls fun_arg_res when syncing. 18h

Week 7 (Nov 13 - Nov 19)

Sebastian

  • Add names approximate time on expire/activation. 6h

Week 8 (Nov 20 - Nov 26)

Sebastian

  • Fetch previous names before rendering them. 18h

Week 9 (Nov 27 - Dec 3)

Sebastian

  • Use last gen status regardless of transaction index. 6h
1 Like

Week 11 (Dec 11 - Dec 17)

Sebastian

  • Always return state on contract logs write. 6h
  • Handle micro-block cursor properly. 6h
  • Check return_type instead of ret_value for errors. 8h

Week 12 (Dec 18 - Dec 24)

Sebastian

  • Pick starting transaction from 24hs ago for counting. 6h

Week 13 (Dec 25 - Dec 31)

Sebastian

  • Index name statistics using key blocks. 8h
1 Like