Channel

Subprotocol name: ripple-channel.

For an explanation of this subprotocol, see Advertisements.

Channel List Request

{

    "type": "channel-list-request",
    "request-id": (integer)

}

Channel List

{

    "type": "channel-list",
    "request-id": (integer)
    "body": [
        (channel data structures)
    ]

}

Channel Data Structure

(string)

Channel Subscribe

{

    "type": "channel-subscribe",
    "body": [
        (channel data structures)
    ]

}

Channel Unsubscribe

{

    "type": "channel-unsubscribe",
    "body": [
        (channel data structures)
    ]

}

Channel Ad

{

    "type": "channel-ad",
    "from": [
        (list of nodes on the sending host that are potential intermediaries 
        to the ad's source for interested nodes on the receiving host)
    ]
    "body": {
        "content": (URI),
        "source": (Ripple ID),
        "channels": [
            (channel data structures)
        ]
        ("min-amount": (decimal),
        "units": (URI),)
        ("onion": (routing onion data structure),)
    }

}

Notes:

  • content URI should be HTTP-accessible and contain the content of the ad, so hosts don't have to transfer the same ad content over and over
  • URI also acts as ID for the ad
  • To save bandwidth, a host is not required to send the same channel-ad to a node (on another host) more than once. (Same means same URI.)
  • Perhaps there needs to be a way to address channel-ad to multiple nodes on the same host simultaneously in a single message...?