Skip to content
Moses Narrow edited this page Jul 30, 2023 · 46 revisions

Welcome to the Skywire wiki!

Organization


Setup

Software

Hypervisor

VPN

Socks Proxy

Skyfwding

Dmsg

Skyminer

Android

Other

Old Documentation


Skywire Overview

Skywire is a Software Defined Network. It separates the Data Plane from the Control Plane of the network. Skywire currently functions as an overlay network that allows nodes to establish routes to each other by PubKey but it will be able to establish local networks that function independently of the Internet. There are several prototype applications built that use the Skywire network such as:

Skywire Data Plane

The main software module making up the Skywire network is called the skywire-visor.

  • A visor is identified by a unique PubKey.

Data or connections may be encrypted to the visor's public key, which can then be decrypted with the secret key.

The public key of the visor represents a dmsg client. Dmsg clients can connect to each other over the dmsg network, and as such the visor is able to connect to the services directly over dmsghttp when using a dmsghttp-config.

  • A visor acts as a gateway to the Skywire network

Visors can establish transports to other visors and request or provide routes to remote visors over the Skywire network.

  • A visor can host apps and exposes an API for applications to use the network.

Current applications include:

  • vpn server
  • vpn client
  • proxy server
  • proxy client
  • skychat

Skywire Control Plane

The Skywire Control Plane is responsible for establishing routes between Skywire visors. It consists of separate services. The deployment is currently documented in skywire-deployment:

The visors requests routes from the control plane ; the control plane is responsible for:

  • Determining efficient paths through the network and establishing a route by delivering routing rules to the visors along a route.

The control plane, specifically the transport discovery, maintains an overview over the network topology by storing the transports between visors that currently exist in a given network. The record of these transports is not persisted, except locally in transport logs, which are used for reward calculations.

Clone this wiki locally