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
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
.