Releases: hyperledger-labs/go-perun
Kiviuq
Exposure of protobuf converters & SignedState
, abstraction of tests and bug fixes.
Added
- Add Fabric to backend list in README: #377
- Create new type
TransparentChannel
to exposeSignedState
: #389 - Update backend compatibility list in README: #392
- Add MAINTAINERS.md file, Update NOTICE: #394
Fixed
- Fix sub-channel test: #359
- Fix Multi-Adjudicator Subscription: #366
- Use correct identity for client tests: #376
- Fix link to white paper in README: #379
- Fix linter copyright year checking in CI: #389
- Fix failing unit tests: #399
Changed 💥
- Abstract multiledger test, making it usable by backends: #355
- Abstract fund recovery test, making it usable by backends: #370
- Abstract virtual channel test, making it usable by backends: #375
- Expose protobuf converters: #384 #393
- Use absolute module path in wire.proto: #383
- Create AppID Type to generalize app identifiers: #378 💥
Legend
- 💥 This is a breaking change, e.g., it changes the external API.
Janus
Io
Injectable wire encoding and a protobuf
wire encoder.
Added
- ✨ Injectable wire encoding #233: The encoding used for messages that are sent across the network is now injectable.
- ✨ Protobuf wire encoder #311: A wire encoder based on
protobuf
has been added #318. - Minor additions: Introduce
Asset.Equal
#279, export proposer index #313.
Changed
- 💥 Rename
Address.Equals
toAddress.Equal
#264. - 💥 Revise
Channel.Update
andChannel.ForceUpdate
: #289, #291, #306. - 🚚
pkg/io
migration: #256, #271, #285, #287. - 📝 Update README to include references to existing backends #314.
- 🚸 Minor usability improvements: #268, #278, #315.
- 👷 CI updates: #260, #274, #276, #277.
- ⬆️ Use
LatestSigner
in Ethereum contract backend and don't setGasLimit
by default, so that EIP1559 TXs are sent #322.
Fixed
- 🐛 Fix a bug causing
Channel.Watch
to not work correctly for sub-channels and virtual channels #251. - 🐛 Fix bugs causing
ContractBackend.confirmNTimes
to block indefintely or fail in some rare cases: #254, #309. - ✅ Improve test stability: #310, #319.
Security
- 🔒 It is now checked that assets are not changed during a state update, which could otherwise cause a channel to become unfunded #304.
Hyperion
Reorg-resistance for the Ethereum backend and support for external Watchtowers.
Added
- ✨ Ethereum backend: Reorg resistance #19: The Ethereum backend now lets the user specify after how many blocks a transaction or an event should be considered confirmed.
- ✨ Watcher interface #172: The watcher logic is now injectable. The adjudicator takes a watcher instance as a setup parameter. This enables using remote watcher services. A local watcher implementation is provided.
Changed
- ⬆️ Update go to v1.17 and go-ethereum to v1.10.12.
- ✅ Extend support for additional blockchain backends by revising the generic tests (e.g., #225, #227, #228).
- 🚸 Improve usability (e.g., #124, #144, #196, #204, #240).
Fixed
Ganymede
Virtual 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.