{"action":"created","comment":{"url":"https://api.github.com/repos/interbit/docs-interbit/pulls/comments/206670790","pull_request_review_id":142126506,"id":206670790,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNjY3MDc5MA==","diff_hunk":"@@ -0,0 +1,45 @@\n+# Platform structure\n+\n+Our platform has two server nodes. One runs the `platform-deploy` hypervisor \n+and the other runs the `web-auth-endpoint` hypervisor. We also have two \n+browser nodes - one for the accounts app and another for the template app. \n+These nodes run the React apps in the browser.\n+\n+The `platform-deploy` node hosts the accounts and template chains, acting as \n+the server for the two apps. It is the blockmaster and thus is responsible for \n+adding new blocks to the application chains. Note that there is no requirement \n+for the accounts and template chains to be hosted on the same node. They could \n+be hosted on separate nodes and moreover each app's chains could be hosted on \n+multiple nodes for redundancy. (FIXME: Should we mention that this has not \n+been implemented yet?) \n+\n+The `web-auth-endpoint` node hosts the accounts app chains, which includes a \n+GitHub chain. It also runs an Express instance that fields the http requests \n+coming from GitHub during an OAuth loop. \n+\n+These two server nodes are peers. During the GitHub OAuth loop, OAuth requests \n+from  GitHub are received by the Express instance. An action is dispatched to \n+the GitHub chain on the `web-auth-endpoint` hypervisor which then passes it \n+along to the `platform-deploy` hypervisor. The `app-account` control chain ","path":"examples/simple-platform/platform-structure.md","position":23,"original_position":23,"commit_id":"f62e3a5a3d4503a9ebc79e2aa6580a454f5abb2a","original_commit_id":"f62e3a5a3d4503a9ebc79e2aa6580a454f5abb2a","user":{"login":"djlmills","id":30841719,"node_id":"MDQ6VXNlcjMwODQxNzE5","avatar_url":"https://avatars0.githubusercontent.com/u/30841719?v=4","gravatar_id":"","url":"https://api.github.com/users/djlmills","html_url":"https://github.com/djlmills","followers_url":"https://api.github.com/users/djlmills/followers","following_url":"https://api.github.com/users/djlmills/following{/other_user}","gists_url":"https://api.github.com/users/djlmills/gists{/gist_id}","starred_url":"https://api.github.com/users/djlmills/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djlmills/subscriptions","organizations_url":"https://api.github.com/users/djlmills/orgs","repos_url":"https://api.github.com/users/djlmills/repos","events_url":"https://api.github.com/users/djlmills/events{/privacy}","received_events_url":"https://api.github.com/users/djlmills/received_events","type":"User","site_admin":false},"body":"I think there is some confusion between cli and hypervisor. The express instance uses the web-auth-endpoint cli to dispatch an action that is distributed to, and processed deterministically by all nodes on the network. The chains and inter-node connections are managed by the hypervisor.","created_at":"2018-07-31T20:23:15Z","updated_at":"2018-07-31T20:46:28Z","html_url":"https://github.com/interbit/docs-interbit/pull/7#discussion_r206670790","pull_request_url":"https://api.github.com/repos/interbit/docs-interbit/pulls/7","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/interbit/docs-interbit/pulls/comments/206670790"},"html":{"href":"https://github.com/interbit/docs-interbit/pull/7#discussion_r206670790"},"pull_request":{"href":"https://api.github.com/repos/interbit/docs-interbit/pulls/7"}},"in_reply_to_id":206610817},"pull_request":{"url":"https://api.github.com/repos/interbit/docs-interbit/pulls/7","id":203682888,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAzNjgyODg4","html_url":"https://github.com/interbit/docs-interbit/pull/7","diff_url":"https://github.com/interbit/docs-interbit/pull/7.diff","patch_url":"https://github.com/interbit/docs-interbit/pull/7.patch","issue_url":"https://api.github.com/repos/interbit/docs-interbit/issues/7","number":7,"state":"open","locked":false,"title":"Document how to run web-auth-endpoint locally","user":{"login":"karikushi","id":5544358,"node_id":"MDQ6VXNlcjU1NDQzNTg=","avatar_url":"https://avatars0.githubusercontent.com/u/5544358?v=4","gravatar_id":"","url":"https://api.github.com/users/karikushi","html_url":"https://github.com/karikushi","followers_url":"https://api.github.com/users/karikushi/followers","following_url":"https://api.github.com/users/karikushi/following{/other_user}","gists_url":"https://api.github.com/users/karikushi/gists{/gist_id}","starred_url":"https://api.github.com/users/karikushi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karikushi/subscriptions","organizations_url":"https://api.github.com/users/karikushi/orgs","repos_url":"https://api.github.com/users/karikushi/repos","events_url":"https://api.github.com/users/karikushi/events{/privacy}","received_events_url":"https://api.github.com/users/karikushi/received_events","type":"User","site_admin":false},"body":"Related to Issue 215 in the Interbit repo (https://github.com/interbit/interbit/issues/215).\r\n\r\n- added a doc for setting up and running `platform-deploy` locally\r\n- added a doc for setting up and running `web-auth-endpoint` locally\r\n- referenced very briefly that the GitHub OAuth loop on the accounts app works locally via these steps\r\n\r\nI consider this a skeleton/draft, so any input on how to improve this would be appreciated. \r\n","created_at":"2018-07-24T23:32:39Z","updated_at":"2018-07-31T20:46:29Z","closed_at":null,"merged_at":null,"merge_commit_sha":"818e0e6d375b7b2371dae3dd1e1c74f7db82ee57","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/interbit/docs-interbit/pulls/7/commits","review_comments_url":"https://api.github.com/repos/interbit/docs-interbit/pulls/7/comments","review_comment_url":"https://api.github.com/repos/interbit/docs-interbit/pulls/comments{/number}","comments_url":"https://api.github.com/repos/interbit/docs-interbit/issues/7/comments","statuses_url":"https://api.github.com/repos/interbit/docs-interbit/statuses/f62e3a5a3d4503a9ebc79e2aa6580a454f5abb2a","head":{"label":"interbit:web-auth-endpoint","ref":"web-auth-endpoint","sha":"f62e3a5a3d4503a9ebc79e2aa6580a454f5abb2a","user":{"login":"interbit","id":34113067,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MTEzMDY3","avatar_url":"https://avatars1.githubusercontent.com/u/34113067?v=4","gravatar_id":"","url":"https://api.github.com/users/interbit","html_url":"https://github.com/interbit","followers_url":"https://api.github.com/users/interbit/followers","following_url":"https://api.github.com/users/interbit/following{/other_user}","gists_url":"https://api.github.com/users/interbit/gists{/gist_id}","starred_url":"https://api.github.com/users/interbit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/interbit/subscriptions","organizations_url":"https://api.github.com/users/interbit/orgs","repos_url":"https://api.github.com/users/interbit/repos","events_url":"https://api.github.com/users/interbit/events{/privacy}","received_events_url":"https://api.github.com/users/interbit/received_events","type":"Organization","site_admin":false},"repo":{"id":139909464,"node_id":"MDEwOlJlcG9zaXRvcnkxMzk5MDk0NjQ=","name":"docs-interbit","full_name":"interbit/docs-interbit","owner":{"login":"interbit","id":34113067,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MTEzMDY3","avatar_url":"https://avatars1.githubusercontent.com/u/34113067?v=4","gravatar_id":"","url":"https://api.github.com/users/interbit","html_url":"https://github.com/interbit","followers_url":"https://api.github.com/users/interbit/followers","following_url":"https://api.github.com/users/interbit/following{/other_user}","gists_url":"https://api.github.com/users/interbit/gists{/gist_id}","starred_url":"https://api.github.com/users/interbit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/interbit/subscriptions","organizations_url":"https://api.github.com/users/interbit/orgs","repos_url":"https://api.github.com/users/interbit/repos","events_url":"https://api.github.com/users/interbit/events{/privacy}","received_events_url":"https://api.github.com/users/interbit/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/interbit/docs-interbit","description":"The Interbit SDK documentation","fork":false,"url":"https://api.github.com/repos/interbit/docs-interbit","forks_url":"https://api.github.com/repos/interbit/docs-interbit/forks","keys_url":"https://api.github.com/repos/interbit/docs-interbit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/interbit/docs-interbit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/interbit/docs-interbit/teams","hooks_url":"https://api.github.com/repos/interbit/docs-interbit/hooks","issue_events_url":"https://api.github.com/repos/interbit/docs-interbit/issues/events{/number}","events_url":"https://api.github.com/repos/interbit/docs-interbit/events","assignees_url":"https://api.github.com/repos/interbit/docs-interbit/assignees{/user}","branches_url":"https://api.github.com/repos/interbit/docs-interbit/branches{/branch}","tags_url":"https://api.github.com/repos/interbit/docs-interbit/tags","blobs_url":"https://api.github.com/repos/interbit/docs-interbit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/interbit/docs-interbit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/interbit/docs-interbit/git/refs{/sha}","trees_url":"https://api.github.com/repos/interbit/docs-interbit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/interbit/docs-interbit/statuses/{sha}","languages_url":"https://api.github.com/repos/interbit/docs-interbit/languages","stargazers_url":"https://api.github.com/repos/interbit/docs-interbit/stargazers","contributors_url":"https://api.github.com/repos/interbit/docs-interbit/contributors","subscribers_url":"https://api.github.com/repos/interbit/docs-interbit/subscribers","subscription_url":"https://api.github.com/repos/interbit/docs-interbit/subscription","commits_url":"https://api.github.com/repos/interbit/docs-interbit/commits{/sha}","git_commits_url":"https://api.github.com/repos/interbit/docs-interbit/git/commits{/sha}","comments_url":"https://api.github.com/repos/interbit/docs-interbit/comments{/number}","issue_comment_url":"https://api.github.com/repos/interbit/docs-interbit/issues/comments{/number}","contents_url":"https://api.github.com/repos/interbit/docs-interbit/contents/{+path}","compare_url":"https://api.github.com/repos/interbit/docs-interbit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/interbit/docs-interbit/merges","archive_url":"https://api.github.com/repos/interbit/docs-interbit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/interbit/docs-interbit/downloads","issues_url":"https://api.github.com/repos/interbit/docs-interbit/issues{/number}","pulls_url":"https://api.github.com/repos/interbit/docs-interbit/pulls{/number}","milestones_url":"https://api.github.com/repos/interbit/docs-interbit/milestones{/number}","notifications_url":"https://api.github.com/repos/interbit/docs-interbit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/interbit/docs-interbit/labels{/name}","releases_url":"https://api.github.com/repos/interbit/docs-interbit/releases{/id}","deployments_url":"https://api.github.com/repos/interbit/docs-interbit/deployments","created_at":"2018-07-05T23:13:46Z","updated_at":"2018-07-25T21:21:22Z","pushed_at":"2018-07-30T23:49:15Z","git_url":"git://github.com/interbit/docs-interbit.git","ssh_url":"git@github.com:interbit/docs-interbit.git","clone_url":"https://github.com/interbit/docs-interbit.git","svn_url":"https://github.com/interbit/docs-interbit","homepage":"https://docs.interbit.io/","size":2709,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":2,"license":null,"forks":0,"open_issues":2,"watchers":0,"default_branch":"master"}},"base":{"label":"interbit:master","ref":"master","sha":"9e5fbed69a13e4b88bb6526531ba71d986a15e1c","user":{"login":"interbit","id":34113067,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MTEzMDY3","avatar_url":"https://avatars1.githubusercontent.com/u/34113067?v=4","gravatar_id":"","url":"https://api.github.com/users/interbit","html_url":"https://github.com/interbit","followers_url":"https://api.github.com/users/interbit/followers","following_url":"https://api.github.com/users/interbit/following{/other_user}","gists_url":"https://api.github.com/users/interbit/gists{/gist_id}","starred_url":"https://api.github.com/users/interbit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/interbit/subscriptions","organizations_url":"https://api.github.com/users/interbit/orgs","repos_url":"https://api.github.com/users/interbit/repos","events_url":"https://api.github.com/users/interbit/events{/privacy}","received_events_url":"https://api.github.com/users/interbit/received_events","type":"Organization","site_admin":false},"repo":{"id":139909464,"node_id":"MDEwOlJlcG9zaXRvcnkxMzk5MDk0NjQ=","name":"docs-interbit","full_name":"interbit/docs-interbit","owner":{"login":"interbit","id":34113067,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MTEzMDY3","avatar_url":"https://avatars1.githubusercontent.com/u/34113067?v=4","gravatar_id":"","url":"https://api.github.com/users/interbit","html_url":"https://github.com/interbit","followers_url":"https://api.github.com/users/interbit/followers","following_url":"https://api.github.com/users/interbit/following{/other_user}","gists_url":"https://api.github.com/users/interbit/gists{/gist_id}","starred_url":"https://api.github.com/users/interbit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/interbit/subscriptions","organizations_url":"https://api.github.com/users/interbit/orgs","repos_url":"https://api.github.com/users/interbit/repos","events_url":"https://api.github.com/users/interbit/events{/privacy}","received_events_url":"https://api.github.com/users/interbit/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/interbit/docs-interbit","description":"The Interbit SDK documentation","fork":false,"url":"https://api.github.com/repos/interbit/docs-interbit","forks_url":"https://api.github.com/repos/interbit/docs-interbit/forks","keys_url":"https://api.github.com/repos/interbit/docs-interbit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/interbit/docs-interbit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/interbit/docs-interbit/teams","hooks_url":"https://api.github.com/repos/interbit/docs-interbit/hooks","issue_events_url":"https://api.github.com/repos/interbit/docs-interbit/issues/events{/number}","events_url":"https://api.github.com/repos/interbit/docs-interbit/events","assignees_url":"https://api.github.com/repos/interbit/docs-interbit/assignees{/user}","branches_url":"https://api.github.com/repos/interbit/docs-interbit/branches{/branch}","tags_url":"https://api.github.com/repos/interbit/docs-interbit/tags","blobs_url":"https://api.github.com/repos/interbit/docs-interbit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/interbit/docs-interbit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/interbit/docs-interbit/git/refs{/sha}","trees_url":"https://api.github.com/repos/interbit/docs-interbit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/interbit/docs-interbit/statuses/{sha}","languages_url":"https://api.github.com/repos/interbit/docs-interbit/languages","stargazers_url":"https://api.github.com/repos/interbit/docs-interbit/stargazers","contributors_url":"https://api.github.com/repos/interbit/docs-interbit/contributors","subscribers_url":"https://api.github.com/repos/interbit/docs-interbit/subscribers","subscription_url":"https://api.github.com/repos/interbit/docs-interbit/subscription","commits_url":"https://api.github.com/repos/interbit/docs-interbit/commits{/sha}","git_commits_url":"https://api.github.com/repos/interbit/docs-interbit/git/commits{/sha}","comments_url":"https://api.github.com/repos/interbit/docs-interbit/comments{/number}","issue_comment_url":"https://api.github.com/repos/interbit/docs-interbit/issues/comments{/number}","contents_url":"https://api.github.com/repos/interbit/docs-interbit/contents/{+path}","compare_url":"https://api.github.com/repos/interbit/docs-interbit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/interbit/docs-interbit/merges","archive_url":"https://api.github.com/repos/interbit/docs-interbit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/interbit/docs-interbit/downloads","issues_url":"https://api.github.com/repos/interbit/docs-interbit/issues{/number}","pulls_url":"https://api.github.com/repos/interbit/docs-interbit/pulls{/number}","milestones_url":"https://api.github.com/repos/interbit/docs-interbit/milestones{/number}","notifications_url":"https://api.github.com/repos/interbit/docs-interbit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/interbit/docs-interbit/labels{/name}","releases_url":"https://api.github.com/repos/interbit/docs-interbit/releases{/id}","deployments_url":"https://api.github.com/repos/interbit/docs-interbit/deployments","created_at":"2018-07-05T23:13:46Z","updated_at":"2018-07-25T21:21:22Z","pushed_at":"2018-07-30T23:49:15Z","git_url":"git://github.com/interbit/docs-interbit.git","ssh_url":"git@github.com:interbit/docs-interbit.git","clone_url":"https://github.com/interbit/docs-interbit.git","svn_url":"https://github.com/interbit/docs-interbit","homepage":"https://docs.interbit.io/","size":2709,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":2,"license":null,"forks":0,"open_issues":2,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/interbit/docs-interbit/pulls/7"},"html":{"href":"https://github.com/interbit/docs-interbit/pull/7"},"issue":{"href":"https://api.github.com/repos/interbit/docs-interbit/issues/7"},"comments":{"href":"https://api.github.com/repos/interbit/docs-interbit/issues/7/comments"},"review_comments":{"href":"https://api.github.com/repos/interbit/docs-interbit/pulls/7/comments"},"review_comment":{"href":"https://api.github.com/repos/interbit/docs-interbit/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/interbit/docs-interbit/pulls/7/commits"},"statuses":{"href":"https://api.github.com/repos/interbit/docs-interbit/statuses/f62e3a5a3d4503a9ebc79e2aa6580a454f5abb2a"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"djlmills"}}