Routing

Subprotocol name: ripple-routing.

In the following, a routing ID identifies a routing entity that can take an incoming payment on any of its links and convert it to an outgoing payment on any of its other links. A Ripple user on a host may have some accounts that don't convert to other accounts. In that case, the user should form multiple routing entities, so every link in each is convertible to every other link. (This is true for any Ripple routing scheme.) A node may have multiple routing IDs.

Link-State Routing Advertisement

{

    "type": "link-ad",
    "time": (date/time),
    "body": {
        "id": (string)
        "source": (routing id),
        "link-to": (routing id),
        "status": ("up" | "down"),
        "hop-limit": (integer),
        ("fwd-credit": (decimal),)
        ("bwd-credit": (decimal),)
        ("units": (URI),)
    }

}

Routing ID

(string)

Payment Init (extra fields)

{

    "body": {
        "payer-routing-id": (routing id),
        ("max-fee": (decimal),)
        ("path-units": (URI),)
        ("min-penalty-deadline": (time delta),)
        ("min-deadline": (time delta),)
        ("min-guarantee-expiry": (date/time string))
    }

}

Payment Accept (extra field)

{

    "body": {
        "recipient-routing-id": (routing id)
    }

}

Path Query

{

    "body": {
        "payment-id": (string),
        "path-id": [(ordered list of strings)],
        "path-amount": (decimal),
        ("max-fee": (decimal),)
        ("path-units": (URI),)
        "account-id": (string),
        "amount": (decimal),
        "onion": (routing onion data structure),
        "target": (routing id),
        "ttl": (time/date string),
        ("min-penalty-deadline": (time delta),)
        ("max-penalty-rate": (decimal),)
        ("min-deadline": (time delta),)
        "guarantee-expiry": (date/time string),
    }

}

Promise (extra field)

{

    "body": {
        "target": (routing id),
    }

}

Account Data Structure (extra field)

{

    "account": {
        "advertise-link": (true | false),
    }

}