Libraries

From SAFE Network Wiki
Jump to: navigation, search

The SAFE Network is comprised of several individual libraries. The following section, aimed at the more technical reader, provides a more detailed explanation of what role each library performs and how they fit together.

The following diagram provides an overview of the SAFE Network stack:

Stack.png

The code for each library is available in MaidSafe's GitHub repositories.

The core libraries are:

  1. Crust - Reliable P2P network connections in Rust with NAT traversal. One of the most needed libraries for any server-less, decentralized project.
  2. Routing - A secured DHT, based on a Kademlia-like implementation, that has group-based consensus decisions.
  3. Vault - An autonomous network that performs many functions including: data storage, data management, publishing and sharing. Vaults receive responsibilities for anything with a network address from the routing layer.
  4. Encrypt - Self-encrypting files (convergent encryption plus obfuscation) which can be accessed via either a REST or POSIX API. The REST API offers simplicity (GET, PUT, POST, DELETE), while the POSIX API provides more granular access.
  5. Client - The main entry point to the network, providing REST API access, POSIX API access and more (listed below)
    • Messaging - This module handles communication between public identities in the network. All communication between MPID's (MaidSafe Public ID's) in the network are private and digitally signed.
    • Compute - Still to be implemented, this module will enable the processing of distributed computing actions, leveraging the massive processing capability of the decentralized system.
    • Safecoin - A cryptographic network token that is integral to the network, rewarding and incentivizing all network contributors. API access will enable balance check, transfer, escrow and multi-sig functionality.
    • Self-authentication - A mechanism that enables users to create accounts on the SAFE Network and log in from any computer without the need or knowledge of third parties.

Access to all library APIs is completely unrestricted to app developers and SAFE apps will access the network via the NFS, Messaging and Compute modules.