From 27015424e271b24cad69ab846fda44c173023a4e Mon Sep 17 00:00:00 2001 From: trigger-xyz <10185784+trigger-xyz@users.noreply.github.com> Date: Mon, 23 Mar 2026 16:23:03 +0100 Subject: [PATCH] docs: remove numeric prefixes from Pkarr documentation filenames. And fix broken links. --- .obsidian/workspace.json | 6 +++--- Architecture.md | 2 +- Explore/PubkyApp/Client/Features/Tags.md | 2 +- Explore/PubkyApp/Introduction.md | 2 +- Explore/PubkyCore/API.md | 6 +++--- Explore/PubkyCore/Homeserver.md | 4 ++-- Explore/PubkyCore/Introduction.md | 10 +++++----- Explore/PubkyCore/Pkarr/1.WhyPkarr.md | 4 ++-- .../Pkarr/2.GettingStartedWithPkarr.md | 10 +++++----- Explore/PubkyCore/Pkarr/3.Expectations.md | 11 ++++++----- Explore/PubkyCore/Pkarr/4.Architecture.md | 17 +++++++++-------- .../{0.Introduction.md => Introduction.md} | 4 ++-- Explore/PubkyCore/SDK.md | 6 +++--- Explore/PubkyCore/SecurityModel.md | 10 +++++----- Explore/PubkyCore/index.md | 2 +- Explore/Technologies/DNS.md | 6 +++--- Explore/Technologies/DoH.md | 2 +- Explore/Technologies/MainlineDHT.md | 6 +++--- Explore/Technologies/PKDNS.md | 4 ++-- Explore/Technologies/PubkyExplorer.md | 4 ++-- Explore/Technologies/PubkyRing.md | 2 +- FAQ.md | 2 +- Glossary.md | 6 +++--- index.md | 6 +++--- 24 files changed, 68 insertions(+), 66 deletions(-) rename Explore/PubkyCore/Pkarr/{0.Introduction.md => Introduction.md} (95%) diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index cb6650f..711dc23 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -189,11 +189,11 @@ "Explore/Pubky Core/Homeservers.md", "Explore/Pubky Core/Pkarr/ELI5.md", "Explore/Technologies/DoH.md", - "Explore/Pubky Core/Pkarr/4.Architecture.md", - "Explore/Pubky Core/Pkarr/3.Expectations.md", + "Explore/Pubky Core/Pkarr/Architecture.md", + "Explore/Pubky Core/Pkarr/Expectations.md", "Pubky Core/Pkarr/1.Why PKARR?.md", "Pubky Core/Pkarr/2.Getting Started with PKARR.md", - "Explore/Pubky Core/Pkarr/0.Introduction.md", + "Explore/Pubky Core/Pkarr/Introduction.md", "Explore/Pubky Core/ELI5.md", "Explore/Technologies/DHT.md", "Explore/Pubky App/Backend/Introduction.md", diff --git a/Architecture.md b/Architecture.md index b1b687d..118eb7d 100644 --- a/Architecture.md +++ b/Architecture.md @@ -74,7 +74,7 @@ The foundation of Pubky is cryptographic identity based on **[[KeyPair|key pairs The discovery layer enables finding Homeservers and resolving identities without central servers. **Components:** -- **[[0.Introduction|PKARR]]**: Public Key Addressable Resource Records +- **[[Explore/PubkyCore/Pkarr/Introduction|PKARR]]**: Public Key Addressable Resource Records - **[[MainlineDHT|Mainline DHT]]**: Distributed Hash Table (10M+ nodes) - **[[PKDNS]]**: DNS servers for resolving public-key domains diff --git a/Explore/PubkyApp/Client/Features/Tags.md b/Explore/PubkyApp/Client/Features/Tags.md index 54e24c9..8122e69 100644 --- a/Explore/PubkyApp/Client/Features/Tags.md +++ b/Explore/PubkyApp/Client/Features/Tags.md @@ -3,7 +3,7 @@ aliases: - "../../../Pubky-App/Client/Features/Tags" --- -Tags are free-text labels that any user can publicly assign to **users** or **[[Posts|posts]]**. They are a core building block of the [[Semantic Social Graph|Semantic Social Graph]], turning everyday social interactions into structured, queryable metadata that powers discovery, filtering, and personalized feeds. +Tags are free-text labels that any user can publicly assign to **users** or **[[Posts|posts]]**. They are a core building block of the [[SemanticSocialGraph|Semantic Social Graph]], turning everyday social interactions into structured, queryable metadata that powers discovery, filtering, and personalized feeds. Unlike traditional hashtags where only an author labels their own content, Pubky tags can be applied **by anyone** — you can tag your own profile and posts, and others can tag them too — making them a form of collaborative, crowd-sourced annotation. diff --git a/Explore/PubkyApp/Introduction.md b/Explore/PubkyApp/Introduction.md index 20f3ca9..02df8e5 100644 --- a/Explore/PubkyApp/Introduction.md +++ b/Explore/PubkyApp/Introduction.md @@ -46,5 +46,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 [[Explore/PubkyCore/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 [[Homeserver|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 [[Homeserver|Homeservers]] fulfils the function of `data stores`, republishing users keys to [[Explore/PubkyCore/Pkarr/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 [[Explore/PubkyApp/Backend/Introduction|backend]] for the Pubky App. [[PubkyNexus|Pubky Nexus]] is the production implementation of this indexer, providing real-time social graph aggregation, high-performance search, and a comprehensive REST API. diff --git a/Explore/PubkyCore/API.md b/Explore/PubkyCore/API.md index aa1e923..d69f139 100644 --- a/Explore/PubkyCore/API.md +++ b/Explore/PubkyCore/API.md @@ -5,7 +5,7 @@ aliases: # Pubky Core API Reference -The [[Introduction|Pubky Core]] protocol defines a RESTful HTTP API for storing and retrieving data on [[Homeserver|Homeservers]]. This document describes the complete API specification. +The [[Explore/PubkyCore/Introduction|Pubky Core]] protocol defines a RESTful HTTP API for storing and retrieving data on [[Homeserver|Homeservers]]. This document describes the complete API specification. ## Base URL @@ -15,7 +15,7 @@ All API endpoints are relative to the Homeserver base URL: https://homeserver.example.com ``` -Homeserver URLs are discovered via [[0.Introduction|PKARR]] records published to the [[Explore/Technologies/MainlineDHT|Mainline DHT]]. +Homeserver URLs are discovered via [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] records published to the [[Explore/Technologies/MainlineDHT|Mainline DHT]]. ## Authentication @@ -467,7 +467,7 @@ async function putWithRetry(session, path, data, retries = 3) { ## Resources -- **[[Introduction|Pubky Core Overview]]**: Main documentation +- **[[Explore/PubkyCore/Introduction|Pubky Core Overview]]**: Main documentation - **[[SDK|SDK Documentation]]**: Client libraries - **[[Homeserver|Homeserver Documentation]]**: Server setup - **Official Docs**: [pubky.github.io/pubky-core](https://pubky.github.io/pubky-core/) diff --git a/Explore/PubkyCore/Homeserver.md b/Explore/PubkyCore/Homeserver.md index 956619d..954c785 100644 --- a/Explore/PubkyCore/Homeserver.md +++ b/Explore/PubkyCore/Homeserver.md @@ -6,7 +6,7 @@ aliases: 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]] record in the [[MainlineDHT|Mainline DHT]]. +Homeservers are meant to represent a primary place to retrieve data from a specific [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] public key, but the user can redefine the location of their Homeserver at will by updating their [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] record in the [[MainlineDHT|Mainline DHT]]. ## Architecture @@ -38,7 +38,7 @@ Native Pubky clients connect via PubkyTLS; browsers and legacy clients connect v - Anyone can run their own Homeserver and set their own terms - Homeserver operators can use [[Homegate]] for signup verification, implementing SMS or Lightning Network verification to prevent spam while preserving user privacy - For true [[CredibleExit|credible exit]], users should maintain local backups via [[PubkyBackup|Pubky Backup]]. Homeserver mirroring is planned but not yet implemented -- Users can migrate to a new Homeserver at any time by moving their data and updating their [[0.Introduction|PKARR]] record +- Users can migrate to a new Homeserver at any time by moving their data and updating their [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] record See [[SecurityModel|Security Model]] for the full trust analysis and failure recovery scenarios. diff --git a/Explore/PubkyCore/Introduction.md b/Explore/PubkyCore/Introduction.md index bed9399..c00bcdf 100644 --- a/Explore/PubkyCore/Introduction.md +++ b/Explore/PubkyCore/Introduction.md @@ -11,7 +11,7 @@ aliases: ## Overview -Pubky Core combines a [censorship-resistant public-key-based alternative to DNS](https://github.com/pubky/pkarr) ([[0.Introduction|PKARR]]) with conventional, tried-and-tested web technologies. This keeps users in control of their identities and data while enabling developers to build software with the availability of web apps, without the costs of managing a central database. +Pubky Core combines a [censorship-resistant public-key-based alternative to DNS](https://github.com/pubky/pkarr) ([[Explore/PubkyCore/Pkarr/Introduction|PKARR]]) with conventional, tried-and-tested web technologies. This keeps users in control of their identities and data while enabling developers to build software with the availability of web apps, without the costs of managing a central database. **The Core Philosophy:** > "The Web, long centralized, must decentralize; Long decentralized, must centralize." @@ -31,7 +31,7 @@ The open protocol that defines: - Public key-based authentication - Capability-based authorization - Key-value storage semantics -- Homeserver discovery via [[0.Introduction|PKARR]] +- Homeserver discovery via [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] - RESTful API standards ### 2. Homeserver Implementation @@ -39,7 +39,7 @@ A production-ready server application that: - Hosts user data in key-value stores - Provides RESTful HTTP API - Handles authentication and sessions -- Publishes to [[0.Introduction|PKARR]] for discovery +- Publishes to [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] for discovery - Supports multiple persistence backends (Files, LMDB, SQL) - Includes admin and metrics endpoints @@ -53,9 +53,9 @@ Client libraries for developers: ## Core Concepts ### [[Homeserver|Homeserver]] -Decentralized data storage nodes that host user data. Each user can choose their Homeserver or run their own. Data is stored per public key, and users can migrate between Homeservers by updating their [[0.Introduction|PKARR]] record. +Decentralized data storage nodes that host user data. Each user can choose their Homeserver or run their own. Data is stored per public key, and users can migrate between Homeservers by updating their [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] record. -### [[0.Introduction|PKARR]] +### [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] Self-issued public keys that function as sovereign, publicly addressable domains. PKARR records published to the [[Explore/Technologies/MainlineDHT|Mainline DHT]] point to Homeserver locations, enabling decentralized discovery. ### [[Authentication]] diff --git a/Explore/PubkyCore/Pkarr/1.WhyPkarr.md b/Explore/PubkyCore/Pkarr/1.WhyPkarr.md index 7ad0af5..43e7d00 100644 --- a/Explore/PubkyCore/Pkarr/1.WhyPkarr.md +++ b/Explore/PubkyCore/Pkarr/1.WhyPkarr.md @@ -1,10 +1,10 @@ --- title: "Why PKARR?" aliases: - - "../../Pubky-Core/Pkarr/1.Why-Pkarr" + - "../../Pubky-Core/Pkarr/Why-Pkarr" --- -This note explores the motivation behind [[0.Introduction|PKARR]], addressing the challenges of distributed semantics, databases, and discovery. +This note explores the motivation behind [[Explore/PubkyCore/Pkarr/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/Explore/PubkyCore/Pkarr/2.GettingStartedWithPkarr.md b/Explore/PubkyCore/Pkarr/2.GettingStartedWithPkarr.md index dd0db9f..d619028 100644 --- a/Explore/PubkyCore/Pkarr/2.GettingStartedWithPkarr.md +++ b/Explore/PubkyCore/Pkarr/2.GettingStartedWithPkarr.md @@ -1,10 +1,10 @@ --- title: "Getting Started with PKARR" aliases: - - "../../Pubky-Core/Pkarr/2.Getting-Started-with-Pkarr" + - "../../Pubky-Core/Pkarr/Getting-Started-with-Pkarr" --- -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 [[Explore/PubkyCore/Pkarr/Introduction|PKARR]]. ## Publishing Resource Records @@ -16,12 +16,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 [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] can make normal [[DNS]] Queries over [[HTTPS]] ([[DoH]]) to [[Explore/PubkyCore/Pkarr/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 [[Explore/PubkyCore/Pkarr/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 [[Explore/PubkyCore/Pkarr/Introduction|PKARR]]'s architecture and how it works, refer to the [[Explore/PubkyCore/Pkarr/4.Architecture|architecture]] note. diff --git a/Explore/PubkyCore/Pkarr/3.Expectations.md b/Explore/PubkyCore/Pkarr/3.Expectations.md index 826cfb0..3174154 100644 --- a/Explore/PubkyCore/Pkarr/3.Expectations.md +++ b/Explore/PubkyCore/Pkarr/3.Expectations.md @@ -1,17 +1,18 @@ --- +title: "Expectations" aliases: - - "../../Pubky-Core/Pkarr/3.Expectations" + - "../../Pubky-Core/Pkarr/Expectations" --- -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 [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] is crucial for effective use. This note outlines what [[Explore/PubkyCore/Pkarr/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. +[[Explore/PubkyCore/Pkarr/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. +[[Explore/PubkyCore/Pkarr/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 @@ -23,4 +24,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.WhyPkarr|why PKARR?]] note. +For a deeper understanding of why [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] was created and its motivation, refer to the [[Explore/PubkyCore/Pkarr/1.WhyPkarr|why PKARR?]] note. diff --git a/Explore/PubkyCore/Pkarr/4.Architecture.md b/Explore/PubkyCore/Pkarr/4.Architecture.md index 2b983a8..626ea19 100644 --- a/Explore/PubkyCore/Pkarr/4.Architecture.md +++ b/Explore/PubkyCore/Pkarr/4.Architecture.md @@ -1,16 +1,17 @@ --- +title: "Architecture" aliases: - - "../../Pubky-Core/Pkarr/4.Architecture" + - "../../Pubky-Core/Pkarr/Architecture" --- -In-depth look at the architecture of [[0.Introduction|PKARR]], including its components, data formats, and how they interact. +In-depth look at the architecture of [[Explore/PubkyCore/Pkarr/Introduction|PKARR]], including its components, data formats, and how they interact. ## Components -- **Client**: Applications or users that publish or query [[0.Introduction|PKARR]] records. The main Rust crate provides `Keypair`/`PublicKey` types, `SignedPacket` builder, and `Client` for publishing/resolving. +- **Client**: Applications or users that publish or query [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] records. The main Rust crate provides `Keypair`/`PublicKey` types, `SignedPacket` builder, and `Client` for publishing/resolving. - **Relay**: HTTP relay for environments without UDP access (browsers, firewalled networks). Also serves as intermediary for services on major cloud providers (AWS, GCP, Azure), whose IP ranges are often blocked by DHT nodes. -- **[[MainlineDHT|Mainline DHT]]**: The peer-to-peer network used to announce and resolve [[0.Introduction|PKARR]] records. -- **Republisher**: Keeps [[0.Introduction|PKARR]] records alive on the [[MainlineDHT|Mainline DHT]] by [periodically republishing](https://github.com/pubky/pkarr-churn/blob/main/results-node_decay.md) them (~hourly). The `pkarr-republisher` component handles this for Homeserver operators. +- **[[MainlineDHT|Mainline DHT]]**: The peer-to-peer network used to announce and resolve [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] records. +- **Republisher**: Keeps [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] records alive on the [[MainlineDHT|Mainline DHT]] by [periodically republishing](https://github.com/pubky/pkarr-churn/blob/main/results-node_decay.md) them (~hourly). The `pkarr-republisher` component handles this for Homeserver operators. ## SignedPacket Format @@ -24,9 +25,9 @@ See the [PKARR repository](https://github.com/pubky/pkarr) for the full format s ## Interaction Flow -1. **Publishing**: Clients publish [[0.Introduction|PKARR]] to the [[MainlineDHT|Mainline DHT]], either directly or through a relay (required for browsers since the DHT uses UDP). +1. **Publishing**: Clients publish [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] to the [[MainlineDHT|Mainline DHT]], either directly or through a relay (required for browsers since the DHT uses UDP). 2. **Republishing**: Homeservers and relays republish records for their users to [keep them available](https://github.com/pubky/pkarr-churn/blob/main/results-node_decay.md) on the [[MainlineDHT|Mainline DHT]]. Records degrade over hours to days without republishing, so hourly republishing is recommended. -3. **Querying**: Clients query the [[MainlineDHT|Mainline DHT]] for [[0.Introduction|PKARR]] using the SHA1 hash of the public key, either directly or through a relay. +3. **Querying**: Clients query the [[MainlineDHT|Mainline DHT]] for [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] using the SHA1 hash of the public key, either directly or through a relay. ## Supported DNS Record Types @@ -49,6 +50,6 @@ See [[SecurityModel#Scenario: DHT Unreachable|DHT outages]], [[MainlineDHT#Data ## Key Technologies -- **[[MainlineDHT|Mainline DHT]]**: A global, censorship-resistant p2p network of 10+ million peers. [[0.Introduction|PKARR]] records are announced here using BEP44. +- **[[MainlineDHT|Mainline DHT]]**: A global, censorship-resistant p2p network of 10+ million peers. [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] records are announced here using BEP44. See [[SecurityModel|Security Model]] for the DHT threat model and the [pkarr repository](https://github.com/pubky/pkarr) for code examples and multi-platform support details. diff --git a/Explore/PubkyCore/Pkarr/0.Introduction.md b/Explore/PubkyCore/Pkarr/Introduction.md similarity index 95% rename from Explore/PubkyCore/Pkarr/0.Introduction.md rename to Explore/PubkyCore/Pkarr/Introduction.md index 33d6462..16207d3 100644 --- a/Explore/PubkyCore/Pkarr/0.Introduction.md +++ b/Explore/PubkyCore/Pkarr/Introduction.md @@ -1,6 +1,6 @@ --- aliases: - - "../../Pubky-Core/Pkarr/0.Introduction" + - "../../Pubky-Core/Pkarr/Introduction" --- ## Public-Key Addressable Resource Records @@ -24,7 +24,7 @@ The core idea is to streamline the process of publishing and resolving resource 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 [[Explore/PubkyCore/Pkarr/4.Architecture|architecture]] note. ## Getting Started diff --git a/Explore/PubkyCore/SDK.md b/Explore/PubkyCore/SDK.md index ea7ab79..1bfba9c 100644 --- a/Explore/PubkyCore/SDK.md +++ b/Explore/PubkyCore/SDK.md @@ -5,7 +5,7 @@ aliases: # Pubky SDK: Client Libraries for Decentralized Applications -The Pubky SDK provides client libraries for building applications on [[Introduction|Pubky Core]]. Available in multiple languages with consistent APIs across platforms. +The Pubky SDK provides client libraries for building applications on [[Explore/PubkyCore/Introduction|Pubky Core]]. Available in multiple languages with consistent APIs across platforms. ## Supported Platforms @@ -104,7 +104,7 @@ Every user is identified by an Ed25519 public key: ### Homeserver Discovery -The SDK uses [[0.Introduction|PKARR]] to discover where a user's data is hosted: +The SDK uses [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] to discover where a user's data is hosted: 1. Query [[Explore/Technologies/MainlineDHT|Mainline DHT]] for public key 2. Retrieve PKARR record with Homeserver URL 3. Connect to Homeserver via HTTPS @@ -767,7 +767,7 @@ try { - **React Native Repository**: [github.com/pubky/react-native-pubky](https://github.com/pubky/react-native-pubky) - **iOS/Android FFI**: [github.com/pubky/pubky-core-ffi](https://github.com/pubky/pubky-core-ffi) - Native bindings via UniFFI - **Examples**: [github.com/pubky/pubky-core/tree/main/examples](https://github.com/pubky/pubky-core/tree/main/examples) -- **[[Introduction|Pubky Core Overview]]**: Main documentation +- **[[Explore/PubkyCore/Introduction|Pubky Core Overview]]**: Main documentation - **[[API|API Reference]]**: HTTP API specification --- diff --git a/Explore/PubkyCore/SecurityModel.md b/Explore/PubkyCore/SecurityModel.md index 2a3024c..f800c52 100644 --- a/Explore/PubkyCore/SecurityModel.md +++ b/Explore/PubkyCore/SecurityModel.md @@ -26,7 +26,7 @@ The Pubky security model accepts that some trust is unavoidable in practical sys 3. **[[CredibleExit|Credible Exit]]**: The key guarantee is that users can always leave. A misbehaving homeserver cannot hold your identity hostage because: - Your keypair never leaves your device. [[PubkyRing|Pubky Ring]] is the reference key manager implementation - Your data can be backed up and migrated - - [[0.Introduction|PKARR]] lets you point your identity to a new homeserver immediately + - [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] lets you point your identity to a new homeserver immediately ### The Detection Problem @@ -55,7 +55,7 @@ This model minimizes the attack surface: even a compromised app cannot steal you ### PKARR as Source of Truth -[[0.Introduction|PKARR]] DNS records are the authoritative source for identity resolution: +[[Explore/PubkyCore/Pkarr/Introduction|PKARR]] DNS records are the authoritative source for identity resolution: - When you update your PKARR record to point to a new homeserver, the old one loses authority immediately - Clients that properly resolve PKARR will always find your current homeserver @@ -118,7 +118,7 @@ These are intentional design decisions, not oversights: | Capability enforcement | Yes | Homeserver trusted to honor the capabilities Ring authorized | | Session revocation | Yes | Homeserver trusted to delete sessions when Ring requests | | Key custody | No | Ring is sole key holder; no homeserver recovery path | -| Identity resolution | No | [[0.Introduction|PKARR]] is authoritative; homeserver cannot claim false identity | +| Identity resolution | No | [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] is authoritative; homeserver cannot claim false identity | | Data authenticity | Yes (for now) | Planned: data signing will remove this trust requirement | **Why trust the homeserver for sessions?** @@ -286,7 +286,7 @@ This section shows how [[CredibleExit|credible exit]] works in practice across c |-------|--------------|-------------| | Immediate | Data becomes temporarily inaccessible | Wait for recovery or decide to migrate | | If prolonged | Use [[PubkyBackup|Pubky Backup]] to restore from local backup | Sign up on a new homeserver | -| Recovery | Re-upload data, update [[0.Introduction|PKARR]] record | External links automatically resolve to new location | +| Recovery | Re-upload data, update [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] record | External links automatically resolve to new location | Your identity (keypair in Ring) is unaffected. The homeserver going down is an inconvenience, not a catastrophe. @@ -328,5 +328,5 @@ Across all failure scenarios, the same pattern applies: 1. **Identity survives** — Your keypair is separate from any infrastructure 2. **Data can be recovered** — Via backups or (planned) mirroring -3. **Exit is always possible** — [[0.Introduction|PKARR]] lets you point your identity elsewhere +3. **Exit is always possible** — [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] lets you point your identity elsewhere 4. **Damage is contained** — One failure doesn't cascade to your entire digital life diff --git a/Explore/PubkyCore/index.md b/Explore/PubkyCore/index.md index e2af148..03448e3 100644 --- a/Explore/PubkyCore/index.md +++ b/Explore/PubkyCore/index.md @@ -7,5 +7,5 @@ title: "Pubky Core" - [[Explore/PubkyCore/SDK|SDK]] - [[Explore/PubkyCore/Authentication|Authentication]] - [[Explore/PubkyCore/Homeserver|Homeserver]] -- [[Explore/PubkyCore/Pkarr/0.Introduction|PKARR]] +- [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] - [[Explore/PubkyCore/SecurityModel|Security Model]] diff --git a/Explore/Technologies/DNS.md b/Explore/Technologies/DNS.md index 63f6685..5621845 100644 --- a/Explore/Technologies/DNS.md +++ b/Explore/Technologies/DNS.md @@ -61,7 +61,7 @@ Traditional DNS has fundamental limitations: - **True ownership**: You control your identity and domain through cryptographic keys - **Privacy**: No centralized entity tracks your DNS queries -PKDNS bridges the gap between traditional DNS and the decentralized web, enabling [[0.Introduction|PKARR]] records to function as domains while maintaining compatibility with existing infrastructure. +PKDNS bridges the gap between traditional DNS and the decentralized web, enabling [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] records to function as domains while maintaining compatibility with existing infrastructure. ## Security Considerations @@ -91,7 +91,7 @@ PKDNS provides superior security through: Pubky uses DNS technology in innovative ways: -1. **[[PKDNS]]**: DNS server that resolves public-key domains from [[0.Introduction|PKARR]] records +1. **[[PKDNS]]**: DNS server that resolves public-key domains from [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] records 2. **Hybrid approach**: Supports both traditional ICANN domains and public-key domains 3. **[[DoH]] integration**: Provides encrypted DNS resolution 4. **Homeserver discovery**: PKARR records contain DNS-like entries pointing to [[Homeserver|Homeservers]] @@ -99,7 +99,7 @@ Pubky uses DNS technology in innovative ways: ## See Also - **[[PKDNS]]**: Public-key DNS implementation -- **[[0.Introduction|PKARR]]**: Public key addressable resource records +- **[[Explore/PubkyCore/Pkarr/Introduction|PKARR]]**: Public key addressable resource records - **[[MainlineDHT|Mainline DHT]]**: Distributed hash table powering PKDNS - **[[DoH]]**: DNS over HTTPS for encrypted queries - **[[HTTPS]]**: Secure HTTP protocol diff --git a/Explore/Technologies/DoH.md b/Explore/Technologies/DoH.md index 98ed4fe..ecad019 100644 --- a/Explore/Technologies/DoH.md +++ b/Explore/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 [[Explore/PubkyCore/Pkarr/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/Explore/Technologies/MainlineDHT.md b/Explore/Technologies/MainlineDHT.md index 3e0f321..453ef35 100644 --- a/Explore/Technologies/MainlineDHT.md +++ b/Explore/Technologies/MainlineDHT.md @@ -6,7 +6,7 @@ aliases: Mainline [[DHT]] is a standard Distributed Hash Table (DHT) implementation widely used in the BitTorrent network, based on the [Kademlia](https://en.wikipedia.org/wiki/Kademlia) protocol. This decentralized system allows for efficient data storage and retrieval across a vast network of nodes, making it highly resilient and scalable. -Pubky uses Mainline DHT as the foundation for [[0.Introduction|PKARR]] (Public Key Addressable Resource Records), enabling decentralized identity and discovery without central authorities. +Pubky uses Mainline DHT as the foundation for [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] (Public Key Addressable Resource Records), enabling decentralized identity and discovery without central authorities. ## Key Features @@ -22,7 +22,7 @@ Pubky uses Mainline DHT as the foundation for [[0.Introduction|PKARR]] (Public K ### Identity Resolution When you access a public-key domain (e.g., `pubky://o4dksfbqk85ogzdb5osziw6befigbuxmuxkuxq8434q89uj56uyy`): 1. [[PKDNS]] queries Mainline DHT for that public key -2. DHT returns signed [[0.Introduction|PKARR]] records +2. DHT returns signed [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] records 3. Records contain Homeserver URLs and other DNS-style resource records 4. Your client can now connect to the user's Homeserver @@ -78,6 +78,6 @@ From the PKARR project's perspective, Mainline DHT was chosen because: ## Related Documentation -- [[0.Introduction|PKARR]] - Public Key Addressable Resource Records built on Mainline DHT +- [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] - Public Key Addressable Resource Records built on Mainline DHT - [[PKDNS]] - DNS server that resolves public-key domains via DHT queries - [[DHT]] - General Distributed Hash Table concepts diff --git a/Explore/Technologies/PKDNS.md b/Explore/Technologies/PKDNS.md index 8d67f30..79ed756 100644 --- a/Explore/Technologies/PKDNS.md +++ b/Explore/Technologies/PKDNS.md @@ -1,6 +1,6 @@ # PKDNS: Public-Key DNS Server -**PKDNS** is a DNS server that enables self-sovereign and censorship-resistant domain names by resolving [[0.Introduction|PKARR]] (Public Key Addressable Resource Records) hosted on the [[MainlineDHT|Mainline DHT]]. It bridges the gap between traditional DNS infrastructure and public key-based domains, allowing anyone to access the decentralized web using standard DNS protocols. +**PKDNS** is a DNS server that enables self-sovereign and censorship-resistant domain names by resolving [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] (Public Key Addressable Resource Records) hosted on the [[MainlineDHT|Mainline DHT]]. It bridges the gap between traditional DNS infrastructure and public key-based domains, allowing anyone to access the decentralized web using standard DNS protocols. ## Overview @@ -463,7 +463,7 @@ pkdns -f 1.1.1.1:53 # Cloudflare DNS ## See Also -- [[0.Introduction|PKARR]] - Public Key Addressable Resource Records +- [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] - Public Key Addressable Resource Records - [[MainlineDHT|Mainline DHT]] - Distributed hash table powering PKDNS - [[DNS]] - Traditional Domain Name System - [[DoH]] - DNS over HTTPS protocol diff --git a/Explore/Technologies/PubkyExplorer.md b/Explore/Technologies/PubkyExplorer.md index 459217c..22befa3 100644 --- a/Explore/Technologies/PubkyExplorer.md +++ b/Explore/Technologies/PubkyExplorer.md @@ -28,7 +28,7 @@ Pubky Explorer makes it easy to browse the public data stored across the Pubky n Pubky Explorer uses the [[Explore/PubkyCore/SDK|Pubky SDK]] to: -1. **Resolve Public Keys**: Convert public keys to Homeserver URLs via [[0.Introduction|PKARR]] +1. **Resolve Public Keys**: Convert public keys to Homeserver URLs via [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] 2. **List Directories**: Fetch directory contents from Homeservers 3. **Fetch Files**: Retrieve individual files for preview 4. **Display Content**: Render files appropriately based on content type @@ -350,6 +350,6 @@ Potential improvements for Pubky Explorer: - [[Homeserver]] - Data storage explained - [[Explore/PubkyCore/SDK|Pubky Core SDK]] - How data access works - [[Explore/PubkyCore/API|Pubky Core API]] - Homeserver HTTP API -- [[0.Introduction|PKARR]] - Public key resolution +- [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] - Public key resolution - [[FAQ#Q14a]] - FAQ entry about exploring data diff --git a/Explore/Technologies/PubkyRing.md b/Explore/Technologies/PubkyRing.md index 80c893d..ed67085 100644 --- a/Explore/Technologies/PubkyRing.md +++ b/Explore/Technologies/PubkyRing.md @@ -253,7 +253,7 @@ Pubky Ring is the **identity foundation** for: ### Pubky Core - Manages [[KeyPair|Ed25519 identity keys]] -- Publishes keys via [[Explore/PubkyCore/Pkarr/0.Introduction|PKARR]] to [[Explore/Technologies/MainlineDHT|Mainline DHT]] +- Publishes keys via [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] to [[Explore/Technologies/MainlineDHT|Mainline DHT]] - Authorizes apps to store data on [[Homeserver|Homeservers]] ### Pubky App diff --git a/FAQ.md b/FAQ.md index 667b96d..c6731c9 100644 --- a/FAQ.md +++ b/FAQ.md @@ -34,7 +34,7 @@ Install the [[Explore/PubkyCore/SDK|Pubky SDK]] for your platform (Rust: `cargo "Public Key Addressable Resource Records" your signed DNS-like records published on the DHT. **Q8. What is PKDNS?** -[[PKDNS]] is a DNS server that resolves public-key domains by fetching [[0.Introduction|PKARR]] records from the [[MainlineDHT|Mainline DHT]]. It enables self-sovereign, censorship-resistant domain names while still supporting traditional ICANN domains. Anyone can run a PKDNS server or use public instances to access the decentralized web. See [[PKDNS]] for setup guides and publishing instructions. +[[PKDNS]] is a DNS server that resolves public-key domains by fetching [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] records from the [[MainlineDHT|Mainline DHT]]. It enables self-sovereign, censorship-resistant domain names while still supporting traditional ICANN domains. Anyone can run a PKDNS server or use public instances to access the decentralized web. See [[PKDNS]] for setup guides and publishing instructions. **Q9. How does Pubky compare to DNS?** Pubky replaces ICANN with your public key. You publish and resolve records yourself. diff --git a/Glossary.md b/Glossary.md index 17e3a00..ffcf79b 100644 --- a/Glossary.md +++ b/Glossary.md @@ -26,7 +26,7 @@ The ability to leave a service provider (Homeserver, app, etc.) without losing y ## D **[[DHT|Distributed Hash Table (DHT)]]** -A decentralized key-value storage system distributed across many nodes. Pubky uses [[MainlineDHT|Mainline DHT]] for storing [[PKARR]] records. +A decentralized key-value storage system distributed across many nodes. Pubky uses [[MainlineDHT|Mainline DHT]] for storing [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] records. **[[DNS|Domain Name System (DNS)]]** Traditional system for translating domain names to IP addresses. [[PKDNS]] extends this to support public-key domains. @@ -60,7 +60,7 @@ A pair of cryptographic keys (public and private) used for identity, authenticat ## M **[[MainlineDHT|Mainline DHT]]** -The Distributed Hash Table used by BitTorrent, with 10+ million nodes globally. Pubky uses it to store [[PKARR]] records, providing censorship-resistant discovery. +The Distributed Hash Table used by BitTorrent, with 10+ million nodes globally. Pubky uses it to store [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] records, providing censorship-resistant discovery. ## N @@ -75,7 +75,7 @@ Noise Protocol implementation for encrypted peer-to-peer communication in the Pu **[[Explore/Technologies/Paykit|Paykit]]** Payment protocol built on Pubky for payment discovery and coordination across Bitcoin, Lightning, and other methods (work in progress). -**[[0.Introduction|PKARR]]** (Public Key Addressable Resource Records) +**[[Explore/PubkyCore/Pkarr/Introduction|PKARR]]** (Public Key Addressable Resource Records) Self-issued, signed DNS-like records published to the Mainline DHT. Each record is tied to a public key and contains information like Homeserver locations. **[[PKDNS]]** diff --git a/index.md b/index.md index d261933..b6e78bc 100644 --- a/index.md +++ b/index.md @@ -4,13 +4,13 @@ title: "Pubky Knowledge Base" ## Welcome to the Pubky Knowledge Base -This is a knowledge base for the Pubky platform, which includes [[Explore/PubkyCore/Introduction|Pubky Core]], [[0.Introduction|PKARR]] and [[Explore/PubkyApp/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 [[Explore/PubkyCore/Introduction|Pubky Core]], [[Explore/PubkyCore/Pkarr/Introduction|PKARR]] and [[Explore/PubkyApp/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 ([[0.Introduction|PKARR]]), with simple interoperable hosting ([[Homeserver|Homeservers]]) that allow for [[Censorship|censorship]] resistance and a [[CredibleExit|credible exit]], as well as a publishing application, Pubky App, that facilitates the creation of a [[SemanticSocialGraph|Semantic Social Graph]], which can be used for filtering, discovery, matching and coordination. +So far, Pubky does this by combining practical decentralized routing & identity ([[Explore/PubkyCore/Pkarr/Introduction|PKARR]]), with simple interoperable hosting ([[Homeserver|Homeservers]]) that allow for [[Censorship|censorship]] resistance and a [[CredibleExit|credible exit]], as well as a publishing application, Pubky App, that facilitates the creation of a [[SemanticSocialGraph|Semantic Social Graph]], which can be used for filtering, discovery, matching and coordination. Learn more about the overall vision here: [[TheVisionOfPubky|The Vision of Pubky]] @@ -102,7 +102,7 @@ Understand the fundamental ideas behind Pubky: - **[[SemanticSocialGraph|Semantic Social Graph]]** - Tagged relationships and user-controlled filtering - **[[Censorship|Censorship Resistance]]** - Why centralized platforms fail - **[[CredibleExit|Credible Exit]]** - Freedom to switch providers without losing data -- **[[0.Introduction|PKARR]]** - Public key addressable resource records +- **[[Explore/PubkyCore/Pkarr/Introduction|PKARR]]** - Public key addressable resource records - **[[MainlineDHT|Mainline DHT]]** - Distributed hash table for discovery ## Work in Progress: Payment Protocol