Skip to content

Channel Integration #2878

@ndzik

Description

@ndzik

We would like to integrate Perun channels according to its specification into Neuron and propose our idea in this issue.

The things that have to be integrated are the following:

  1. Wallet Callback handler (WCH):
    Essentially a RPC service exposed by the Neuron wallet. To aid the implementation of these endpoints we will provide perun-wallet-wrapper. This repository will contain the interfaces and types as well as their conversions. We will also provide a higher-level interface to make it even easier for integration.
    Question remaining: How would we expose any RPC interface in Neuron and how does it fit into your current architecture?

  2. Channel Service Adapter (CSA):
    A client implementation calling the endpoints of the perun-channel-service. The client implementation will also be contained in perun-wallet-wrapper.
    Additionally, we will create a high-level interface, which the client implements. This eases splitting up the work-packages and lets someone else implement a UI against the interface.

  3. UI tying together CSA & WCH:
    Naively, we think of a tab within Neuron presenting the possibility to use Perun channels to the user.
    Actions a user can take:

    • Opening a channel
    • Updating a channel
    • Closing a channel
    • Bonus features:
      • Listing all open channels
      • History of all channels

    The WCH might receive notifications from the externally running channel-service. E.g.: The channel-service requests a signature on some payload. This would call an endpoint in WCH and it would be nice if the WCH would ultimately propagate this signing request to the user. Might be via a popup or something else.
    Actions triggered externally by the channel-service like this might be a component of their own. It is also possible to use dependency injection and create an interface for a notification service which the implementation of WCH expects and calls when necessary. This is up for discussion.

Eager to see your replies (:

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions