Zone manager

A zone manager is a component part of Kchannels used as an onboarding tool. It is used to facilitate channel creation and any updates requested by the user thereafter. Its job is to facilitate the process of creating and modifying a channel definition, as well as allocating those channels to zones. As a secondary responsibility, a Zone Manager has any Kchannels-side UI required to create the user experience we target.

The reason channel creation and management demand a separate component is that this process demands load-balancing channels and assets between zones, as well as the correct allocation of assets when renegotiating a channel. The simplest architecture for all this is to have a component trusted by our zones orchestrate the process. Note that the user does not have to trust the zone manager, only our zones need to do that.

At present a Zone Manager also contains our simple development user interface for the system, our user authentication mechanism, as well as some tools internally used for channel discovery. Eventually those will be moved out of there in favor of more decentralized solutions we are planning. Currently there can be only a single zone manager, but eventually this limitation will be lifted.