Middleware Team Development Update

Hello everyone,

I want to present the lastest release from the middleware team, work happens in the repository at GitHub - aeternity/ae_mdw: Aeternity Middleware in Elixir.

With our released and deployed version 1.4.0 we skipped many in-between versions to be available in our production deployment available at https://mainnet.aeternity.io/mdw/status and https://testnet.aeternity.io/mdw/status for testnet. From the available changelog ae_mdw/CHANGELOG.md at master · aeternity/ae_mdw · GitHub all changes made included in 1.1.0 up to 1.4.0 will now be available to be used. The in-between releases were for internal use and evaluation as some consistency issues in sync and compatibility were resolved.

To summarize the new changes available:

  • indexing of generalized accounts (ga_attach_tx)
  • indexing of inner transactions (from ga_meta_tx and payingfor_tx)
  • index remote call events also by called contract
  • move all endpoints for cursor based pagination, improving previously stateful pagination allowing random lookups
  • improved documentation with references to the hosted endpoints
  • fix missing AEX-9 accounts presence
  • add token info on AEX-9 balances
  • improve consistency of names and oracles data indexed
  • additional info in websockets noting when a message was first seen and when it is fully indexed
  • add support for Chain.clone and Chain.create events
  • add recipient details for /tx and /txi
  • add name hash to owned_by response
  • add gas_used to create contract tx info
  • allow scoping transfers by txis and other scoping improvements
  • index contract init events and internal calls

Other notable changes:

  • /v2/blocks endpoint returns micro-blocks sorted by time
  • adds recipient account and name to spendtx
  • improvements to the docker image
  • compatibility to the latest node version 6.3.0
  • automatic db migrations for future versions

In addition to that there were a lot of changes to improve the speed and consistency of the sync process and overall stability of the software, as well as improvements for our development process with introduction of unit tests and CI/CD.

Future improvements planned:

  • improve sync speed even more
  • instant synchronization for certain information (microblock instead of keyblock level)
  • apply pagination concept to more endpoints for a more consistent experience
  • improve endpoints and information to be more similar structured to the core node
  • many internal testing, mdw-operations, deployment and other improvements
  • additional endpoints, e.g oracle history, all contract information, bytecode verification
  • add additional statistics about the chain

Thanks to @cryptodao21ae and @sborrazas for their great work
If there are any questions or issues, let us know!