Skip to content

Releases: hyperledger-labs/go-perun

Leda

19 Nov 14:21
f6c5fe9
Compare
Choose a tag to compare
Leda Pre-release
Pre-release

Flexibility in funding for payment channels and basic Layer-2 security.

Added 💥

  • Egoistic funding allows users to wait for their peers to fund before they fund themselves. This change has to be adopted by the Perun backends to be usable (in case of Ethereum): #397

  • Wire authentication for Layer2 communication between Perun clients, using TLS: #402 💥

  • Support for the Stellar backend in README: #408

Changed

  • Update go to 1.22: #406

Legend

  • 💥 This is a breaking change, e.g., it changes the external API.

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.