State Channels bi-weekly development update - Mid November 2019

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

The focus of the last iterations has been the hardening of the implementation,
which has resulted in many bug-fixes in this last iteration. Specifically @hanssv.chain
has extended the coverage of state channels through Quickcheck drastically
and found bugs in the process. Always a great contribution :slight_smile:

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

Thanks to Thomas Arts and @hanssv.chain who are both continuing to help expand the
property-based testing coverage via Quickcheck.

The previous report was Early November 2019.

Replace state password with unique channel id

Implementation: PR #2911

The state password has been replaced by an auto-generated id. This id acts an authentication
token for clients when reconnecting to a channel and is used internally to encrypt the channel
state. This change removes complexity from the websocket protocol while increasing stability
of the reconnection process.

Add meta info support for all offchain updates

Protocol: PR #439
Implementation: PR #2992

The meta info field was previously only supported for update operations. This change expands on that
by also supported deposit and withdraw operations.

Propagate noise session error to the client

Implementation: PR #2954

A client would receive a generic error when the noise connection setup between FSMs experience problems.
This change improves this by providing a client with a more descriptive error in such cases.

Improve noise stability and log errors

Implementation: PR #2976

The noise connection setup will retry upon failure a few times to cope with intermittent network issues.
This also improves the testing setup where such intermittent issues led to failed test runs.

Bug-fixes for isses found during testing

Protocol: PR #438
Implementation: PR #2968, PR #2995, PR #2996,

Various subtle bugs where fixed which were found through property-based testing.

Integration Test Improvements

Implementation: PR #2993

The integration tests are continuously being improved. Still we are focusing on fixing
intermittent errors which are hard to reproduce but get in the way of all
contributors when they occur during testing in CI.

Protocol Improvements

Protocol: PR #2985

General improvements to the documentation of the SC protocol.

State Channel UAT Test Suite

Implementation: PR #26, PR #29, PR #30, PR #31

The initial CircleCI configuration has been merged and is working such that new PRs can be verified now.
This improves reliability of new PRs greatly. Following that the UAT has seen lots of general improvements
through refactorings of the scenario API and adding support for cancel and malicious_close.

5 Likes

Wow, thank you so much, dear Tino! I really love your written updates - they’re comprehensible and even understandable for people like me who are not that deep in this subject! :slight_smile: