{"action":"created","comment":{"url":"https://api.github.com/repos/interledger/rfcs/pulls/comments/179952018","pull_request_review_id":110291603,"id":179952018,"diff_hunk":"@@ -0,0 +1,182 @@\n+---\n+title: STREAM: A Multiplexed Money and Data Transport Protocol\n+draft: 1\n+---\n+\n+# STREAM: A Multiplexed Money and Data Transport Protocol\n+\n+ILP/STREAM, or the STREAMing Transport for the Real-time Exchange of Assets and Messages, is an Interledger transport protocol that provides for multiplexed streams of money and data over a virtual ILP connection. STREAM is a successor to [PSK2](../0025-pre-shared-key-2/0025-pre-shared-key-2.md) and takes significant inspiration from the [QUIC](https://tools.ietf.org/html/draft-ietf-quic-transport-10) Internet transport protocol.\n+\n+## Definitions\n+\n+- **Client** - One of the two entities using STREAM. The Client initiates a Connection to the Server using STREAM packets sent over ILP. Because STREAM uses bidirectional streams, the Client may be either the Sender or the Receiver of a given packet.\n+- **Connection** - The session established between a Client and a Server. A Connection may have zero or more Money Streams and zero or more Data Streams.\n+- **Data Stream** - A bidirectional data channel used for structuring data sent over a Connection. Inspired by [QUIC's Bidirectional Streams](https://tools.ietf.org/html/draft-ietf-quic-transport-10#page-66).\n+- **Money Stream** - A bidirectional money channel used for sending money over a Connection. Users of STREAM MAY use a single Money Stream for each Connection or multiple to account for different intended purposes for the value sent.\n+- **Receiver** - The entity that gets a STREAM packet attached to an ILP Prepare and responds with either an ILP Fulfill or Reject packet. The Receiver may refer to either the Client or Server.\n+- **Sender** - The entity that sends a STREAM packet attached to an ILP Prepare. The Sender may refer to either the Client or Server.\n+- **Server** - One of the two entities using STREAM. The Server listens through an ILP account for incoming Connections from Clients. Note that STREAM Servers DO NOT listen for Connections over the Internet, but rather over Interledger. Because STREAM uses bidirectional streams, the Server may be either the Sender or the Receiver of a given packet.\n+\n+## Overview\n+","path":"0000-stream/0000-stream.md","position":21,"original_position":21,"commit_id":"f225bee13ea6c2796f125043e8249aa2ba35fdd1","original_commit_id":"f225bee13ea6c2796f125043e8249aa2ba35fdd1","user":{"login":"dora-gt","id":811594,"avatar_url":"https://avatars1.githubusercontent.com/u/811594?v=4","gravatar_id":"","url":"https://api.github.com/users/dora-gt","html_url":"https://github.com/dora-gt","followers_url":"https://api.github.com/users/dora-gt/followers","following_url":"https://api.github.com/users/dora-gt/following{/other_user}","gists_url":"https://api.github.com/users/dora-gt/gists{/gist_id}","starred_url":"https://api.github.com/users/dora-gt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dora-gt/subscriptions","organizations_url":"https://api.github.com/users/dora-gt/orgs","repos_url":"https://api.github.com/users/dora-gt/repos","events_url":"https://api.github.com/users/dora-gt/events{/privacy}","received_events_url":"https://api.github.com/users/dora-gt/received_events","type":"User","site_admin":false},"body":"**Before** the Relation, I strongly recommend to explain what `multiplexed` or `STREAM` means. What we can do with STREAM. Up to here, I could not imagine what it is exactly.\r\n\r\n- Sending money to multiple addresses using a single connection?\r\n- Sending not only money transfer data but also data that is not concerned with the money transfer?","created_at":"2018-04-08T15:54:13Z","updated_at":"2018-04-08T15:54:13Z","html_url":"https://github.com/interledger/rfcs/pull/417#discussion_r179952018","pull_request_url":"https://api.github.com/repos/interledger/rfcs/pulls/417","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/interledger/rfcs/pulls/comments/179952018"},"html":{"href":"https://github.com/interledger/rfcs/pull/417#discussion_r179952018"},"pull_request":{"href":"https://api.github.com/repos/interledger/rfcs/pulls/417"}}},"pull_request":{"url":"https://api.github.com/repos/interledger/rfcs/pulls/417","id":178936482,"html_url":"https://github.com/interledger/rfcs/pull/417","diff_url":"https://github.com/interledger/rfcs/pull/417.diff","patch_url":"https://github.com/interledger/rfcs/pull/417.patch","issue_url":"https://api.github.com/repos/interledger/rfcs/issues/417","number":417,"state":"open","locked":false,"title":"[WIP] Add ILP/STREAM protocol","user":{"login":"emschwartz","id":3262610,"avatar_url":"https://avatars3.githubusercontent.com/u/3262610?v=4","gravatar_id":"","url":"https://api.github.com/users/emschwartz","html_url":"https://github.com/emschwartz","followers_url":"https://api.github.com/users/emschwartz/followers","following_url":"https://api.github.com/users/emschwartz/following{/other_user}","gists_url":"https://api.github.com/users/emschwartz/gists{/gist_id}","starred_url":"https://api.github.com/users/emschwartz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emschwartz/subscriptions","organizations_url":"https://api.github.com/users/emschwartz/orgs","repos_url":"https://api.github.com/users/emschwartz/repos","events_url":"https://api.github.com/users/emschwartz/events{/privacy}","received_events_url":"https://api.github.com/users/emschwartz/received_events","type":"User","site_admin":false},"body":"Still need to add each of the frame specs but I figured I'd get the discussion started here.\r\n\r\nWhat do you think? What needs more explanation?","created_at":"2018-04-02T21:22:03Z","updated_at":"2018-04-08T15:54:13Z","closed_at":null,"merged_at":null,"merge_commit_sha":"acc1f2ba3884567d8d55ed63b00a7bd389f1b4d4","assignee":null,"assignees":[],"requested_reviewers":[{"login":"justmoon","id":53233,"avatar_url":"https://avatars1.githubusercontent.com/u/53233?v=4","gravatar_id":"","url":"https://api.github.com/users/justmoon","html_url":"https://github.com/justmoon","followers_url":"https://api.github.com/users/justmoon/followers","following_url":"https://api.github.com/users/justmoon/following{/other_user}","gists_url":"https://api.github.com/users/justmoon/gists{/gist_id}","starred_url":"https://api.github.com/users/justmoon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justmoon/subscriptions","organizations_url":"https://api.github.com/users/justmoon/orgs","repos_url":"https://api.github.com/users/justmoon/repos","events_url":"https://api.github.com/users/justmoon/events{/privacy}","received_events_url":"https://api.github.com/users/justmoon/received_events","type":"User","site_admin":false},{"login":"karzak","id":10601061,"avatar_url":"https://avatars3.githubusercontent.com/u/10601061?v=4","gravatar_id":"","url":"https://api.github.com/users/karzak","html_url":"https://github.com/karzak","followers_url":"https://api.github.com/users/karzak/followers","following_url":"https://api.github.com/users/karzak/following{/other_user}","gists_url":"https://api.github.com/users/karzak/gists{/gist_id}","starred_url":"https://api.github.com/users/karzak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karzak/subscriptions","organizations_url":"https://api.github.com/users/karzak/orgs","repos_url":"https://api.github.com/users/karzak/repos","events_url":"https://api.github.com/users/karzak/events{/privacy}","received_events_url":"https://api.github.com/users/karzak/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/interledger/rfcs/pulls/417/commits","review_comments_url":"https://api.github.com/repos/interledger/rfcs/pulls/417/comments","review_comment_url":"https://api.github.com/repos/interledger/rfcs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/interledger/rfcs/issues/417/comments","statuses_url":"https://api.github.com/repos/interledger/rfcs/statuses/f225bee13ea6c2796f125043e8249aa2ba35fdd1","head":{"label":"interledger:es-stream","ref":"es-stream","sha":"f225bee13ea6c2796f125043e8249aa2ba35fdd1","user":{"login":"interledger","id":14062960,"avatar_url":"https://avatars0.githubusercontent.com/u/14062960?v=4","gravatar_id":"","url":"https://api.github.com/users/interledger","html_url":"https://github.com/interledger","followers_url":"https://api.github.com/users/interledger/followers","following_url":"https://api.github.com/users/interledger/following{/other_user}","gists_url":"https://api.github.com/users/interledger/gists{/gist_id}","starred_url":"https://api.github.com/users/interledger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/interledger/subscriptions","organizations_url":"https://api.github.com/users/interledger/orgs","repos_url":"https://api.github.com/users/interledger/repos","events_url":"https://api.github.com/users/interledger/events{/privacy}","received_events_url":"https://api.github.com/users/interledger/received_events","type":"Organization","site_admin":false},"repo":{"id":41705345,"name":"rfcs","full_name":"interledger/rfcs","owner":{"login":"interledger","id":14062960,"avatar_url":"https://avatars0.githubusercontent.com/u/14062960?v=4","gravatar_id":"","url":"https://api.github.com/users/interledger","html_url":"https://github.com/interledger","followers_url":"https://api.github.com/users/interledger/followers","following_url":"https://api.github.com/users/interledger/following{/other_user}","gists_url":"https://api.github.com/users/interledger/gists{/gist_id}","starred_url":"https://api.github.com/users/interledger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/interledger/subscriptions","organizations_url":"https://api.github.com/users/interledger/orgs","repos_url":"https://api.github.com/users/interledger/repos","events_url":"https://api.github.com/users/interledger/events{/privacy}","received_events_url":"https://api.github.com/users/interledger/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/interledger/rfcs","description":"Specifications for Interledger and related protocols (see the table of contents in the README for which ones to read)","fork":false,"url":"https://api.github.com/repos/interledger/rfcs","forks_url":"https://api.github.com/repos/interledger/rfcs/forks","keys_url":"https://api.github.com/repos/interledger/rfcs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/interledger/rfcs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/interledger/rfcs/teams","hooks_url":"https://api.github.com/repos/interledger/rfcs/hooks","issue_events_url":"https://api.github.com/repos/interledger/rfcs/issues/events{/number}","events_url":"https://api.github.com/repos/interledger/rfcs/events","assignees_url":"https://api.github.com/repos/interledger/rfcs/assignees{/user}","branches_url":"https://api.github.com/repos/interledger/rfcs/branches{/branch}","tags_url":"https://api.github.com/repos/interledger/rfcs/tags","blobs_url":"https://api.github.com/repos/interledger/rfcs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/interledger/rfcs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/interledger/rfcs/git/refs{/sha}","trees_url":"https://api.github.com/repos/interledger/rfcs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/interledger/rfcs/statuses/{sha}","languages_url":"https://api.github.com/repos/interledger/rfcs/languages","stargazers_url":"https://api.github.com/repos/interledger/rfcs/stargazers","contributors_url":"https://api.github.com/repos/interledger/rfcs/contributors","subscribers_url":"https://api.github.com/repos/interledger/rfcs/subscribers","subscription_url":"https://api.github.com/repos/interledger/rfcs/subscription","commits_url":"https://api.github.com/repos/interledger/rfcs/commits{/sha}","git_commits_url":"https://api.github.com/repos/interledger/rfcs/git/commits{/sha}","comments_url":"https://api.github.com/repos/interledger/rfcs/comments{/number}","issue_comment_url":"https://api.github.com/repos/interledger/rfcs/issues/comments{/number}","contents_url":"https://api.github.com/repos/interledger/rfcs/contents/{+path}","compare_url":"https://api.github.com/repos/interledger/rfcs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/interledger/rfcs/merges","archive_url":"https://api.github.com/repos/interledger/rfcs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/interledger/rfcs/downloads","issues_url":"https://api.github.com/repos/interledger/rfcs/issues{/number}","pulls_url":"https://api.github.com/repos/interledger/rfcs/pulls{/number}","milestones_url":"https://api.github.com/repos/interledger/rfcs/milestones{/number}","notifications_url":"https://api.github.com/repos/interledger/rfcs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/interledger/rfcs/labels{/name}","releases_url":"https://api.github.com/repos/interledger/rfcs/releases{/id}","deployments_url":"https://api.github.com/repos/interledger/rfcs/deployments","created_at":"2015-08-31T23:17:16Z","updated_at":"2018-04-08T02:33:06Z","pushed_at":"2018-04-06T15:03:52Z","git_url":"git://github.com/interledger/rfcs.git","ssh_url":"git@github.com:interledger/rfcs.git","clone_url":"https://github.com/interledger/rfcs.git","svn_url":"https://github.com/interledger/rfcs","homepage":"https://interledger.org","size":2119,"stargazers_count":161,"watchers_count":161,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":49,"mirror_url":null,"archived":false,"open_issues_count":55,"license":null,"forks":49,"open_issues":55,"watchers":161,"default_branch":"master"}},"base":{"label":"interledger:master","ref":"master","sha":"c26ce86e198a22a2c9aa4dc6fa3db1f38ac41d0a","user":{"login":"interledger","id":14062960,"avatar_url":"https://avatars0.githubusercontent.com/u/14062960?v=4","gravatar_id":"","url":"https://api.github.com/users/interledger","html_url":"https://github.com/interledger","followers_url":"https://api.github.com/users/interledger/followers","following_url":"https://api.github.com/users/interledger/following{/other_user}","gists_url":"https://api.github.com/users/interledger/gists{/gist_id}","starred_url":"https://api.github.com/users/interledger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/interledger/subscriptions","organizations_url":"https://api.github.com/users/interledger/orgs","repos_url":"https://api.github.com/users/interledger/repos","events_url":"https://api.github.com/users/interledger/events{/privacy}","received_events_url":"https://api.github.com/users/interledger/received_events","type":"Organization","site_admin":false},"repo":{"id":41705345,"name":"rfcs","full_name":"interledger/rfcs","owner":{"login":"interledger","id":14062960,"avatar_url":"https://avatars0.githubusercontent.com/u/14062960?v=4","gravatar_id":"","url":"https://api.github.com/users/interledger","html_url":"https://github.com/interledger","followers_url":"https://api.github.com/users/interledger/followers","following_url":"https://api.github.com/users/interledger/following{/other_user}","gists_url":"https://api.github.com/users/interledger/gists{/gist_id}","starred_url":"https://api.github.com/users/interledger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/interledger/subscriptions","organizations_url":"https://api.github.com/users/interledger/orgs","repos_url":"https://api.github.com/users/interledger/repos","events_url":"https://api.github.com/users/interledger/events{/privacy}","received_events_url":"https://api.github.com/users/interledger/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/interledger/rfcs","description":"Specifications for Interledger and related protocols (see the table of contents in the README for which ones to read)","fork":false,"url":"https://api.github.com/repos/interledger/rfcs","forks_url":"https://api.github.com/repos/interledger/rfcs/forks","keys_url":"https://api.github.com/repos/interledger/rfcs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/interledger/rfcs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/interledger/rfcs/teams","hooks_url":"https://api.github.com/repos/interledger/rfcs/hooks","issue_events_url":"https://api.github.com/repos/interledger/rfcs/issues/events{/number}","events_url":"https://api.github.com/repos/interledger/rfcs/events","assignees_url":"https://api.github.com/repos/interledger/rfcs/assignees{/user}","branches_url":"https://api.github.com/repos/interledger/rfcs/branches{/branch}","tags_url":"https://api.github.com/repos/interledger/rfcs/tags","blobs_url":"https://api.github.com/repos/interledger/rfcs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/interledger/rfcs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/interledger/rfcs/git/refs{/sha}","trees_url":"https://api.github.com/repos/interledger/rfcs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/interledger/rfcs/statuses/{sha}","languages_url":"https://api.github.com/repos/interledger/rfcs/languages","stargazers_url":"https://api.github.com/repos/interledger/rfcs/stargazers","contributors_url":"https://api.github.com/repos/interledger/rfcs/contributors","subscribers_url":"https://api.github.com/repos/interledger/rfcs/subscribers","subscription_url":"https://api.github.com/repos/interledger/rfcs/subscription","commits_url":"https://api.github.com/repos/interledger/rfcs/commits{/sha}","git_commits_url":"https://api.github.com/repos/interledger/rfcs/git/commits{/sha}","comments_url":"https://api.github.com/repos/interledger/rfcs/comments{/number}","issue_comment_url":"https://api.github.com/repos/interledger/rfcs/issues/comments{/number}","contents_url":"https://api.github.com/repos/interledger/rfcs/contents/{+path}","compare_url":"https://api.github.com/repos/interledger/rfcs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/interledger/rfcs/merges","archive_url":"https://api.github.com/repos/interledger/rfcs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/interledger/rfcs/downloads","issues_url":"https://api.github.com/repos/interledger/rfcs/issues{/number}","pulls_url":"https://api.github.com/repos/interledger/rfcs/pulls{/number}","milestones_url":"https://api.github.com/repos/interledger/rfcs/milestones{/number}","notifications_url":"https://api.github.com/repos/interledger/rfcs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/interledger/rfcs/labels{/name}","releases_url":"https://api.github.com/repos/interledger/rfcs/releases{/id}","deployments_url":"https://api.github.com/repos/interledger/rfcs/deployments","created_at":"2015-08-31T23:17:16Z","updated_at":"2018-04-08T02:33:06Z","pushed_at":"2018-04-06T15:03:52Z","git_url":"git://github.com/interledger/rfcs.git","ssh_url":"git@github.com:interledger/rfcs.git","clone_url":"https://github.com/interledger/rfcs.git","svn_url":"https://github.com/interledger/rfcs","homepage":"https://interledger.org","size":2119,"stargazers_count":161,"watchers_count":161,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":49,"mirror_url":null,"archived":false,"open_issues_count":55,"license":null,"forks":49,"open_issues":55,"watchers":161,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/interledger/rfcs/pulls/417"},"html":{"href":"https://github.com/interledger/rfcs/pull/417"},"issue":{"href":"https://api.github.com/repos/interledger/rfcs/issues/417"},"comments":{"href":"https://api.github.com/repos/interledger/rfcs/issues/417/comments"},"review_comments":{"href":"https://api.github.com/repos/interledger/rfcs/pulls/417/comments"},"review_comment":{"href":"https://api.github.com/repos/interledger/rfcs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/interledger/rfcs/pulls/417/commits"},"statuses":{"href":"https://api.github.com/repos/interledger/rfcs/statuses/f225bee13ea6c2796f125043e8249aa2ba35fdd1"}},"author_association":"OWNER"}}
{"actor":{"display_login":"dora-gt"}}