Ganymede
Pre-releaseVirtual channels. And some other additions.
Added ✨
- Virtual Channels (#83, #114, #119, #123): Go-perun now supports virtual channels. A virtual channel is a channel that is funded and settled completely off-chain and therefore does not incur any on-chain transaction fees.
- Generic event subscription (#36, #86, #89, #94): In preparation for implementing a reorg-resistant event subscription, we implemented a generic event subscription that can be used across the whole library.
- Tutorial announcement (c8cff7cb): We now have a developer tutorial at http://tutorial.perun.network.
- Named errors (429a8934, #10, #11, #26, #34, #80): Specific error types help the library user to identify the cause of an error.
- Register asset at runtime #124: It is now possible to add assets to the Eth funder at runtime.
Gatherer.OnFail
(e3729a6a),
Test wallet (12c78d33),
GitHub CI (#3),
ConcurrentT.WaitCtx
(#112),
Eth sim backend auto mining (#104)
Changed 🚧
- [:boom:] Asset holder validation (#111): Asset holder validation does no longer include adjudicator validation.
- Current state in HandleUpdate #33: The update handler now receives the current channel state as a parameter.
- Funder usability #74: Streamlined Eth funder setup.
- 2021 updates (2212847d),
Update generate script (3f81e47c),
Update links to HLL (#6),
Update security disclaimer (#14, #51),
Delete gitlab templates (#24),
Dependency update (#30),
Document parameters ofNewLedgerChannelProposal
(#43),
CI speed-up (#44),
Refactor Eth channel errors (#88),
Log message type (#96)
Fixed 🐛
-
Cache first channel update (#4, #129): Fixes a bug where a client receives channel messages before completing the channel setup.
-
Subchannel off-chain settlement #59: Sub-channels had to be disputed on-chain before they could be settled. Sub-channels can now be collaboratively settled off-chain.
-
ERC20 depositor nonce mismatch #134: Fixes an issue where the ERC20 depositor sometimes was not incrementing the transaction nonce correctly.
-
Unitialized funder variable (af207adb),
EndpointRegistry retry and timeout (28e535bb),
Watcher return (cf9279c9),
Thread-safe test wallet #17,
Withdraw variable capture #50,
NewRandomLedgerChannelProposal
consistency #55,
Enable logging per default in package client #66,
StabilizeBlockTimeout
test #90,
Fix state hash test #120,
Ensure custom error progagation #126
Security 🔒
- Ensure correct params ID after deserialization #60: Parameter deserialization did not assert that the encoded channel ID is correct. This is now fixed.
- Signature verification for sub-channel funding and settlement #61: Sub-channel funding and settlement requires an automated update in the parent channel. The signatures on that automated update were not correctly verified. This is now fixed.