State of Development: Week of July 2nd, 2018

Last week saw many exciting developments!

Firstly, we have successfully tested a deployment of the first iteration of Bitcoin-NG consensus. Initially our plan was to create a mini-release dedicated exclusively to Bitcoin-NG. However, later a decision was made not to invest time in creating a formal release and deploying it to testnet, but instead to deploy the top of our Epoch’s master branch that contained Bitcoin-NG to a newly created testnet-like environment where we could monitor and test the behavior of Epoch nodes.

Release 0.17.0 was created according to the usual schedule on Friday 06.07 and in addition to Bitcoin-NG the release included the following changes:

Chain state is stored in the database in a more compact way.

The way the chain is built has been changed: an elected leader generates Key and Micro blocks. It is followed by new candidates generation modules, new serialized formats and an enhanced sync layer.

It is possible to configure header arguments passed to the Cuckoo miner executable to support CUDA miners (mining > cuckoo > miner > hex_encoded_header)

Improved HTTP API with proper checks for key sizes.

Configuration of miner process niceness is possible (mining > cuckoo > miner > nice)

Channels’ websocket API is enriched with deposit and withdrawal sequences.

As we wrote in our previous weekly update, some of our core dev team members attended the “Off the Chain” workshop dedicated to state channels in Berlin. After the workshop they spent a productive day in the Ape Unit’s office discussing API’s used by the æpps as well as future features that could benefit æpps developers.

Our next sprint will be mainly dedicated to filling the missing pieces of our Bitcoin-NG implementation (e.g., Proof of Fraud is still work in progress), working on re-connection logic for state channels, improving performance and testing. But more on this next week!