[Completed] AE maintenance Q2-2023

Application Status

Status: Approved on the 22.04.2023, submitted on the 21.04.2023
Last updated: 21.04.2023
Submited by First Name, Last Name: Dimitar Ivanov
Team: Craig Everett, Sean Hinde, Dimitar Ivanov, Hans Svensson, Dincho Todorov, Ulf Wiger, Metin Akat, Rumiana Akat
Approved Budget (in h):
Used Budget (in h):
Planned Delivery:

Specify the funding category

Open Source Development

Application Title

Core team application April-June 2023

Applicant

Aeternity core developers team.

Value Application

During the first quarter, our main task will still be the HyperChains implementation. We are wrapping up the initial implementation

We will also be working on various ongoing tasks:

  • Tx Execution Parallelization
  • Snapshot Sync
  • Front-End Playground
  • Advanced State Channels
  • EIP-712

Status Quo

Hyperchains

They are our top priority. We are working towards adding:

  • Lazy leader - an elected leader is not producing a block, then anyone can produce a block
  • Fork awareness for the parent-chain - forks on the parent chain must propagate to the child chain
  • Revisit the staking UI to make it working with the latest contract changes
  • Implement the pending contract changes

Tx Execution Parallelization

Revisit transaction dependency building and execute txs in parallel. This will improve sync and transaction throughput.

Snapshot Sync

Since now there is an efficient GC, then it can be implemented a snapshot sync approach. It will sync all the block headers till a certain height and then start asking for DB objects from different peers.

Front-End Playground

A front-end UI for inspecting transactions and interacting with the chain needs to be implemented.

Advanced State Channels

There are ideas on how to evolve the State Channel Market demo into a more complete, usable and practical demo. A more mobile-friendly interface than WebSockets has also been requested, as well as a different packaging, making it possible to run State Channels outside of the actual Aeternity node. We will see if we get to it in this Q.

EIP-712

The implementation of EIP-712 typed structured data hashing and signing will allow the user to inspect the message they are signing in a wallet.

Network Monitoring Tool

This work on this tool is in progress: a prototype was created, it connects to nodes and asks for their peers but needs to be finished, it feeds the data into Graphana. It is to be improved, still.

Required Work

Once we have enough features implemented, we will make official releases.

Estimate

We would be working full time on this, although some of the team (Hans and Craig) already have other commitments and would help us depending on their availability.

Known Limitations

Although we aim at delivering fully functional HCs, there will be a lot to be improved there.

Outlook

HCs is something we had promised long ago. It will be great to deliver a working version. Improved syncing would be highly appreciated by the community. We do need the monitoring tool for internal purposes.

Publishment

We publish our work in the official AE repositories.

2 Likes

Week 13 (Mar 27 - Apr 2)

Hans Svensson

Explaining and helping with generalized accounts, mainly with regards to signing. Looking at extending Sophia (and FATE) with arbitrary sized byte arrays.
Time spent: 8h

Rumyana Akat

Worked on GA UI - Worked on integrating the new version of the contract. Spending through Superhero works now, thanks to Hans and Dimitar. AF website - reviewed and discussed new design options. Onboarding on the new Playground project. Time spent: 33 h

Metin Akat

Work on new AE Playground UI; Did some additions to the calldata JS library. Some research/experiments on the lower layers of the SDK and the AE protocol in general. Time spent: 24h

Ulf Wiger

Ulf looked into some intermittent failures in CI. Time spent: 16 hrs

Dimitar Ivanov

Dimitar worked on a lazy leader - reorganised the contract to be able to elect a leader even if no commitments are posted. Time spent: 24h

Week 14 (Apr 3 - Apr 9)

Sean Hinde

Sean worked on creating a Hyperchains connector towards a bitcoin based parent chain. Time spent: 40.00 hrs

Metin Akat

Mostly some discussions. Time spent 2:15h

Rumyana Akat

Worked on GA UI - final tweaks for signing a message. Time spent: 5:15 h

Ulf Wiger

Ulf started looking into snapshot sync. Time spent: 38 hrs

Dimitar Ivanov

Dimitar fixed a bug in the total difficulty assertion. The rest of the time was dedicated to lazy leader computation. Time spent: 35h

Week 15 (Apr 10 - Apr 16)

Sean Hinde

Sean worked on building system test cases for the bitcoin hyperchains connector. Time spent: 33.00 hrs

Rumyana Akat

GA UI - account input and other small tweaks. Time spent: 5:45 h

Metin Akat

GA UI - some bugfixes and UX tweaks. Took part in AMA. Time spent 5:15h

Hans Svensson

Add --no-code option to CLI compiler, to enable conversion from stub ACI to JSON ACI. Started looking at improving byte array handling in Sophia/FATE.
Time spent: 6h

Ulf Wiger

Ulf continued investigating snapshot sync. Time spent: 45:40 hrs

Dimitar Ivanov

Dimitar was working on lazy leader: expanded the consensus to propagate additional information. Time spent: 38h

Week 16 (Apr 17 - Apr 23)

Hans Svensson

Worked on byte array handling in Sophia/FATE (and aebytecode!).
Time spent: 6h

Sean Hinde

Continued work on changes to hyperchains and related system test cases when using the new bitcoin hyperchains connector. Time spent: 39.00 hrs

Ulf Wiger

While investigating snapshot sync, Ulf identified some weaknesses in the new (and the old) garbage collector. These were addressed, and Ulf continued working on snapshot sync. Time spent: 39 hrs

Rumyana Akat

Participated in some discussions. Time spent: 2:30 h

Metin Akat

Did an internal demo and participated in some discussions. Time spent 2:45h

Dimitar Ivanov

Dimitar was debugging a lazy leader issue with not electing the correct leade. Time spent: 34.5h

Week 17 (Apr 24 - Apr 30)

Sean Hinde

Finished getting system tests working against bitcoin node for Hyperchains. Time spent: 44.00 hrs

Hans Svensson

Worked on byte array handling, bytes() type, in Sophia and FATE. Reviwed AENS NFT-wrapper API (by Marco)
Time spent: 8h

Ulf Wiger

Investigated ways to improve monitoring and control of the new garbage collection support. Time spent: 39 hrs

Dimitar Ivanov

Dimitar was working on lazy leader: refactored the caching of commitments. Time spent: 35.5h

Week 18 (May 1 - May 7)

Hans Svensson

Improved the type checker constraints and the type errors reported for bytes() type.
Time spent: 6h

Metin Akat

Metin worked on bringing the Hyperchains UI and starter kit up-to-date, also some general work in the realm of DevOps. Time spent: 17:15h

Sean Hinde

Prepared full end to end demo based on bitcoin parent for Hyperchains, with Superhero wallet, HCUI, middleware and aescan. Time spent: 43.00 hrs

Rumyana Akat

Updated Hyperchains UI to work with the new version of SDK. Time spent: 11 h

Ulf Wiger

Investigated the functioning of the latest release, and ways to improve garbage collection support. Time spent: 43 hrs

Dimitar Ivanov

Dimitar refactored the smart contract again. Some big refactoring of the conesnsus module is underway. Time spent: 35.5h

Week 19 (May 8 - May 14)

Sean Hinde

Worked on integrating hyperchains to a Dogecoin based parent chain. Time spent: 42.00 hrs

Metin Akat

Discussions. Demo GA UI. Research on new functionalities.
Time spent: 13:45h

Rumyana Akat

Discussions. AE Client libraries update. HC ACI update. Time spent: 12:15 h

Ulf Wiger

Worked on diagnostics and repair of state trees. Time spent: 29 hrs

Hans Svensson

Finished some tests for bytes() in aesophia, helped debugging some buggy Sophia contracts (hackathon?).
Time spent: 3h

Dimitar Ivanov

Dimitar finished the consensus module refactoring. Time spent: 42.5h

Week 20 (May 15 - May 21)

Rumyana Akat

Discussions. GA UI minor tweaks. Started work on spending limits. Time spent: 14:30 h

Ulf Wiger

Worked on diagnostics and repair of state trees. Time spent: 41 hrs

Metin Akat

Mostly maintenance. Time spent 8:30

Sean Hinde

Worked on implementing a secure and anonymous hyperchain commitment scheme. Time spent: 30.00 hrs

Dimitar Ivanov

Dimitar was working on lazy leader: initial tests fail because of an odd bug - nodes refuse syncing after a lazy leader block is accepted. Time spent: 36h

Week 21 (May 22 - May 28)

Hans Svensson

Reading and discussing EIP-712, the concept is interesting for aeternity, the details less so. Preparing for and participating in Galaxy session. Testing bytes(). Help Ulf and Sean debugging GC issues.
Time spent 27h

Sean Hinde

Completed the bitcoin/doge Hyperchain backends and secure commitments. Prepared and presented at Galaxy event. Time spent: 45.00 hrs

Rumyana Akat

Worked on adding spending limits in GA UI minor tweaks. Time spent: 18:45 h

Metin Akat

Worked on upgrading hyperchain starter kit to latest node/mdw. Experiments with running MDW in docker/kubernetes

Ulf Wiger

Worked on debugging the new GC and making it more robust. Time spent: 36.4 hrs

Dimitar Ivanov

Dimitar was off for most of the time, he participated into internal call. Time spent 2.5h

Week 22 (May 29 - June 4)

Hans Svensson

Implement API for encoding/decoding Sophia values in the compiler + usage in aesophia_cli. Troubleshooting name registration in Superhero wallet.
Discussions on Sophia, its future, features, etc.
Time spent: 16h

Metin Akat

Participated in some discussions and experimented with MDW in kubernetes. Time spent 5:15h

Sean Hinde

Worked towards documenting and preparing hyperchains for production. Re-visited, tidied up and merged some older PRs Time spent: 40.00 hrs

Ulf Wiger

Worked on debugging the new GC and making it more robust. Time spent: 37 hrs

Dimitar Ivanov

Dimitar was off.

Week 23 (June 5 - June 11)

Sean Hinde

Worked on preparing the MDW for hyperchains and investigated rocksdb issues. Explored real world use of Dogecoin for hyperchain parent: 40.00 hrs

Metin Akat

Worked on kubernetes setup for hyperchains. Time spent: 34:45h

Rumyana Akat

Participated in some discussions. Hyperchains onboarding. Time spent 7h

Ulf Wiger

Tested GC improvements. Time spent: 35.7 hrs

Week 24 (June 12 - June 18)

Rumyana Akat

Worked on Hyperchains starter kit - generating aeternity config from schema. Added minor fixes to the schema for HC. Time spent 18:30 h

Metin Akat

Worked on running AE Node in Kubernetes (both for hyperchains and mainnet). Time spent 48:30

Sean Hinde

Worked on setting up Hyperchain networks on various parent chains : 31.45 hrs

Ulf Wiger

Tested GC improvements. Time spent: 32.4 hrs

Dimitar Ivanov

Dimitar was debugging lazy leader issue: nodes do not sync. Various different hypotesis were explored but the bug was not found. Time spent: 46.5h

Week 25 (June 19 - June 25)

Rumyana Akat

Worked on Hyperchains starter kit - minor changes and documentation. Time spent 9:45 h

Sean Hinde

Worked on investigating and fixing the macOS build that was failing for some users. Worked on running and debugging Hyperchain based on Aeternity mainnet : 44.15 hrs

Metin Akat

Worked on kubernetes setup for hyperchains. Time spent 6:45h

Justin Mitchell

Worked on mempool transaction endpoint for Rosetta. Time spent 33:20

Ulf Wiger

Investigated how to make mempool sync kick in later during the chain sync process. Time spent: 36.5 hrs
spent: 32.4 hrs

Dimitar Ivanov

Dimitar found the issue, fixed it. Also a handul of other smaller bugs were found. A refactoring in the cache module was done. Time spent: 41h

3 Likes

Week 26 (26 June - 2 July)

Hans Svensson

A lot of PR juggling, most of arbitrary sized bytes finally merged. Finished implementation of Chain.network_id + started producing PRs for it.
Time spent: 10h

Metin Akat

Some code reviews on Sophia Rust rewrite, some work on Kubernetes deployments. Time spent: 9h

Sean Hinde

Worked on more failing macOS build reasons, supported work on Rosetta enhancements, and Hyperchains security: 44 hrs

Dimitar Ivanov

Dimitar was working on improving the lazy leader contract. Time spent: 48h

Ulf Wiger

Ulf fixed a bug in the dev mode plugin, optimized chain sync (deferring mempool sync until most of chain sync is done) and investigated snapshot sync. Time spent: 40h

3 Likes