StandaloneServer

Implementation.StandaloneServer History

Hide minor edits - Show changes to output

Added line 34:
** name - string
Changed lines 37-47 from:
** units???

----------
* '''Exchange''' - graph edge
** from_account - AccountHalf
** to_account - AccountHalf
** system - AccountSystem

* '''AccountHalf''' - one partner's perspective of a shared account
** name
- string
to:

* '''Exchange''' - an offer to transfer value between two or more of a User's accounts
** user
** accounts - set
of accounts which are all exchangeable-between

Changed lines 18-22 from:
The routing engine should operate on abstract graphs instead of concrete account and exchange objects.
That way, we can group accounts, and do routing through the graph of groups using the same engine we use
for graphs of accounts. 
Routing through graphs of groups would recursively route through each group as needed.

to:
''Where's the transaction engine?''
Changed lines 24-29 from:
* '''Exchange''' - graph edge
** from_account - AccountHalf
** to_account - AccountHalf
** system - AccountSystem

* '''AccountHalf''' - one partner's perspective of a shared account
to:
* '''AccountSystem''' - interface to accounts system
Deleted lines 25-27:

* '''AccountSystem''' - interface to accounts system
** name - string
Changed lines 27-46 from:
to:
** login/authentication data

* '''User''' - user of an AccountSystem
** name - string, must be unique to this Ripple server (in anticipation of user@server addressing in distributed protocol)
** accountsystem

* '''Account''' - a User's account with another User
** owner - User who this account is kept for, who controls the account
** partner - the other User; this account tracks obligations between the owner and the partner
** units???

----------
* '''Exchange''' - graph edge
** from_account - AccountHalf
** to_account - AccountHalf
** system - AccountSystem

* '''AccountHalf''' - one partner's perspective of a shared account
** name - string

Added lines 66-67:
The routing engine should operate on abstract graphs instead of concrete account and exchange objects.  That way, we can group accounts, and do routing through the graph of groups using the same engine we use for graphs of accounts.  Routing through graphs of groups would recursively route through each group as needed.
Added lines 1-60:
!!! Standalone Server Design

Three layers:

'''Raw network/graph data model'''
- Holds account and exchange (link) data provided by accounts server.

''interfaces with''

'''Routing topology'''
- Organizes graph into a routable topology.

''interfaces with''

'''Routing engine'''
- Computes routes.

The routing engine should operate on abstract graphs instead of concrete account and exchange objects.
That way, we can group accounts, and do routing through the graph of groups using the same engine we use
for graphs of accounts. 
Routing through graphs of groups would recursively route through each group as needed.

!!!! Raw network/graph data model

!!!!! Data objects

* '''Exchange''' - graph edge
** from_account - AccountHalf
** to_account - AccountHalf
** system - AccountSystem

* '''AccountHalf''' - one partner's perspective of a shared account
** name - string

* '''AccountSystem''' - interface to accounts system
** name - string
** callbacks to accounts system (see [[Implementation/ClientAPI]]) - URLs

!!!! Routing topology

!!!!! Business objects

* '''Node''' - routing node, may be an account, a group of accounts, a group of groups, etc.
** get_next_directions(targets) - list of potential next nodes, with distance to each target and priority (from accounts system) for each
** get_pathset_to_node(next_node, amount) - set of account paths with amount available at next node for each

!!!!! Data objects

No grouping for now.

* '''RoutingEntry''' - distance between two nodes
** source node - AccountHalf
** destination node - AccountHalf
** distance - integer

!!!! Routing engine

!!!!! Business objects

* '''PathSet''' - takes source node list, destination node list, and amount, and generates a set of paths between them with the indicated available credit.