State Channels bi-weekly development update - Mid October 2019

This is a bi-weekly update of all things concerning the protocol design and
reference implementation of State Channels.

The focus of the current iteration is the hardening of the implementation. Thus
there is lots of work on the test suites and a new test approach.

Thanks to the SC contributors @dimitar.chain, @uwiger,
@gorbak25, @aleksandar.chain and @bot.

Thanks to Thomas Arts who helped getting the team started on using
property-based testing via Quickcheck to further harden the

The previous report was End of September 2019.

Port of AE Universe Demo Changes to master

Implementation: PR #2801

The accumulated changes which were previously made to a dedicated branch have
been ported to the master branch. Thus the next minor release v5.1.0 will
include these changes. For more information on these changes take a look at the
report from End of September 2019.

System Test Hardening

Implementation: PR #2832, PR #2865, PR #2905

The aeternity project runs a set of long-running system tests to stress test the
latest master branch. We’ve identified a few bugs in the test setup as well as
actual bugs in the implementation which have been dealt with. The result are
more stable system tests which indicate a stabilized implementation.

Integration Test Improvements

Implementation: PR #2810, PR #2824, PR #2827, PR #2838, PR #2844, PR #2875

The integration tests are continuously being improved. More tests were added and
existing tests modified to improve coverage and fix incorrect assumptions. Most
changes have also led to simple bug-fixes in the process.

Refactor FSM message log and ensure early start of chain watcher

Implementation: PR #2872, PR #2879

The order of log messages has been fixed. Moreover, the requirement, that the
chain watcher is started before performing actions which depend on it, is
handled by providing a helper function to ensure the ordering. This prevents
race conditions which were seen before.

Fix client re-establish notification when connecting to existing channel

Issue: #2854
Implementation: PR #2902

The channel_id was missing in the report which was confusing and required
clients to wait longer for the id to be known. This has been fixed.

Unify the WS and FSM client messages

Implementation: PR #2833

This PR unifies the info reports sent from the WS client and the FSM.
This results in a reduction of the amount of data copied between processes
when opening a channel and removes gproc from the FSM suite when opening a channel.

State Channel UAT Test Suite

Implementation: PR #15, PR #16, PR #18

The UAT has moved towards using the ExUnit testing framework which is a
pre-requisite for setting up CI. The goal is to keep the UAT and feedback from
it as close to the aeternity master branch as possible as well as offload
@aleksandar.chain from having to run the UAT manually.

Moreover, the further development of the UAT has been specified in issues on Github,
so anybody is welcome to chime in and comment.

Any other interesting bits

Implementation: PR #2825