Skip to main content

Types of architectures

In Silent Network we can distinguish two main use-cases.

  1. The one where the User requests are authenticated and verified by the Network.
  2. And another, where there is no notion of a "User", or the authentication happens not by the Network, but by the Application. Here, the Application Backend authenticates the requests to the Network.

This chapter will cover both designs.

Actors

User - User of the Application

Wallet Provider Frontend - aka WPFE is the frontend part of the Application. We provide WPFE-SDK written in TypeScript to handle Silent Network functionality.

Wallet Provider Backend - aka WPBE is the backend part of the Application. We provide Backend service written in Rust, or Go. It's also possible to use WPBE-SDK written in Rust, or Go and integrate with the Application backend directly.

Node - Server that runs Silent Network Node, in this design, each node will verify the User authentication over the request.

Initiator - One of the Silent Network Nodes that was selected by the WPBE to execute the request. The default strategy of selecting the Initiator by the WPBE is round-robin.

Node Admin - Is the administrator of the server that runs Silent Network Node. The Admin and the server can be external entity.

Network Admin - Is the Administrator of all nodes of Silent Network. Is responsible for changing configuration of it. For example when adding another Application that's going to be a Client for the Network, the Network Admin registers WPBE key in the Network.

User authentication by the Network

Example flow for classic Web2 Application might looks like follows:

No User authentication by the Network

Here the User authentication is out of scope of Silent Network Nodes. This part is covered by the Application itself, or there is no User at all. The Nodes however verify if the request came from the WPBE. Note lack of WPFE SDK in use. The WPBE service, or SDK communicates with the network, without providing User credentials.

Distributed application

For distributed Application, the Application Node will co-hosts the Silent Network Node.

This design also supports Users authentication by the Network Nodes. For brevity we present no-user auth design: