[Completed] AE maintenance Q3-2022

Application Status

Status: Completed on 02.10. 2002, approved on 13.07.2022, submitted on 12.07.2022
Last updated: 12.07.2022
Submited by First Name, Last Name: Dimitar Ivanov
Team: Michal Bargowski, Craig Everett, Sean Hinde, Dimitar Ivanov, Fabian Krol, Hans Svensson, Dincho Todorov, Ulf Wiger, Metin Akat
Approved Budget (in h):
Used Budget (in h):
Planned Delivery:

Specify the funding category

Open Source Development

Application Title

Core team application July-September 2022

Applicant

Aeternity core developers team.

Value Application

During the third quarter, our main task will be the HyperChains implementation. However, we do not expect to finish it in the scope of this application.

We will also be working on various ongoing tasks:

  • RocksDB refactoring
  • GC of old states
  • Rosetta API

Definition of Terms

Hyperchains

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

  • a parent chain connector
  • more features in the contract
  • improving the release process
  • revisiting the UI grounds up

RocksDB refactoring

We are looking forward finishing this feature.

GC old states

This would be really beneficial but it is blocked by the RocksDB refactoring. Once the latter is merged, we will be working on this

Rosetta API

The developer working on this quit, then it was moved to another dev that dropped it in favour of HC develpment. We aim at finishing this API.

Status Quo

None of the above is available.

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, Dincho, Michal and Craig) already have other commitments and would help us depending on their availability.

Known Limitations

We do not expect finishing the HyperChains.

Outlook

HyperChains have been a long-standing goal, but there is still a lot of work left.

Publishment

We publish our work in the official AE repositories.

2 Likes

Our progress reports in a bulk:

Week 27 (4 July - 10 July)

Dimitar Ivanov

Dimitar was improving the smart contracts: now we are to have 2 election processes (one for PoS and one for HC) sharing the same DPoS context, Dimitar abstracted away the election process in a separate contract so the contract could be replacable keeping the same stakers’ distribution. Time spent: 45h

Ulf Wiger

Ulf worked on final debugging of the new rocksdb backend, focusing on getting all test suites to pass. Time spent: 41.3 hrs

Sean Hinde

Worked on the online CLI and continued with the Rosetta implementation. Time spent: 29:55

Fabian Krol

Demo UI improvements. Time spent: 18h

Week 28 (11 July - 17 July)

Metin Akat

Metin worked on figuring out the tech stack for a new version of the HC demo UI 28:40h

Sean Hinde

Worked on adding the block witness parts to the Rosetta API. Time spent: 13:15

Ulf Wiger

Ulf worked on final debugging of the new rocksdb backend, focusing on getting all test suites to pass. He also started looking into extending the node GC again. Time spent: 42 hrs

Dimitar Ivanov

Dimitar was refacgtoring the code to feed the parent chain hash as a source of entropy for the child chain’s election contract. Spent some time discussing the HC UI. Time spent: 45.5h

Fabian Krol

Demo UI improvements. Limit validate withdrawal beyond a certain percenmtage. Time spent: 34:30h

Week 29 (18 July - 24 July)

Metin Akat

Metin worked on the new version of the the Hyperchains demo UI and produced a first pre-alpha version (not public yet). Time spent 39:45h

Sean Hinde

Worked on the foundations to unify the node configuration around a single config file. Time spent: 30:00

Ulf Wiger

Ulf worked on debugging a system test case that failed in a very subtle way, revealing a weakness in the Mnesia plugin framework. Time spent: 44.3 hrs

Dimitar Ivanov

Dimitar wrapped around the entropy propagation and rebased the big old HC Alpha branch on top of latest master. Some time was spent tracing rebase artifacts. Key block production refactoring started: for PoS consensus keyblocks are emitted when it is their time. The process is quite different for HyperChains’ consensus as the child keyblock follows a parent chain’s one. Time spent: 46.5h

Fabian Krol

Limit validate withdrawal beyond a certain percenmtage; Staking upper limit; Preconfigurable delay for new validator going online. Time spent: 37:15h

Week 30 (25 July - 31 July)

Metin Akat

Metin continues work on the Hyperchains UI. Time spent 35h

Sean Hinde

Continued the work of adding the block witness parts to the Rosetta API. Time spent: 14:20

Ulf Wiger

Ulf was mostly off this week. Time spent: 10 hrs

Dimitar Ivanov

Dimitar was refactoring the keyblock production. Work had started introducing the local caching of parent chain blocks. This is intended to speed up syncing of the child chain. Time spent: 32.75h

Fabian Krol

Delay for staking and unstaking Time spent: 37:25h

Week 31 (1 Aug - 7 Aug)

Metin Akat

Metin mostly finished the first iteration of the Hyperchains UI. Time spent 40h

Sean Hinde

Continued the work of adding the block witness parts to the Rosetta API. Time spent: 02:00

Ulf Wiger

Ulf worked on the failing system test case, and on node GC. Time spent: 37.2 hrs

Dimitar Ivanov

Dimitar wrapped up the cache of blocks and started refactoring keyblock syncing. Time spent: 42h

Fabian Krol

Delay for staking and unstaking Time spent: 38:15h

Week 32 (8 Aug - 14 Aug)

Metin Akat

Metin fixed some bugs on the Hyperchains UI and dockerized them. Started work on a “hyperchains starter kit” - a tool to allow everyone to run their own hyperchain. Time spent 36:30h

Sean Hinde

Continued the work of adding the block witness parts to the Rosetta API. Time spent: 17:40

Ulf Wiger

Ulf worked on node GC. Time spent: 42.5 hrs

Dimitar Ivanov

Dimitar finished the syncing refactoring and introduced corresponding tests. A new caching strategy was introduced to the cache making it smarter. Time spent: 39.5h

Fabian Krol

Delay for staking and unstaking Time spent: 36:00h

Week 33 (15 Aug - 21 Aug)

Metin Akat

Metin continues work on the hyperchains starter kit

Hans Svensson

Hans added CI configurations for eaex3, eaex10, ebip39, and epbkdf2. And refactored and updated enacl.
Time spent: 7h

Sean Hinde

Continued the work of adding the block witness parts to the Rosetta API. Time spent: 39:00

Ulf Wiger

Ulf worked on node GC and debugging an issue with dev mode. Time spent: 35.5 hrs

Dimitar Ivanov

Dimitar was refactoring the cache to accomodate the two different strategies. Time spent: 42.5h

Fabian Krol

Delay for staking and unstaking; Staking test refactoring. Time spent: 34:40h

Week 34 (22 Aug - 28 Aug)

Metin Akat

Metin was on a leave

Hans Svensson

Hans helped Sean debug transaction balances as part of Rosetta API, and also started refactoring emusig2.
Time spent: 9h

Sean Hinde

Moved on to testing the Rosetta implementation against the rosetta-cli tools and fixing the issues it uncovered. Time spent: 36:40

Ulf Wiger

Ulf started working on a State Channel Market plugin demo for AE Universe Two. Time spent: 41 hrs

Dimitar Ivanov

Dimitar was refactoring the cache. At this point both strategies are combined into one single smarter caching stratety. HC progress is being accumulated for the release. Some final preparations. Time spent: 47.5h

Fabian Krol

Delay for staking and unstaking; Preconfigurable delay for unstaking. Time spent: 30:30h

Week 35 (29 Aug - 4 Sep)

Metin Akat

Metin developed the hyperchain starter kit to the point where it generates correct node configs. Our test HC network is generated using it.
Also updated the UI to the lastest HC node. We now have a deployed UI. Time spent 40:15h

Hans Svensson

Improved the dry-run API (following the Rosetta debugging) - now possible to faithfully re-run a microblock with the correct timestamp.
Time spent: 4h

Ulf Wiger

Ulf worked on the State Channel Market demo, and investigated suspicious memory growth in some nodes. Time spent: 41.7 hrs

Sean Hinde

Continued testing the Rosetta implementation against the rosetta-cli tools and fixing the issues it uncovered. Time spent: 31:20

Dimitar Ivanov

Dimitarstarted working on posting commitments on the parent chain. Release 6.6.0 was published. HC testnet was upgraded to it manually. A few small fixes were made - keys in config are hex encoded. A missing config for the cache size was fixed. Some time was spent tracing a memory leak. Started debugging failing system tests. Time spent: 46.5h

Fabian Krol

Staking test refactoring; New return values for staking and unstaking; Time spent: 34:45h

Week 36 (5 Sep - 11 Sep)

Hans Svensson

Worked on emusig2 and started to prepare a presentation for AE Universe.
Time spent: 2h

Metin Akat

Various improvements to HC UI and HC starter kit. Started preparing conference presentation. Time spent: 37h

Sean Hinde

Worked on discovering the source of the memory footprint growth of the 6.6.0 nodes. Time spent: 40:00

Ulf Wiger

Ulf worked on the State Channel Market demo, and investigated suspicious memory growth. Time spent: 40.5 hrs

Dimitar Ivanov

Dimitar was debugging system tests. Eeventually Dimitar reverted the 6.6.0 release down to 6.5.2 one. Time spent: 57.5h

Fabian Krol

Repricing staking contract shares Time spent: 37:15h

Week 37 (12 Sep - 18 Sep)

Hans Svensson

Most of the week was dedicated to AE Universe and a visit to the Crypto Castle. Workshops with Anstalt and Anstalt + Foundation, preparing presentation, and attending.
Time spent: 41h

Metin Akat

Preparation for the conference and online participation. Time spent 13h

Sean Hinde

Worked on simplifying the rocksdb / erlang interface in a search for the 6.6.0 memory leak. Time spent: 40:50

Ulf Wiger

Ulf went to München for workshops, and then attended the Universe Two conference. Time spent: 41.5 hrs

Fabian Krol

Repricing staking contract shares Time spent: 8:40h

Dimitar Ivanov

Dimitar was attending the Munich workshops and the Universe two ones. Time spent: 40h

Week 38 (19 Sep - 25 Sep)

Hans Svensson

Started working on tasks for the CERES hard-fork; GH3674 - fixing delegated signatures for non-existing accounts, and GH4009 - calling contracts by name.
Time spent: 12h

Metin Akat

Small improvements to UI. Time spent: 5:45h

Ulf Wiger

Ulf continued working on GC, and investigated the memory growth issue. Time spent: 41.5 hrs

Fabian Krol

Treasury contract; Staking contracts refactoring Time spent: 25:30h

Sean Hinde

Worked on re-working the rocksdb / erlang interface to remove the complex C++ memory management code and use the low level C api to rocksdb. Time spent: 41:00

Week 39 (26 Sep - 2 Oct)

Hans Svensson

Continued the work on calling contracts by name, this is non-trivial, we will need quite a few new tests.
Time spent: 8h

Ulf Wiger

Ulf continued working on GC and the memory growth issue. He also started looking into am issue related to State Channels. Time spent: 36.7 hrs

Sean Hinde

Continued re-working the rocksdb / erlang interface to remove the complex C++ memory management code and use the low level C api to rocksdb. Time spent: 38:10

Fabian Krol

Treasury contract; Staking contracts refactoring Time spent: 30:50h

Dimitar Ivanov

Dimitar resumed work on postting commitments on parent chain. Time spent: 31h

3 Likes