Components

In a Ripple system three main software modules can be distinguished:

  • Database The database is where data about each user is stored
  • Transaction engine The transaction engine communicates with the front end and performs queries on the database.
  • Front end The front end communicates with the user and sends or receives from the transaction engine.

Software modules may be combined in different ways and be distributed in different machines (Distributed architectures comparison P2P, Clusters ...). In current implementations all three software modules run in a central server.

Simple system

Simple system
Simple system

Hypothetical interserver Ripple system

Complete system

Distributed architectures comparison P2P, Clusters ...

Complete system

Legend

Components

Description

Implementations

Alice

User
(see definition)

Node

User's node
(see definition)

Server

Server
(see definition)

A Ripple server is an application that stores data for each node and manages interactions between nodes. Users connect to the server to interact with their node. Servers may interact with other servers through Ripple Distributed Protocol (not implemented yet). (e.g. Ripplepay.com)

Client

Client
(see definition)

Client Application: (i.e. facebook, ebay ...)

No client has been created or adapted to communicate with Ripple Servers yet.
A list of potential clients exists.

Interfaces

Components connected by the interface

Description

Implementations

Ripple Client API

Ripple Client API

Client - Server

This protocol allows a Client application to access all functions provided by a Ripple Server:
i.e. Create an account, set credit limits, make a payment, etc...

Partially implemented.

Ripple Client API

Ripple Merchant API is a subset of Ripple Client API

Client - Server

This protocol allows a Client to access payment services provided by a Ripple Server.

It may be implemented via OpenTransact.

Ripple-Protocol

Ripple Distributed Protocol

Server - Server

This protocol allows interaction between nodes that are hosted in different servers.

Not implemented, a lot of work done

Direct connection

User connection

User - Server
or
User - Client

Direct connection

User Interface

User - Browser

User interface

Diagram source here