Protocol spec

This commit is contained in:
xqtc 2024-09-03 21:54:06 +02:00
parent 0155715c5f
commit 65c8688ae9
9 changed files with 4140 additions and 0 deletions

3
notes/.obsidian/app.json vendored Normal file
View file

@ -0,0 +1,3 @@
{
"vimMode": true
}

4
notes/.obsidian/appearance.json vendored Normal file
View file

@ -0,0 +1,4 @@
{
"theme": "obsidian",
"cssTheme": "Catppuccin"
}

View file

@ -0,0 +1,30 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"properties": false,
"page-preview": true,
"daily-notes": true,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": false
}

20
notes/.obsidian/core-plugins.json vendored Normal file
View file

@ -0,0 +1,20 @@
[
"file-explorer",
"global-search",
"switcher",
"graph",
"backlink",
"canvas",
"outgoing-link",
"tag-pane",
"page-preview",
"daily-notes",
"templates",
"note-composer",
"command-palette",
"editor-status",
"bookmarks",
"outline",
"word-count",
"file-recovery"
]

View file

@ -0,0 +1,7 @@
{
"name": "Catppuccin",
"version": "0.4.24",
"minAppVersion": "1.0.0",
"author": "Marshall Beckrich",
"authorUrl": "https://github.com/catppuccin/obsidian"
}

File diff suppressed because one or more lines are too long

155
notes/.obsidian/workspace.json vendored Normal file
View file

@ -0,0 +1,155 @@
{
"main": {
"id": "ba6656b2e09ced8b",
"type": "split",
"children": [
{
"id": "8aab114180050524",
"type": "tabs",
"children": [
{
"id": "4f9428c0d7e6ec10",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "UwUsched/UwUSched.md",
"mode": "source",
"source": false
}
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "351ee0d58b83aaeb",
"type": "split",
"children": [
{
"id": "5e4f44266924bf54",
"type": "tabs",
"children": [
{
"id": "9f2faf4f1827783f",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical"
}
}
},
{
"id": "24d16549c3e9f26c",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
}
}
},
{
"id": "78556ee640811968",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {}
}
}
]
}
],
"direction": "horizontal",
"width": 300
},
"right": {
"id": "41231040187f060c",
"type": "split",
"children": [
{
"id": "3bb571b4d8a6b510",
"type": "tabs",
"children": [
{
"id": "f123b7a34597da70",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "UwUsched/UwUSched.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
}
}
},
{
"id": "d3b5730a2ea06ff4",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "UwUsched/UwUSched.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
}
},
{
"id": "53131ea4b1beb2c9",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true
}
}
},
{
"id": "f3e3169cbae74ce5",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "UwUsched/UwUSched.md"
}
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"switcher:Open quick switcher": false,
"graph:Open graph view": false,
"canvas:Create new canvas": false,
"daily-notes:Open today's daily note": false,
"templates:Insert template": false,
"command-palette:Open command palette": false
}
},
"active": "4f9428c0d7e6ec10",
"lastOpenFiles": [
"UwUsched/Protocol.md",
"UwUsched/Cluster Architecture.md",
"UwUsched/UwUSched.md"
]
}

View file

@ -0,0 +1,55 @@
- UUID-identifier with data
- Data binary- or hex-encoded
- Client <-> Host negotiating what to do => Task queue synchronization
=> Two seperate ways of communicating: One for neogtioating task queue stuff and one for data (Linked with UUID)
# Data Pull/Push
## Pull
```json
{
"uuid":<uuid>,
"hashmap_id":<hashmap_id>,
}
```
## Response
```json
{
"status":<OK|HASH_ERR|TIMEOUT_ERR>,
"uuid":<uuid>,
"hashmap_id":<hashmap_id>
}
```
## Push
```json
{
"uuid":<uuid>,
"hashmap_id":<hashmap_id>,
"length_decomp": <length_decomp>,
"length_comp": <length_comp>,
"comp_format":<comp_format>,
"attributes":{go wild :3}
"data":<data>
}
```
> **Possible Traffic-Sequences**
> `PULL -> PUSH -> RESPONSE`
> `PUSH -> RESPONSE`
----
**Data-Related**
`uuid`: sha-256 of decompressed data
`hashmap_identifier`: identifier of associated HashMap
`length_comp`: length of compressed data
`length_decomp`: length of decompressed data
`comp_format`: compression algorithm used
`data`: compressed data
`data_type`: either `permutation` or `state` (complete tree)
`attributes`: Implementation specific *EXTRAWURST*
**Control Flow**
`status`: error codes indicating success of transmission

View file

@ -1,2 +1,3 @@
UwUsched is an [[Cluster Architecture#Active-Passive| active-passive]] Cluster.
The protocol is defined [[Protocol |here]]