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 still the hardening of the implementation.
Using property-based testing via Quickcheck has shown a lot of potential
and helped identify a few bugs already. This effort will be continued to get
better coverage of the protocol.
The previous report was Mid October 2019.
Improved job handling for Websocket connections
Implementation: PR #2805
This change makes the SC WS handler release the jobs worker after spawning
(or reconnecting to) the fsm. Before this change, the handler would hold
on to the worker until terminate() which meant that the size of the jobs
counter pool effectively limited the number of currently active state channels.
Moreover, a race condition during job registration could lead to more jobs
running than the limit would allow.
Added ability to cancel update initiated by self
The existing internal functionality for aborting operations has been improved to
provide the ability to explicitly cancel an operation while it wasn’t fully
authenticated. This gives clients more control over the communication and flow
with other clients.
Added optional fees to on-chain transactions
Previously the FSM would calculate the fee for all transactions based on the
current gas price and minimume miner gas requirements. Now clients can set
custom fees for submitted transactions giving them yet more control.
Refactored outer FSM API functions
Implementation: PR #2907
Findings during property-based testing concluded that the entry API functions
are hard to mock and test. Thus, they have been refactored and moved outside the
actual FSM which eases their use during testing.
Improved checks for generalized accounts
Implementation: PR #2950
The checks for making sure generalized accounts use their respective sandbox
have been improved which prevents accounts to act as non-generalized accounts.
Integration Test Improvements
The integration tests are continuously being improved. 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.
State Channel UAT Test Suite
There is ongoing work to get the UAT running on CircleCI such that feedback can
be received whenever the test code or target changes. This is a major setup
which is why it is still going on.