Skip to content
This repository has been archived by the owner on Jan 6, 2020. It is now read-only.
David Irvine edited this page Jan 17, 2014 · 17 revisions

Welcome to the MaidSafe-Private wiki.

MaidSafe Private Library

Description

This library contains local data storage management and network managed data types. In addition this library includes the Client manager API. This is an installed application that is responsible for checking for upgrades (in real time), installing and testing upgrades as well as starting and restarting any vaults (on failure or planned). The Client Manager manages private keys for vaults and passes keys through a local TCP network. This is a one-way mechanism and any vault compromised cannot read the keys of the local disk.

Prior to Open Sourcing, the library "Private" was used internally to maintain patented code that could not be released to the public (MaidSafe patents), so this library will potentially split and create new repositories or be subsumed into existing repositories.

Features

  • Fundamental types managed in a central place (debatable feature)
  • Separation of responsibility for private keys and vault processes

Programming languages

Core

C++11 compatible with GCC (4.7 and above), Clang (3.3 and above) and MSVC 2012 (with no dependency on CTP releases). Tested on Windows 32/64 bit, Linux 32/64 bit (dependent on GCC version) and OSX (Mountain Lion and above).

Status

This library is considered BETA quality and is provided with a test suite and QA suite. This can be considered for use in production quality systems at this time.

Roadmap

  • Seperate the library from the Client Manager Application (new repository)
  • Switch from TCP to secured IPC and remove IPC connection on vault start
  • Allow upgrade manager component to start sacrificial vault and monitor rank, only installing upgrade for all vaults if the rank of the sacrificial vault stays on par with existing vaults or improves. This allows the network to add a QA/test mechanism to code upgrades and refuse those upgrades that do not measurably improve the network