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 | ||
|
| |
Hypothetical interserver Ripple system | ||
|
|
Legend
Components |
Description |
Implementations | ||
User |
User's node |
|||
Server |
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 Application: (i.e. facebook, ebay ...) |
No client has been created or adapted to communicate with Ripple Servers yet. | ||
Interfaces |
Components connected by the interface |
Description |
Implementations | |
Client - Server |
This protocol allows a Client application to access all functions provided by a Ripple Server: |
Partially implemented. | ||
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. | |
Server - Server |
This protocol allows interaction between nodes that are hosted in different servers. |
Not implemented, a lot of work done | ||
User connection |
User - Server |
| ||
User - Browser |
User interface |
Diagram source here