Technical documentation

Rhizome API contains links to the authoritative technical documentation of the Rhizome HTTP REST API, which resides in the source code of the Serval DNA software, and should be used in preference to the older documents on this wiki.

Rhizome guarantees that payloads will remain intact wherever they are transported

Rhizome makes no guarantees about delivery time or eventual arrival

Rhizome makes its best effort to transport payloads to wherever they are wanted, subject to the constraints of the network (topology, bandwidth) and its nodes (storage, battery), without favouring any payloads above others of equal kind

Rhizome is neutral with respect to originating and receiving nodes, applications, and payload content

Rhizome uses cryptography to preserve the integrity and privacy of payloads

Rhizome protects anonymous senders by not storing or transmitting information that may allow senders to be traced, even on the originating device

Rhizome functions without centralised infrastructure such as well-known servers or a persistent network connection

Rhizome can be configured to use central servers to improve efficiency and reach

Rhizome applications

Users do not use Rhizome directly, but indirectly via applications which use Rhizome as their data transport

Architecture

The name "Rhizome"

Once a file is inserted into Rhizome, it can be notoriously difficult to eradicate. This is analogous to a biological process of vegetative reproduction: a rhizome is an underground plant stem with the ability to send out shoots which develop into new plants. If a rhizome is cut into smaller pieces, each piece can grow into a new organism. Anybody who has battled the incursion of couch grass into their garden knows how obstinate a rhizome can be.

Prototypes

The Rhizome Retriever was the first prototype of the manifest-payload distribution system.