added 002 article
This commit is contained in:
parent
d7f7fea92d
commit
45889f2662
3 changed files with 115 additions and 34 deletions
51
content/.obsidian/core-plugins.json
vendored
51
content/.obsidian/core-plugins.json
vendored
|
@ -1,20 +1,31 @@
|
|||
[
|
||||
"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"
|
||||
]
|
||||
{
|
||||
"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,
|
||||
"webviewer": false
|
||||
}
|
65
content/.obsidian/workspace.json
vendored
65
content/.obsidian/workspace.json
vendored
|
@ -13,10 +13,28 @@
|
|||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "index.md",
|
||||
"file": "Articles/002 - Decentralized internet.md",
|
||||
"mode": "source",
|
||||
"source": true
|
||||
}
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "002 - Decentralized internet"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "6cd2b6ce38e13aef",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "b4717e3296e62d57",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "empty",
|
||||
"state": {},
|
||||
"icon": "lucide-file",
|
||||
"title": "New tab"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -38,8 +56,11 @@
|
|||
"state": {
|
||||
"type": "file-explorer",
|
||||
"state": {
|
||||
"sortOrder": "alphabetical"
|
||||
}
|
||||
"sortOrder": "alphabetical",
|
||||
"autoReveal": false
|
||||
},
|
||||
"icon": "lucide-folder-closed",
|
||||
"title": "Files"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -54,7 +75,9 @@
|
|||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical"
|
||||
}
|
||||
},
|
||||
"icon": "lucide-search",
|
||||
"title": "Search"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -62,7 +85,9 @@
|
|||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "bookmarks",
|
||||
"state": {}
|
||||
"state": {},
|
||||
"icon": "lucide-bookmark",
|
||||
"title": "Bookmarks"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -85,7 +110,7 @@
|
|||
"state": {
|
||||
"type": "backlink",
|
||||
"state": {
|
||||
"file": "index.md",
|
||||
"file": "Articles/002 - Decentralized internet.md",
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical",
|
||||
|
@ -93,7 +118,9 @@
|
|||
"searchQuery": "",
|
||||
"backlinkCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
}
|
||||
},
|
||||
"icon": "links-coming-in",
|
||||
"title": "Backlinks for 002 - Decentralized internet"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -105,7 +132,9 @@
|
|||
"file": "index.md",
|
||||
"linksCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
}
|
||||
},
|
||||
"icon": "links-going-out",
|
||||
"title": "Outgoing links from index"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -116,7 +145,9 @@
|
|||
"state": {
|
||||
"sortOrder": "frequency",
|
||||
"useHierarchy": true
|
||||
}
|
||||
},
|
||||
"icon": "lucide-tags",
|
||||
"title": "Tags"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -126,7 +157,9 @@
|
|||
"type": "outline",
|
||||
"state": {
|
||||
"file": "index.md"
|
||||
}
|
||||
},
|
||||
"icon": "lucide-list",
|
||||
"title": "Outline of index"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -145,10 +178,14 @@
|
|||
"command-palette:Open command palette": false
|
||||
}
|
||||
},
|
||||
"active": "7c4c801b0bba2907",
|
||||
"active": "b02df33ae1b6e314",
|
||||
"lastOpenFiles": [
|
||||
"Articles/002 - Decentralized internet gooby.md",
|
||||
"Articles/002 - Decentralized internet.md",
|
||||
"Articles/001 - Raspberry connectivity Issues.md",
|
||||
"Articles/!root.md",
|
||||
"index.md",
|
||||
"Links.md",
|
||||
"Webrings.md",
|
||||
"index.md"
|
||||
"Webrings.md"
|
||||
]
|
||||
}
|
33
content/Articles/002 - Decentralized internet.md
Normal file
33
content/Articles/002 - Decentralized internet.md
Normal file
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
datetime: 2025-07-31T19-15-00Z
|
||||
---
|
||||
> [!warning] Warnings in effect:
|
||||
> [[!root#Computering]]
|
||||
|
||||
Because of recent events, I started to think. But I believe I'm cooking with this. Either that or I am well done. Our internet is being active destroyed so hear me out on this one.
|
||||
|
||||
# Break what works, build new bridges
|
||||
We first have to forget about the old internet. DNS, web searchers and so on. While I will use the old DNS, we will - for now at least - pretend it doesn't exist.
|
||||
|
||||
This new internet will be based on a loose idea of how routers discover neighbors. It will have two parts; the client and the server. They will work together to form a new way of serving services on the "internet", allowing for new routing while using the existing router network.
|
||||
|
||||
# Server?
|
||||
The server part will be a system running on a node. This system will ping the gateway (the local area nets router) and then ping outside of the network with TTL (time to live) set to a really low number. It will ping a specific port which it itself is listening on. This system will respond with its routers external IPv4 (or its own IPv6) when it hears a ping on this port. This way the two networks learn something. The sender learns of the receiver and the receiver learns of the sender.
|
||||
|
||||
"Wouldn't that be too taxing on the network, causing the ISP to cut your internet?"
|
||||
That is a valid thing to ask. This pings would start with time to live set to 1 so they only ping the nearest neighbors. If no server is discovered, they will increase by 1 until they hit a maximum number of 10. They would broadcast this ping every 12 or so hours so it shouldn't cause too much of a strain. Not only that but every so often peers will exchange their routing lists and fill their own with new additions, forming new connections.
|
||||
|
||||
"What if my server is too far from any other peers that even TTL 10 won't reach me?"
|
||||
Worry not! To solve such issues there will be something called the "master list". These servers will have a community ran master list added and every so often they will hit up this master list with an update on their state and IP, simulating a dynamic DNS. The admin of the server could set the minimum/maximum amount of neighbors and nodes with less than that would automatically and randomly fill their lists with ones from master lists.
|
||||
|
||||
So I keep talking about neighbor discovery but why is it needed? Well this would allow people to selfhost domains on their nodes and routing tables would allow nodes to discover which domain lives where. More in [[002 - Decentralized internet#Clients!|Clients]]
|
||||
|
||||
This allows anyone to run a node and even with a non-static IP be able to host services. It should also play nicely with things like Fediverse where each node is expected to host about 100 people. I know people are smart and will be able to make balancers if they so choose.
|
||||
|
||||
# Clients!
|
||||
Clients are simple. They take a form of a VPN or a Proxy connection. They first would query the master list if one is set or begin a discovery sequence, similar to servers. Upon finding one, clients would query it for routing with the domain they seek. If a server doesn't have this domain, it would query its peers. This would happen a set amount of times, admins would be able to set the threshold of TTL of these queries so they don't propagate forever.
|
||||
|
||||
# Domains
|
||||
At the start I said that I would use the existing DNS servers. If a domain is registered at a DNS, it will be called the canonical domain. A client will check these first and establish a connection to the server, regardless if it has the server part active or not. Then it would check for the presence. Every client could establish a **"home node"** either using an IPv4/6 or a canonical domain. This would speed up domain resolution as you would be able to query a specific server first instead of having to discover them again.
|
||||
|
||||
Extra idea with the home nodes is that it could form new LANs where the home node handles everything for the clients.
|
Loading…
Add table
Reference in a new issue