diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 6b0fc19..1ab01a1 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,42 +4,16 @@ "type": "split", "children": [ { - "id": "bde2716aaeca2c3a", + "id": "11883abd2160efc0", "type": "tabs", "children": [ { - "id": "2dc64b1d3735d56d", + "id": "2714f48edb8555ee", "type": "leaf", "state": { - "type": "markdown", + "type": "image", "state": { - "file": "Pubky Core/Pkarr/2.Getting Started with Pkarr.md", - "mode": "source", - "source": false - } - } - }, - { - "id": "3593b819d6c78f93", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "Concepts/Credible Exit.md", - "mode": "source", - "source": false - } - } - }, - { - "id": "f30e9fecad7dbed7", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "Technologies/DNS.md", - "mode": "source", - "source": false + "file": "images/pubky-arch.png" } } } @@ -72,7 +46,7 @@ "state": { "type": "search", "state": { - "query": "WIP", + "query": "pkarr", "matchingCase": false, "explainSearch": false, "collapseAll": false, @@ -109,7 +83,7 @@ "state": { "type": "backlink", "state": { - "file": "Pubky Core/Pkarr/2.Getting Started with Pkarr.md", + "file": "images/pubky-arch.png", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -126,7 +100,7 @@ "state": { "type": "outgoing-link", "state": { - "file": "Pubky Core/Pkarr/2.Getting Started with Pkarr.md", + "file": "images/pubky-arch.png", "linksCollapsed": false, "unlinkedCollapsed": true } @@ -149,7 +123,7 @@ "state": { "type": "outline", "state": { - "file": "Pubky Core/Pkarr/2.Getting Started with Pkarr.md" + "file": "images/pubky-arch.png" } } } @@ -171,40 +145,45 @@ "hide-folders:Show hidden folders": false } }, - "active": "2dc64b1d3735d56d", + "active": "75a1317f66991245", "lastOpenFiles": [ - "quartz/public/static/contentIndex.json", - "quartz/public/static", - "quartz/public/index.xml", - "quartz/public/sitemap.xml", - "quartz/public/tags/segwit.html", - "quartz/public/tags/privacy.html", - "quartz/public/tags/index.html", - "quartz/public/tags/Pubky.html", - "quartz/public/tags", - "quartz/public/readme.html", - "quartz/public/index.html", - "quartz/public/images/mermaid_charts/semantic_social_graph.svg", + "images/pubky-core.png_original", + "images/pubky-core.png_exiftool_tmp", + "images/pubky-backend.png_exiftool_tmp", + "images/pubky-arch.png_original", + "images/pubky-arch.png_exiftool_tmp", + "images/pubky-app.png_exiftool_tmp", + "images/pubky-header.png", + "images/pubky-core.png", + "images/pubky-backend.png", + "images/pubky-arch.png", + "images/pubky-app.png", + "images/client-homeserver.png", + "Technologies/DNS.md", + "Concepts/Credible Exit.md", + "The vision of Pubky.md", + "Pubky App/Introduction.md", + "Pubky Core/Introduction.md", + "index.md", + "Pubky Core/Homeservers.md", + "Pubky Core/Pkarr/ELI5.md", + "Technologies/DoH.md", + "Pubky Core/Pkarr/4.Architecture.md", + "Pubky Core/Pkarr/3.Expectations.md", + "Pubky Core/Pkarr/1.Why PKARR?.md", + "Pubky Core/Pkarr/2.Getting Started with PKARR.md", + "Pubky Core/Pkarr/0.Introduction.md", + "quartz/public/404.html", + "quartz/public/quartz/quartz/plugins/transformers/toc.ts", + "quartz/public/quartz/quartz/plugins/transformers/syntax.ts", + "quartz/public/quartz/quartz/plugins/transformers/oxhugofm.ts", + "quartz/public/quartz/quartz/plugins/transformers/ofm.ts", "quartz/public/quartz/quartz/static/og-image.png", "quartz/public/quartz/quartz/static/icon.png", - "quartz/public/images/quartz.png", + "quartz/public/images/mermaid_charts/semantic_social_graph.svg", "quartz/public/images/pubky-header.png", - "quartz/public/images/pubky-core.png", - "quartz/public/images/pubky-backend.png", - "quartz/public/images/pubky-arch.png", - "quartz/public/images/pubky-app.png", - "quartz/public/images/obsidian.png", - "Pubky Core/Pkarr/1.Why Pkarr?.md", - "Pubky Core/Pkarr/0.Introduction.md", "Pubky Core/ELI5.md", - "Pubky Core/Homeservers.md", - "Pubky Core/Introduction.md", - "Technologies/DoH.md", - "Technologies/DNS.md", "Technologies/DHT.md", - "Pubky Core/Pkarr/2.Getting Started with Pkarr.md", - "Concepts/Credible Exit.md", - "Pubky App/Introduction.md", "Pubky App/Backend/Introduction.md", "Pubky App/Client/Introduction.md", "Pubky App/Backend/Web Server.md", @@ -213,11 +192,6 @@ "Pubky App/App Architectures/4. Custom Backend.md", "Pubky App/App Architectures/3. Global Aggregators.md", "Pubky App/App Architectures/2. Client - Homeserver.md", - "Pubky App/App Architectures/1. Introduction.md", - "Concepts/What Is a Decentralized Semantic Social Graph?.md", - "Concepts/Semantic Social Graph.md", - "readme.md", - "Concepts/Censorship.md", - "Technologies/Paykit.md" + "Pubky App/App Architectures/1. Introduction.md" ] } \ No newline at end of file diff --git a/Pubky App/Introduction.md b/Pubky App/Introduction.md index 94465eb..e492236 100644 --- a/Pubky App/Introduction.md +++ b/Pubky App/Introduction.md @@ -32,5 +32,5 @@ It is the part of the Pubky App that you interact with directly. It's responsibl The early versions of Pubky app take some shortcuts over the [[Pubky Core/Introduction|Pubky Core]] design. The MVP app is centralized, therefore we saved time and complexity by aggregating functionality into fewer components. The main two components are the `Homeserver` and the `Indexer` -- The [[Homeservers|homeservers]] fulfils the function of `data stores`, republishing users keys to [[0.Introduction|Pkarr]] and it acts also as an identity-provider (Oauth-like sign-in). Users maintain a trust relationship with the homeserver. +- The [[Homeservers|homeservers]] fulfils the function of `data stores`, republishing users keys to [[0.Introduction|PKARR]] and it acts also as an identity-provider (Oauth-like sign-in). Users maintain a trust relationship with the homeserver. - The `Indexer` fulfils the function of the [[Pubky App/Backend/Introduction|backend]] for the Pubky App. diff --git a/Pubky Core/Homeservers.md b/Pubky Core/Homeservers.md index 0e1f5fd..a493c3c 100644 --- a/Pubky Core/Homeservers.md +++ b/Pubky Core/Homeservers.md @@ -1,6 +1,6 @@ The Pubky network allows multiple, independent data stores, known as "homeservers." This improves [[Censorship|censorship-resistance]] and prevents any single entity from controlling the flow of information, or locking people & data in as a walled garden. -Homeservers are meant to represent a primary place to retrieve data from a specific [[0.Introduction|pkarr]] public key, but the user can redefine the location of their homeserver at will by updating their [[0.Introduction|pkarr]] in [[DHT|mainline DHT]]. +Homeservers are meant to represent a primary place to retrieve data from a specific [[0.Introduction|PKARR]] public key, but the user can redefine the location of their homeserver at will by updating their [[0.Introduction|PKARR]] in [[DHT|mainline DHT]]. ## Public vs Private Data diff --git a/Pubky Core/Introduction.md b/Pubky Core/Introduction.md index db2b3b4..0720253 100644 --- a/Pubky Core/Introduction.md +++ b/Pubky Core/Introduction.md @@ -6,7 +6,7 @@ Pubky Core is built on a few core concepts: - **[[Homeservers|Homeserver]]** - Decentralized data storage nodes that host user data. Data is encrypted at rest. -- **[[0.Introduction|Pkarr]]** - Self-issued public keys that function as sovereign, publicly addressable domains are used to resolve the previous components. +- **[[0.Introduction|PKARR]]** - Self-issued public keys that function as sovereign, publicly addressable domains are used to resolve the previous components. Pubky Core's distributed architecture aims to provide user autonomy through [[Credible Exit|credible exit]] between interchangeable components. diff --git a/Pubky Core/Pkarr/0.Introduction.md b/Pubky Core/Pkarr/0.Introduction.md index f52aab0..78c5e23 100644 --- a/Pubky Core/Pkarr/0.Introduction.md +++ b/Pubky Core/Pkarr/0.Introduction.md @@ -1,26 +1,26 @@ ## Public-Key Addressable Resource Records -[Pkarr](https://pkarr.org) is a revolutionary system that bridges the gap between the Domain Name System ([[DNS]]) and peer-to-peer overlay networks. It allows self-issued public keys to function as sovereign, publicly addressable domains. This means that anyone with a private key can have a domain that is accessible to everyone. +[PKARR](https://pkarr.org) is a revolutionary system that bridges the gap between the Domain Name System ([[DNS]]) and peer-to-peer overlay networks. It allows self-issued public keys to function as sovereign, publicly addressable domains. This means that anyone with a private key can have a domain that is accessible to everyone. The core idea is to streamline the process of publishing and resolving resource records for keys, leveraging the Distributed Hash Table ([[DHT]]) for efficient and scalable data distribution. ## Key Features -- **Simplicity**: Pkarr streamlines the integration between [[DNS]] and peer-to-peer networks. +- **Simplicity**: PKARR streamlines the integration between [[DNS]] and peer-to-peer networks. - **Sovereignty**: Public keys can be used as domains, enabling users to maintain control over their digital identities. - **Accessibility**: The system is designed to be accessible to anyone capable of maintaining a private key. - **Scalability and Resilience**: Designed with scalability and resilience in mind, using the [[Mainline DHT]] for storing ephemeral data, and employing caching strategies to minimize [[DHT]] traffic. -- **Compatibility with Existing Applications**: Supports existing applications through [[DNS]] over [[HTTPS]] ([[DoH]]) queries to Pkarr servers, ensuring broad compatibility. +- **Compatibility with Existing Applications**: Supports existing applications through [[DNS]] over [[HTTPS]] ([[DoH]]) queries to PKARR servers, ensuring broad compatibility. ## How It Works 1. **Publishing Records**: To publish resource records for a key, create a small encoded [[DNS]] packet (<= 1000 bytes), sign it, and publish it on the DHT. This can be done directly or through a relay if necessary. 2. **Resolving Records**: To find resources associated with a key, applications can query the [[DHT]] directly or through a relay, verifying the signature themselves. -3. **Fallback for Existing Applications**: Applications unaware of Pkarr can make normal [[DNS]] Queries over [[HTTPS]] (DoH) to Pkarr servers, ensuring accessibility. -4. **Caching and Republishing**: Both clients and Pkarr servers cache records extensively to improve scalability. The [[DHT]] drops records after a few hours, necessitating periodic republishing to keep records alive. +3. **Fallback for Existing Applications**: Applications unaware of PKARR can make normal [[DNS]] Queries over [[HTTPS]] (DoH) to PKARR servers, ensuring accessibility. +4. **Caching and Republishing**: Both clients and PKARR servers cache records extensively to improve scalability. The [[DHT]] drops records after a few hours, necessitating periodic republishing to keep records alive. -For more technical details on Pkarr's architecture and how it works, refer to the [[4.Architecture|architecture]] note. +For more technical details on PKARR's architecture and how it works, refer to the [[4.Architecture|architecture]] note. ## Getting Started -[To start using Pkarr](2.Getting%20Started%20with%20Pkarr.md), you can visit the [web app demo](https://app.pkarr.org) or explore the Rust examples provided in [Pkarr repository](https://github.com/Nuhvi/pkarr/). +[To start using PKARR](2.Getting%20Started%20with%20PKARR.md), you can visit the [web app demo](https://app.pkarr.org) or explore the Rust examples provided in [PKARR repository](https://github.com/Nuhvi/pkarr/). diff --git a/Pubky Core/Pkarr/1.Why Pkarr?.md b/Pubky Core/Pkarr/1.Why Pkarr?.md index 92e1b0a..cfdcb4f 100644 --- a/Pubky Core/Pkarr/1.Why Pkarr?.md +++ b/Pubky Core/Pkarr/1.Why Pkarr?.md @@ -1,4 +1,4 @@ -This note explores the motivation behind Pkarr, addressing the challenges of distributed semantics, databases, and discovery. +This note explores the motivation behind [[0.Introduction|PKARR]], addressing the challenges of distributed semantics, databases, and discovery. In pursuit of a sovereign, distributed, and open web, we identify three challenges: diff --git a/Pubky Core/Pkarr/2.Getting Started with Pkarr.md b/Pubky Core/Pkarr/2.Getting Started with Pkarr.md index 7945ba7..09210de 100644 --- a/Pubky Core/Pkarr/2.Getting Started with Pkarr.md +++ b/Pubky Core/Pkarr/2.Getting Started with Pkarr.md @@ -1,4 +1,4 @@ -This guide will help you understand how to publish and resolve resource records using [[0.Introduction|pkarr]]. +This guide will help you understand how to publish and resolve resource records using [[0.Introduction|PKARR]]. ## Publishing Resource Records @@ -10,12 +10,12 @@ To resolve some key's resources, applications can query the [[DHT]] directly or ## DNS Queries Over HTTPS -Existing applications unaware of [[0.Introduction|pkarr]] can make normal [[DNS]] Queries over [[HTTPS]] ([[DoH]]) to [[0.Introduction|pkarr]] servers. +Existing applications unaware of [[0.Introduction|PKARR]] can make normal [[DNS]] Queries over [[HTTPS]] ([[DoH]]) to [[0.Introduction|PKARR]] servers. ## Caching and Scalability -Clients and [[0.Introduction|pkarr]] servers cache records extensively to minimize [[DHT]] traffic and improve scalability. The [[DHT]] drops records after a few hours, so it's important to republish records periodically. +Clients and [[0.Introduction|PKARR]] servers cache records extensively to minimize [[DHT]] traffic and improve scalability. The [[DHT]] drops records after a few hours, so it's important to republish records periodically. ## Next Steps -For more technical details on [[0.Introduction|pkarr]]'s architecture and how it works, refer to the [[4.Architecture|architecture]] note. +For more technical details on [[0.Introduction|PKARR]]'s architecture and how it works, refer to the [[4.Architecture|architecture]] note. diff --git a/Pubky Core/Pkarr/3.Expectations.md b/Pubky Core/Pkarr/3.Expectations.md index ebf5584..d32dd61 100644 --- a/Pubky Core/Pkarr/3.Expectations.md +++ b/Pubky Core/Pkarr/3.Expectations.md @@ -1,12 +1,12 @@ -Understanding the expectations and limitations of [[0.Introduction|pkarr]] is crucial for effective use. This note outlines what [[0.Introduction|pkarr]] is not and what users should expect. +Understanding the expectations and limitations of [[0.Introduction|PKARR]] is crucial for effective use. This note outlines what [[0.Introduction|PKARR]] is not and what users should expect. ## Not a Storage Platform -[[0.Introduction|pkarr]] is not a storage platform. Records are ephemeral and need to be refreshed regularly to remain on the DHT. +[[0.Introduction|PKARR]] is not a storage platform. Records are ephemeral and need to be refreshed regularly to remain on the DHT. ## Not a Real-time Communication Medium -[[0.Introduction|pkarr]] is not designed for real-time communication. It is optimized for infrequent updates and heavy caching to reduce traffic. +[[0.Introduction|PKARR]] is not designed for real-time communication. It is optimized for infrequent updates and heavy caching to reduce traffic. ## Rate Limiting and Proof of Work @@ -18,4 +18,4 @@ Records are heavily cached, and updates might take some time to propagate. In ca ## Next Steps -For a deeper understanding of why [[0.Introduction|pkarr]] was created and its motivation, refer to the [[1.Why Pkarr?|why pkarr?]] note. +For a deeper understanding of why [[0.Introduction|PKARR]] was created and its motivation, refer to the [[1.Why PKARR?|why PKARR?]] note. diff --git a/Pubky Core/Pkarr/4.Architecture.md b/Pubky Core/Pkarr/4.Architecture.md index 741d1b2..9c5752a 100644 --- a/Pubky Core/Pkarr/4.Architecture.md +++ b/Pubky Core/Pkarr/4.Architecture.md @@ -1,4 +1,4 @@ -In-depth look at the architecture of [[0.Introduction|pkarr]], including its components and how they interact. +In-depth look at the architecture of [[0.Introduction|PKARR]], including its components and how they interact. ## Components - **Client**: Applications or users that publish or query resource records. @@ -14,5 +14,5 @@ In-depth look at the architecture of [[0.Introduction|pkarr]], including its com ## Key Technologies -- **[[Mainline DHT]]**: Pkarr uses the Mainline [[DNS]] as its overlay network, specifically BEP44 for storing ephemeral data. -- **[[DNS]] over [[HTTPS]] ([[DoH]])**: For applications unaware of Pkarr, DoH is used to resolve domains. +- **[[Mainline DHT]]**: PKARR uses the Mainline [[DNS]] as its overlay network, specifically BEP44 for storing ephemeral data. +- **[[DNS]] over [[HTTPS]] ([[DoH]])**: For applications unaware of PKARR, DoH is used to resolve domains. diff --git a/Technologies/DoH.md b/Technologies/DoH.md index 7b30cd8..98ed4fe 100644 --- a/Technologies/DoH.md +++ b/Technologies/DoH.md @@ -1,6 +1,6 @@ # DNS over HTTPS -It is a security protocol that encrypts [[DNS]] queries and responses, enhancing privacy and security by preventing eavesdropping and tampering. In the context of [[0.Introduction|pkarr]], DoH plays a crucial role in ensuring that [[DNS]] queries made to resolve public-key addresses are secure and cannot be intercepted or manipulated by third parties. +It is a security protocol that encrypts [[DNS]] queries and responses, enhancing privacy and security by preventing eavesdropping and tampering. In the context of [[0.Introduction|PKARR]], DoH plays a crucial role in ensuring that [[DNS]] queries made to resolve public-key addresses are secure and cannot be intercepted or manipulated by third parties. ### Key Points about DoH diff --git a/images/pubky-arch.png b/images/pubky-arch.png index 214bda5..fb91247 100644 Binary files a/images/pubky-arch.png and b/images/pubky-arch.png differ diff --git a/images/pubky-core.png b/images/pubky-core.png index e0974ae..ea7ebc4 100644 Binary files a/images/pubky-core.png and b/images/pubky-core.png differ diff --git a/index.md b/index.md index 0abf32a..edcf1e0 100644 --- a/index.md +++ b/index.md @@ -1,12 +1,12 @@ # Welcome to the Pubky Knowledge Base -This is a knowledge base for the Pubky platform, which includes [[Pubky Core/Introduction|Pubky Core]], [[Pubky Core/Pkarr/0.Introduction|Pkarr]] and [[Pubky App/Introduction|Pubky App]]. These documents are a work in progress, much like Pubky's protocols and applications! +This is a knowledge base for the Pubky platform, which includes [[Pubky Core/Introduction|Pubky Core]], [[Pubky Core/Pkarr/0.Introduction|PKARR]] and [[Pubky App/Introduction|Pubky App]]. These documents are a work in progress, much like Pubky's protocols and applications! # What is Pubky? Pubky attempts to unlock the web by realizing our vision for a key-based, self-regulating web that puts users in control. -So far, Pubky does this by combining practical decentralized routing & identity ([[Pubky Core/Pkarr/0.Introduction|Pkarr]]), with simple interoperable hosting ([[Pubky Core/Homeservers|Homeservers]]) that allow for [[Concepts/Censorship|censorship]] resistance and a [[Concepts/Credible Exit|credible exit]], as well as a publishing application, Pubky App, that facilitates the creation of a [[Concepts/Semantic Social Graph|Semantic Social Graph]], which can be used for filtering, discovery, matching and coordination. +So far, Pubky does this by combining practical decentralized routing & identity ([[Pubky Core/Pkarr/0.Introduction|PKARR]]), with simple interoperable hosting ([[Pubky Core/Homeservers|Homeservers]]) that allow for [[Concepts/Censorship|censorship]] resistance and a [[Concepts/Credible Exit|credible exit]], as well as a publishing application, Pubky App, that facilitates the creation of a [[Concepts/Semantic Social Graph|Semantic Social Graph]], which can be used for filtering, discovery, matching and coordination. Learn more about the overall vision here: [[The vision of Pubky|The Vision of Pubky]]