State of Development: Week of May 21st, 2018

In accordance with our schedule, this week we have delivered a new release that introduces a number of improvements that impact mining, state trees, synchronization protocol and API.

The following is a detailed overview of the changes that the dev team managed to implement to the æternity protocol:

Changed the miner reward to 10,000,000,000,000,000,000 atto-æternity-tokens. “Atto-tokens” may not be the best name for AE’s “satoshis”. If you have a proposal on how to refer to the smallest fraction of an AE, share it in this dedicated topic in the Forum.

Moved contract account balances to account state tree, this also removes height and contract ID from contract state trees.

Removed unneeded height from the account object in the block state.

Changed the format of the state channel’s on-chain close mutual transaction. This impacts consensus.

Added miner’s account in block header, removing Coinbase transactions. This addition also: 1. Removes the capability to query from the HTTP API which blocks were mined by a specified miner. 2. Moves the assignment of the block mining reward to the miner to after the application of the txs in the block.

Removes the capability to query from the HTTP API which blocks were mined by a specified miner. Moves the assignment of the block mining reward to the miner to after the application of the txs in the block. All the log lines related to the synchronization protocol are now redirected to the new log file epoch_sync.log instead of epoch.log. Log lines with category info and up will still be directed to the console.

Stopped using the hashes of unsigned transactions and now use the hash of the signed transaction instead. This impacted following: 1. reduces the memory footprint of the system (removes one index). 2. affects the API by removing the transaction hash when constructing unsigned transactions. 3. affects the API by returning the hash of the signed transaction in all other applicable places. The latter should not affect users of the API as all transaction hashes are now constructed from the signed transaction. 4. enhances user HTTP API with fine tuning paths for generating account balance and transactions.

reduces the memory footprint of the system (removes one index). affects the API by removing the transaction hash when constructing unsigned transactions. affects the API by returning the hash of the signed transaction in all other applicable places. The latter should not affect users of the API as all transaction hashes are now constructed from the signed transaction. enhances user HTTP API with fine tuning paths for generating account balance and transactions. Enhanced user experience for Channels’ websockets with broadcasting co-signed on-chain transactions to participants before posting. This allows users to track the progress of transactions as well storing them locally in case of conflict resolution.

Removed deprecated http API endpoints block-by-height and block-by-hash and instead use the endpoints as defined in swagger.yaml.

On æternity’s Incoming Mainnet Launch

From today on, we want to update you on our weekly development with a rolling estimate for a stable release candidate of our Mainnet. æternity has entered the final stage of development and progress can be followed here in our project planning and management tool.

Implementing Bitcoin-NG has been an important decision for the composition of the æternity protocol. Based on early feedback of our æpps development team, which has grown to nearly twenty people, we realized the importance of on-chain scalability in terms of user experience within æpps. We have spend time with the inventors of Bitcoin-NG, studied the technical whitepaper and finally started to change our consensus mechanism towards Bitcoin-NG.

This process took time, which is reflected in our team growth with new hires and additional tasks that pushed our prior estimate for our release candidate slightly behind.

While the last features get implemented and tested we have also started to contact several companies, Universities and blockchain professionals around the world in order to start auditing every part of our protocol. Within the next few weeks we expect them to take a deep dive into every part of our implementation, trying to find critical issues.

The scope of the work resulting from the different auditors is a rolling estimate, as unexpected issues can appear.

Based on their reports, we will continue to add new tasks to our project planning tool and inform you transparently about every single step towards Mainnet.

We will do this without compromise as security and reliability is our top priority.

We want to thank all of our community members and contributors for their ongoing support and would like to encourage all of you to join us in this exciting time of launching æternity. If you have technical expertise, you can support us by testing the current release. We also appreciate referrals to potential auditors or auditing companies in the blockchain space. If you are non-technical, it’s time to spread the word, try out our æpps and provide us with as much feedback as possible.

Progress on tasks is updated on a daily basis and the current projection for closing all pending tasks is end of July.

To estimate this, we are using Pivotal Tracker that compares the current backlog against our averaged velocity and based on this data calculates the approximate date that all tasks will be completed.

If you would like to know more, please join our meetup organised by Erlang Solutions on June 4 in Stockholm, where we will be talking about Bitcoin-NG and the challenges we have encountered.

Interested in æternity? Get in touch:

GitHub | Forum | Reddit | Telegram | Twitter | Facebook | Mail