Add DNS Handshake section to README
This commit is contained in:
parent
91a8e8ae8b
commit
ed6f5477c1
2 changed files with 132 additions and 34 deletions
149
.idea/workspace.xml
generated
149
.idea/workspace.xml
generated
|
@ -4,21 +4,9 @@
|
||||||
<option name="autoReloadType" value="SELECTIVE" />
|
<option name="autoReloadType" value="SELECTIVE" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="18345731-10ed-4927-8692-8685f20e33be" name="Changes" comment="Removed stuff">
|
<list default="true" id="18345731-10ed-4927-8692-8685f20e33be" name="Changes" comment="Corrected Error tables as messages itself can be descriptive, but the code remains the same">
|
||||||
<change afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Writerside/c.list" beforeDir="false" />
|
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Writerside/cfg/buildprofiles.xml" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Writerside/images/decentralized.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Writerside/images/peer2peer.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Writerside/s.tree" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Writerside/topics/LICENSE.md" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Writerside/topics/RPC-Communication.md" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Writerside/topics/Speficiations.md" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Writerside/topics/UUID-v4.md" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Writerside/topics/starter-topic.md" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Writerside/v.list" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Writerside/writerside.cfg" beforeDir="false" />
|
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
@ -91,9 +79,9 @@
|
||||||
</map>
|
</map>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectColorInfo"><![CDATA[{
|
<component name="ProjectColorInfo">{
|
||||||
"associatedIndex": 6
|
"associatedIndex": 6
|
||||||
}]]></component>
|
}</component>
|
||||||
<component name="ProjectId" id="2lWgQfEpxIfOsaEIDScN13jtcTJ" />
|
<component name="ProjectId" id="2lWgQfEpxIfOsaEIDScN13jtcTJ" />
|
||||||
<component name="ProjectLevelVcsManager">
|
<component name="ProjectLevelVcsManager">
|
||||||
<ConfirmationsSetting value="2" id="Add" />
|
<ConfirmationsSetting value="2" id="Add" />
|
||||||
|
@ -104,24 +92,33 @@
|
||||||
<option name="showMembers" value="true" />
|
<option name="showMembers" value="true" />
|
||||||
<option name="showVisibilityIcons" value="true" />
|
<option name="showVisibilityIcons" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="PropertiesComponent"><![CDATA[{
|
<component name="PropertiesComponent">{
|
||||||
"keyToString": {
|
"keyToString": {
|
||||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
"dart.analysis.tool.window.visible": "false",
|
"dart.analysis.tool.window.visible": "false",
|
||||||
"git-widget-placeholder": "master",
|
"git-widget-placeholder": "master",
|
||||||
"nodejs_package_manager_path": "npm",
|
"node.js.detected.package.eslint": "true",
|
||||||
"vue.rearranger.settings.migration": "true"
|
"node.js.detected.package.tslint": "true",
|
||||||
|
"node.js.selected.package.eslint": "(autodetect)",
|
||||||
|
"node.js.selected.package.tslint": "(autodetect)",
|
||||||
|
"nodejs_package_manager_path": "npm",
|
||||||
|
"vue.rearranger.settings.migration": "true"
|
||||||
},
|
},
|
||||||
"keyToStringList": {
|
"keyToStringList": {
|
||||||
"stardust.markdown.MarkdownSplitEditorSuppressor:keyList": [
|
"stardust.markdown.MarkdownSplitEditorSuppressor:keyList": [
|
||||||
"C:/Users/Netkas/WritersideProjects/socialbox-standard/Writerside/topics/LICENSE.md",
|
"C:/Users/Netkas/WritersideProjects/socialbox-standard/Writerside/topics/LICENSE.md",
|
||||||
"C:/Users/Netkas/WritersideProjects/socialbox-standard/Writerside/topics/RPC-Communication.md",
|
"C:/Users/Netkas/WritersideProjects/socialbox-standard/Writerside/topics/RPC-Communication.md",
|
||||||
"C:/Users/Netkas/WritersideProjects/socialbox-standard/Writerside/topics/Speficiations.md",
|
"C:/Users/Netkas/WritersideProjects/socialbox-standard/Writerside/topics/Speficiations.md",
|
||||||
"C:/Users/Netkas/WritersideProjects/socialbox-standard/Writerside/topics/UUID-v4.md",
|
"C:/Users/Netkas/WritersideProjects/socialbox-standard/Writerside/topics/UUID-v4.md",
|
||||||
"C:/Users/Netkas/WritersideProjects/socialbox-standard/Writerside/topics/starter-topic.md"
|
"C:/Users/Netkas/WritersideProjects/socialbox-standard/Writerside/topics/starter-topic.md"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}]]></component>
|
}</component>
|
||||||
|
<component name="RecentsManager">
|
||||||
|
<key name="MoveFile.RECENT_KEYS">
|
||||||
|
<recent name="C:\Users\Netkas\WritersideProjects\socialbox-standard\images" />
|
||||||
|
</key>
|
||||||
|
</component>
|
||||||
<component name="SharedIndexes">
|
<component name="SharedIndexes">
|
||||||
<attachedChunks>
|
<attachedChunks>
|
||||||
<set>
|
<set>
|
||||||
|
@ -138,8 +135,82 @@
|
||||||
<option name="number" value="Default" />
|
<option name="number" value="Default" />
|
||||||
<option name="presentableId" value="Default" />
|
<option name="presentableId" value="Default" />
|
||||||
<updated>1725301232290</updated>
|
<updated>1725301232290</updated>
|
||||||
<workItem from="1725301233351" duration="16000" />
|
<workItem from="1725301233351" duration="4877000" />
|
||||||
|
<workItem from="1725312281181" duration="918000" />
|
||||||
</task>
|
</task>
|
||||||
|
<task id="LOCAL-00001" summary="Nothing ever went wrong with plain-old markdown, right?">
|
||||||
|
<option name="closed" value="true" />
|
||||||
|
<created>1725301320766</created>
|
||||||
|
<option name="number" value="00001" />
|
||||||
|
<option name="presentableId" value="LOCAL-00001" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1725301320766</updated>
|
||||||
|
</task>
|
||||||
|
<task id="LOCAL-00002" summary="Added missing images">
|
||||||
|
<option name="closed" value="true" />
|
||||||
|
<created>1725301413291</created>
|
||||||
|
<option name="number" value="00002" />
|
||||||
|
<option name="presentableId" value="LOCAL-00002" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1725301413291</updated>
|
||||||
|
</task>
|
||||||
|
<task id="LOCAL-00003" summary="Added RPC Communication & Error Codes">
|
||||||
|
<option name="closed" value="true" />
|
||||||
|
<created>1725303392965</created>
|
||||||
|
<option name="number" value="00003" />
|
||||||
|
<option name="presentableId" value="LOCAL-00003" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1725303392965</updated>
|
||||||
|
</task>
|
||||||
|
<task id="LOCAL-00004" summary="Updated .gitignore">
|
||||||
|
<option name="closed" value="true" />
|
||||||
|
<created>1725303438083</created>
|
||||||
|
<option name="number" value="00004" />
|
||||||
|
<option name="presentableId" value="LOCAL-00004" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1725303438083</updated>
|
||||||
|
</task>
|
||||||
|
<task id="LOCAL-00005" summary="Corrected missing information">
|
||||||
|
<option name="closed" value="true" />
|
||||||
|
<created>1725303543837</created>
|
||||||
|
<option name="number" value="00005" />
|
||||||
|
<option name="presentableId" value="LOCAL-00005" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1725303543837</updated>
|
||||||
|
</task>
|
||||||
|
<task id="LOCAL-00006" summary="Add link to JSON-RPC 2.0 specification in README">
|
||||||
|
<option name="closed" value="true" />
|
||||||
|
<created>1725303621421</created>
|
||||||
|
<option name="number" value="00006" />
|
||||||
|
<option name="presentableId" value="LOCAL-00006" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1725303621421</updated>
|
||||||
|
</task>
|
||||||
|
<task id="LOCAL-00007" summary="Add HTTP status codes section as part of the RPC implementation">
|
||||||
|
<option name="closed" value="true" />
|
||||||
|
<created>1725304137750</created>
|
||||||
|
<option name="number" value="00007" />
|
||||||
|
<option name="presentableId" value="LOCAL-00007" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1725304137750</updated>
|
||||||
|
</task>
|
||||||
|
<task id="LOCAL-00008" summary="Added footnote for RPC errors under RPC Communication > Notification & Request-Response communication">
|
||||||
|
<option name="closed" value="true" />
|
||||||
|
<created>1725304381274</created>
|
||||||
|
<option name="number" value="00008" />
|
||||||
|
<option name="presentableId" value="LOCAL-00008" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1725304381274</updated>
|
||||||
|
</task>
|
||||||
|
<task id="LOCAL-00009" summary="Corrected Error tables as messages itself can be descriptive, but the code remains the same">
|
||||||
|
<option name="closed" value="true" />
|
||||||
|
<created>1725305307476</created>
|
||||||
|
<option name="number" value="00009" />
|
||||||
|
<option name="presentableId" value="LOCAL-00009" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1725305307476</updated>
|
||||||
|
</task>
|
||||||
|
<option name="localTasksCounter" value="10" />
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="TypeScriptGeneratedFilesManager">
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
|
@ -147,6 +218,16 @@
|
||||||
</component>
|
</component>
|
||||||
<component name="VcsManagerConfiguration">
|
<component name="VcsManagerConfiguration">
|
||||||
<MESSAGE value="Removed stuff" />
|
<MESSAGE value="Removed stuff" />
|
||||||
<option name="LAST_COMMIT_MESSAGE" value="Removed stuff" />
|
<MESSAGE value="Nothing ever went wrong with plain-old markdown, right?" />
|
||||||
|
<MESSAGE value="Added missing images" />
|
||||||
|
<MESSAGE value="Added RPC Communication & Error Codes" />
|
||||||
|
<MESSAGE value="Updated .gitignore" />
|
||||||
|
<MESSAGE value="Corrected missing information" />
|
||||||
|
<MESSAGE value="Add link to JSON-RPC 2.0 specification in README" />
|
||||||
|
<MESSAGE value="Added HTTP status codes " />
|
||||||
|
<MESSAGE value="Add HTTP status codes section as part of the RPC implementation" />
|
||||||
|
<MESSAGE value="Added footnote for RPC errors under RPC Communication > Notification & Request-Response communication" />
|
||||||
|
<MESSAGE value="Corrected Error tables as messages itself can be descriptive, but the code remains the same" />
|
||||||
|
<option name="LAST_COMMIT_MESSAGE" value="Corrected Error tables as messages itself can be descriptive, but the code remains the same" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
17
README.md
17
README.md
|
@ -53,6 +53,7 @@ This project is licensed under GNU Free Documentation License v1.3, see the [LIC
|
||||||
* [Table of contents](#table-of-contents)
|
* [Table of contents](#table-of-contents)
|
||||||
* [Specifications](#specifications)
|
* [Specifications](#specifications)
|
||||||
* [UUID v4](#uuid-v4)
|
* [UUID v4](#uuid-v4)
|
||||||
|
* [DNS Handshake](#dns-handshake)
|
||||||
* [RPC Communication](#rpc-communication)
|
* [RPC Communication](#rpc-communication)
|
||||||
* [Notification & Request-Response Communication](#notification--request-response-communication)
|
* [Notification & Request-Response Communication](#notification--request-response-communication)
|
||||||
* [Request Object](#request-object)
|
* [Request Object](#request-object)
|
||||||
|
@ -89,6 +90,22 @@ consumed for the variant.
|
||||||
Source: [Wikipedia](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random))
|
Source: [Wikipedia](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random))
|
||||||
|
|
||||||
|
|
||||||
|
## DNS Handshake
|
||||||
|
|
||||||
|
When a client wants to connect to a Socialbox server, it first needs to perform a DNS handshake to discover the server
|
||||||
|
URL. Typically, the Socialbox server is hosted on a subdomain like socialbox.example.com. To determine this, the client
|
||||||
|
must first resolve the main domain, example.com, and get a TXT record that contains the URL of the Socialbox instance.
|
||||||
|
The required TXT record should be placed in the main domain’s DNS records with this format:
|
||||||
|
|
||||||
|
```text
|
||||||
|
example.com. IN TXT "socialbox=socialbox.example.com"
|
||||||
|
```
|
||||||
|
|
||||||
|
Here, socialbox is the key, and the value is the URL of the Socialbox instance. The client resolves the main domain to
|
||||||
|
retrieve the TXT record, which then provides the URL of the Socialbox server.The client uses this URL to establish a
|
||||||
|
connection to the Socialbox server. This process allows the client to dynamically discover the server URL.
|
||||||
|
|
||||||
|
|
||||||
## RPC Communication
|
## RPC Communication
|
||||||
|
|
||||||
Socialbox employs JSON-RPC over HTTP for server-client & server-server communication. JSON-RPC is a stateless,
|
Socialbox employs JSON-RPC over HTTP for server-client & server-server communication. JSON-RPC is a stateless,
|
||||||
|
|
Loading…
Add table
Reference in a new issue