æternity Dev-Log: 17–02

Change log summarizing current development of the æternity blockchain up until mid of July.

As of the beginning of May 2017, Zack Hess, our tech lead, was ready with the implementation of essential parts of the blockchain. These include;

Handling accounts and keys. Exchanging p2p peers. Syncing blocks. Signing, bundling transactions and mining blocks. Channels, Oracles, Governance. Exposing HTTP interface for all transactions: accounts, channels, payments. Persistence layer. Trie itself and wrapper covering: accounts, channels, existence, oracles and governance. Important use cases that require optimized blockchain design like lightning payment. All of that supported by initial version of documentation and tests.

Around that time the team started growing! We brought many years experience in Erlang, the technology that is powering the æternity blockchain, together with all the necessary skills to build reliable, industrial-grade chain.

The blockchain is now regular OTP app and rebar3 manages deployment. We optimize configuration and instrumentation of the code. We have outside help to proof correctness and optimize our implementation of trie (detailed review is coming!). Our integration tests are now migrated to nose python framework. We introduced multiple node test deployments to test lightning payments. All of above managed from Makefile and we try to go along the best coding practices. We are re-doing HTTP API’s to talk in more verbose json objects and we back it up with swagger with all the goodies that swagger brings. We slowly optimize and refactor internal services for syncing, transactions. We got great community input and contributions around syncing blocks between nodes.

What is up next?

We want to stabilize test framework and get CI running for each PR.

Finish re-factoring of the HTTP interface.

Write lite-node for browsers.

Introduce Markets support in blockchain code.

Please feel free to join the discussion on Slack and/or reach out to Michal to let him know if you are willing to contribute! Joining our Slack is currently by invite only. Get in touch with someone from the team to get an invite.

Michal, Architect.