State of Development: Week of July 30th, 2018

The new release — 0.19.0 — is out!

The last sprint has produced a release with a long-awaited functionality for contract creation and their execution in state channels. The release was successfully deployed to the testnet and its binaries and the code can be found here.

We are still working on a WebSocket-based API, scheduled for the next release, which will give clients the ability to use this feature. After this functionality is completed, you will be able to create and execute smart contracts in a state channel established between two parties.

The contracts will be executed off-chain, meaning very fast! The sky’s the limit!

In addition, this release:

Removes the key_hash field from micro blocks.

Fixes a bug when a trusted peer changes its IP, where before it was crashing instead of just ignoring the change.

Fine-tunes deposit and withdrawal channel transactions being produced for the user.

Adds export command to epoch. The chain can be exported in a binary format (Erlang disk_log of serialized blocks) using the command bin/epoch export FILENAME. The first record in the log is a map containing the genesis hash, the hostname and the date and time; the blocks are stored from top to genesis.

Refines status code 400 as 404 for call object retrieval API /tx/{tx_hash}/contract-call when transaction still pending.

Adds a database table for caching state channel data on disk.

Fixes commitment hash calculations in our naming system, to be Hash(NameHash(name) + name_salt) instead of Hash(Hash(name + name_salt)).

Enriches channels WebSocket API with functionality for getting balances and proof of inclusion.

Expands race detection in channels and adds an error_code field to the channel protocol error messages for future improvements in error handling. Change PoW to 2³⁰ node graph.

The scope of the next sprint is finalizing Proof of Fraud for Bitcoin-NG, a WebSocket API for smart contract execution in state channels and Sophia’s support for oracles.

As a reminder, the best place to follow the development progress towards Mainnet launch (apart from GitHub) is the Pivotal Tracker.