Skip to content

Releases: hyperledger-labs/go-perun

Kiviuq

21 Feb 16:28
ba09048
Compare
Choose a tag to compare
Kiviuq Pre-release
Pre-release

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 expose SignedState: #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

30 May 07:51
11bbe2a
Compare
Choose a tag to compare
Janus Pre-release
Pre-release

Multi-ledger payment channels.

Added

  • Multi-ledger payment channels: #337
  • App channel test: #339

Changed

  • Revise dispute test: #340
  • Enable require in client tests: #341

Fixed

  • Satisfy linter warnings: #342

Removed

  • Remove go-ethereum dependency: #338

Io

25 Feb 14:40
5441eed
Compare
Choose a tag to compare
Io Pre-release
Pre-release

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.
    • Add binary marshalling: #272, #284, #298.
    • Add serializer interface: #297, #325.
    • Change the mechanism for generating ProposalID: #300, #307.
    • Rename message types #305.
    • Extend and refactor message serialization tests: #316, #317.
  • 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 to Address.Equal #264.
  • 💥 Revise Channel.Update and Channel.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 set GasLimit 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

09 Nov 13:12
24757c5
Compare
Choose a tag to compare
Hyperion Pre-release
Pre-release

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

14 Jul 16:22
1fc30ba
Compare
Choose a tag to compare
Ganymede Pre-release
Pre-release

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 of NewLedgerChannelProposal (#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,
    Stabilize BlockTimeout 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.