fix broken links
113
.obsidian/workspace.json
vendored
@@ -4,35 +4,46 @@
|
|||||||
"type": "split",
|
"type": "split",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "096ff39c8b3a2932",
|
"id": "bde2716aaeca2c3a",
|
||||||
"type": "tabs",
|
"type": "tabs",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "8fd5812ca70f0ab7",
|
"id": "2dc64b1d3735d56d",
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "App Architectures/2. Client - Homeserver.md",
|
"file": "Pubky Core/Pkarr/2.Getting Started with Pkarr.md",
|
||||||
"mode": "source",
|
"mode": "source",
|
||||||
"source": false
|
"source": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "eaab76dfc5b558e5",
|
"id": "3593b819d6c78f93",
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "App Architectures/4. Custom Backend.md",
|
"file": "Concepts/Credible Exit.md",
|
||||||
|
"mode": "source",
|
||||||
|
"source": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "f30e9fecad7dbed7",
|
||||||
|
"type": "leaf",
|
||||||
|
"state": {
|
||||||
|
"type": "markdown",
|
||||||
|
"state": {
|
||||||
|
"file": "Technologies/DNS.md",
|
||||||
"mode": "source",
|
"mode": "source",
|
||||||
"source": false
|
"source": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
]
|
||||||
"currentTab": 1
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"direction": "vertical"
|
"direction": "vertical"
|
||||||
@@ -61,7 +72,7 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "search",
|
"type": "search",
|
||||||
"state": {
|
"state": {
|
||||||
"query": "",
|
"query": "WIP",
|
||||||
"matchingCase": false,
|
"matchingCase": false,
|
||||||
"explainSearch": false,
|
"explainSearch": false,
|
||||||
"collapseAll": false,
|
"collapseAll": false,
|
||||||
@@ -98,7 +109,7 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "backlink",
|
"type": "backlink",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "App Architectures/4. Custom Backend.md",
|
"file": "Pubky Core/Pkarr/2.Getting Started with Pkarr.md",
|
||||||
"collapseAll": false,
|
"collapseAll": false,
|
||||||
"extraContext": false,
|
"extraContext": false,
|
||||||
"sortOrder": "alphabetical",
|
"sortOrder": "alphabetical",
|
||||||
@@ -115,7 +126,7 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "outgoing-link",
|
"type": "outgoing-link",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "App Architectures/4. Custom Backend.md",
|
"file": "Pubky Core/Pkarr/2.Getting Started with Pkarr.md",
|
||||||
"linksCollapsed": false,
|
"linksCollapsed": false,
|
||||||
"unlinkedCollapsed": true
|
"unlinkedCollapsed": true
|
||||||
}
|
}
|
||||||
@@ -138,7 +149,7 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "outline",
|
"type": "outline",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "App Architectures/4. Custom Backend.md"
|
"file": "Pubky Core/Pkarr/2.Getting Started with Pkarr.md"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -160,53 +171,53 @@
|
|||||||
"hide-folders:Show hidden folders": false
|
"hide-folders:Show hidden folders": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"active": "eaab76dfc5b558e5",
|
"active": "2dc64b1d3735d56d",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
"Pubky App/Introduction.md",
|
|
||||||
"App Architectures/4. Custom Backend.md",
|
|
||||||
"Pubky Core/Introduction.md",
|
|
||||||
"App Architectures/1. Introduction.md",
|
|
||||||
"Pubky Applications.md",
|
|
||||||
"App Architectures/5. Complex - Custom Aggregator.md",
|
|
||||||
"App Architectures/2. Client - Homeserver.md",
|
|
||||||
"App Architectures/3. Global Aggregators.md",
|
|
||||||
"Pubky Core.md",
|
|
||||||
"images/complex_custom_aggregator.png",
|
|
||||||
"images/global_aggregator.png",
|
|
||||||
"images/global-aggregator.png",
|
|
||||||
"images/custom_backend.png",
|
|
||||||
"images/client-homeserver.png",
|
|
||||||
"images/custom-backend.png",
|
|
||||||
"readme.md",
|
|
||||||
"index.md",
|
|
||||||
"ELI5.md",
|
|
||||||
"Technologies/Paykit.md",
|
|
||||||
"Technologies/Mainline DHT.md",
|
|
||||||
"Technologies/Key Pair.md",
|
|
||||||
"Technologies/HTTPS.md",
|
|
||||||
"Technologies/DoH.md",
|
|
||||||
"Technologies/DNS.md",
|
|
||||||
"Technologies/DHT.md",
|
|
||||||
"Pubky Core/Data Stores.md",
|
|
||||||
"Pubky Core/Pkarr/4.Architecture.md",
|
|
||||||
"Pubky Core/Pkarr/3.Expectations.md",
|
|
||||||
"Pubky Core/Pkarr/2.Getting Started with Pkarr.md",
|
|
||||||
"Pubky Core/Pkarr/1.Why Pkarr?.md",
|
|
||||||
"Pubky Core/Pkarr/0.Introduction.md",
|
|
||||||
"Pubky Core/notes/3.Protocols.md",
|
|
||||||
"images/obsidian.png",
|
|
||||||
"quartz/public/404.html",
|
|
||||||
"quartz/public/static/og-image.png",
|
|
||||||
"quartz/public/static/icon.png",
|
|
||||||
"quartz/public/static/contentIndex.json",
|
"quartz/public/static/contentIndex.json",
|
||||||
"quartz/public/static",
|
"quartz/public/static",
|
||||||
"quartz/public/index.xml",
|
"quartz/public/index.xml",
|
||||||
"quartz/public/sitemap.xml",
|
"quartz/public/sitemap.xml",
|
||||||
|
"quartz/public/tags/segwit.html",
|
||||||
|
"quartz/public/tags/privacy.html",
|
||||||
"quartz/public/tags/index.html",
|
"quartz/public/tags/index.html",
|
||||||
|
"quartz/public/tags/Pubky.html",
|
||||||
"quartz/public/tags",
|
"quartz/public/tags",
|
||||||
|
"quartz/public/readme.html",
|
||||||
"quartz/public/index.html",
|
"quartz/public/index.html",
|
||||||
"quartz/public/Technologies/index.html",
|
"quartz/public/images/mermaid_charts/semantic_social_graph.svg",
|
||||||
"quartz/public/Technologies/Paykit.html",
|
"quartz/public/quartz/quartz/static/og-image.png",
|
||||||
"quartz/public/quartz/quartz/static/og-image.png"
|
"quartz/public/quartz/quartz/static/icon.png",
|
||||||
|
"quartz/public/images/quartz.png",
|
||||||
|
"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",
|
||||||
|
"Pubky App/Backend/Indexer.md",
|
||||||
|
"Pubky App/Backend/Aggregator.md",
|
||||||
|
"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"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,3 @@
|
|||||||
|
|
||||||
## Censorship
|
|
||||||
|
|
||||||
**Censorship** is the suppression or control of speech, communication, or information by a governing body or authority, often resulting in a lack of free expression and limited user autonomy.
|
**Censorship** is the suppression or control of speech, communication, or information by a governing body or authority, often resulting in a lack of free expression and limited user autonomy.
|
||||||
|
|
||||||
Imagine you’ve been using a social platform to share your thoughts and connect with others. One day, you notice that your posts are disappearing or are no longer visible to your friends. Your reach is being reduced, and your voice is being silenced. This is an example of **censorship** at play—when someone else decides what you can and cannot say online, and what others can and cannot see.
|
Imagine you’ve been using a social platform to share your thoughts and connect with others. One day, you notice that your posts are disappearing or are no longer visible to your friends. Your reach is being reduced, and your voice is being silenced. This is an example of **censorship** at play—when someone else decides what you can and cannot say online, and what others can and cannot see.
|
||||||
@@ -17,7 +14,7 @@ However, this doesn't mean we should accept censorship without a solution. Inste
|
|||||||
|
|
||||||
In **Pubky**, the approach is not to eliminate censorship entirely—because some level of censorship will always exist where there are centralized components—but rather to provide users with a way to **circumvent** it when it happens.
|
In **Pubky**, the approach is not to eliminate censorship entirely—because some level of censorship will always exist where there are centralized components—but rather to provide users with a way to **circumvent** it when it happens.
|
||||||
|
|
||||||
- **Flexible Hosting**: Pubky provides a flexible hosting model using trusted servers known as **Homeservers**. While these servers may be subject to censorship, Pubky ensures that users have the ability to migrate away from a censoring server whenever needed. Users can move their data, identities, and connections seamlessly, meaning they retain control even in the face of censorship.
|
- **Flexible Hosting**: Pubky provides a flexible hosting model using trusted servers known as [[Homeservers|homeservers]]. While these servers may be subject to censorship, Pubky ensures that users have the ability to migrate away from a censoring server whenever needed. Users can move their data, identities, and connections seamlessly, meaning they retain control even in the face of censorship.
|
||||||
|
|
||||||
- **Decentralized Identity**: In Pubky, user identities are not dependent on any single server. By using **self-issued public keys**, users maintain their identity even if they change hosting providers. This prevents identity loss when moving away from a server that engages in censorship.
|
- **Decentralized Identity**: In Pubky, user identities are not dependent on any single server. By using **self-issued public keys**, users maintain their identity even if they change hosting providers. This prevents identity loss when moving away from a server that engages in censorship.
|
||||||
|
|
||||||
@@ -26,13 +23,13 @@ In **Pubky**, the approach is not to eliminate censorship entirely—because som
|
|||||||
## Important Aspects of Censorship Resistance
|
## Important Aspects of Censorship Resistance
|
||||||
|
|
||||||
- **Data Control**: Users should always have access to and control over their data, even if one hosting provider chooses to censor it. Pubky’s approach empowers users by ensuring they are not dependent on any one server.
|
- **Data Control**: Users should always have access to and control over their data, even if one hosting provider chooses to censor it. Pubky’s approach empowers users by ensuring they are not dependent on any one server.
|
||||||
- **Migration and Interoperability**: The ability to migrate data, identities, and connections between different homeservers helps users remain resilient against censorship. Interoperable systems mean that even if one provider blocks content, another can provide access.
|
- **Migration and Interoperability**: The ability to migrate data, identities, and connections between different [[Homeservers|homeservers]] helps users remain resilient against censorship. Interoperable systems mean that even if one provider blocks content, another can provide access.
|
||||||
- **Local Copies and Self-Hosting**: Users can keep local copies of their data, and Pubky encourages self-hosting, giving users more control over what happens to their information and ensuring their content is not subjected to centralized oversight.
|
- **Local Copies and Self-Hosting**: Users can keep local copies of their data, and Pubky encourages self-hosting, giving users more control over what happens to their information and ensuring their content is not subjected to centralized oversight.
|
||||||
|
|
||||||
## Challenges and Considerations
|
## Challenges and Considerations
|
||||||
|
|
||||||
- **Legal Compliance**: Censorship is often tied to legal requirements that hosting providers must comply with. Even decentralized systems will face challenges related to legal jurisdictions, and Pubky is designed to navigate but not entirely eliminate these legal issues.
|
- **Legal Compliance**: Censorship is often tied to legal requirements that hosting providers must comply with. Even decentralized systems will face challenges related to legal jurisdictions, and Pubky is designed to navigate but not entirely eliminate these legal issues.
|
||||||
- **Content Moderation**: Some forms of moderation are necessary—whether it's to filter out spam or harmful content. Pubky facilitates **user-controlled moderation**, where individuals or groups decide what they want to see, rather than a centralized authority imposing a one-size-fits-all policy.
|
- **Content Moderation**: Some forms of moderation are necessary—whether it's to filter out spam or harmful content. Pubky facilitates **user-controlled moderation**, where individuals or groups decide what they want to see, rather than a centralized authority imposing a one-size-fits-all policy.
|
||||||
- **Redundancy Limitations**: While Pubky's redundancy and migration features provide resilience, they depend on the presence of multiple homeserver options. During the early phases, users may face limited availability of alternative servers.
|
- **Redundancy Limitations**: While Pubky's redundancy and migration features provide resilience, they depend on the presence of multiple [[Homeservers|homeservers]] options. During the early phases, users may face limited availability of alternative servers.
|
||||||
|
|
||||||
Censorship on the web is inevitable, but that doesn't mean users have to be powerless. With Pubky, you have the ability to choose your hosting, migrate your data, and maintain your identity—all key tools for resisting censorship. Pubky's design assumes censorship will happen and provides the mechanisms needed to overcome it. This empowers users with true control, ensuring that no single entity can unilaterally suppress their voice. The future of the web lies in resilient, user-first systems that put individuals back in control of their online presence.
|
Censorship on the web is inevitable, but that doesn't mean users have to be powerless. With Pubky, you have the ability to choose your hosting, migrate your data, and maintain your identity—all key tools for resisting censorship. Pubky's design assumes censorship will happen and provides the mechanisms needed to overcome it. This empowers users with true control, ensuring that no single entity can unilaterally suppress their voice. The future of the web lies in resilient, user-first systems that put individuals back in control of their online presence.
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
|
|
||||||
## Credible Exit
|
|
||||||
|
|
||||||
**Credible Exit** is the ability to leave a platform or service without losing access to your data, identity, or connections, ensuring full user control and portability.
|
**Credible Exit** is the ability to leave a platform or service without losing access to your data, identity, or connections, ensuring full user control and portability.
|
||||||
|
|
||||||
This [substack post](https://subconscious.substack.com/p/credible-exit) by Gordon Brander is a good introduction to the topic.
|
This [substack post](https://subconscious.substack.com/p/credible-exit) by Gordon Brander is a good introduction to the topic.
|
||||||
@@ -15,7 +12,7 @@ Today, most platforms hold your data hostage. They make it difficult to leave, a
|
|||||||
|
|
||||||
Here are some of the best examples of Credible Exit in practice:
|
Here are some of the best examples of Credible Exit in practice:
|
||||||
|
|
||||||
- **Domain Name System (DNS)**: DNS is a classic example of a system that allows for a credible exit. If you no longer want your domain hosted with one provider, you can transfer it to another without losing control over your domain name.
|
- **Domain Name System (DNS)**: [[DNS]] is a classic example of a system that allows for a credible exit. If you no longer want your domain hosted with one provider, you can transfer it to another without losing control over your domain name.
|
||||||
- **Email Protocols (IMAP/SMTP)**: Email is another example. Users can change email providers while keeping the same email address, ensuring they don't lose their communication history or contacts.
|
- **Email Protocols (IMAP/SMTP)**: Email is another example. Users can change email providers while keeping the same email address, ensuring they don't lose their communication history or contacts.
|
||||||
- **Bitcoin Wallets**: Bitcoin wallets offer credible exit by allowing users to export private keys and import them into another wallet provider, retaining full control over their funds and transactions.
|
- **Bitcoin Wallets**: Bitcoin wallets offer credible exit by allowing users to export private keys and import them into another wallet provider, retaining full control over their funds and transactions.
|
||||||
|
|
||||||
@@ -31,7 +28,7 @@ In **Pubky**, Credible Exit is not just an idea—it's built into the architectu
|
|||||||
|
|
||||||
- **Data Portability**: Pubky’s design ensures that all of your data can be easily exported and imported between servers. This keeps your content intact and visible, regardless of where it’s hosted.
|
- **Data Portability**: Pubky’s design ensures that all of your data can be easily exported and imported between servers. This keeps your content intact and visible, regardless of where it’s hosted.
|
||||||
|
|
||||||
(NOTE: During Pubky's initial bootstrapping phase, credible exit may not be practically possible until more homeserver providers join. Synonym is building tools to make it easy for businesses and users to self-host.)
|
> _NOTE_: During Pubky's initial bootstrapping phase, credible exit may not be practically possible until more homeserver providers join. [Synonym](https://synonym.to/) is building tools to make it easy for businesses and users to self-host.
|
||||||
|
|
||||||
## Important Aspects of Credible Exit
|
## Important Aspects of Credible Exit
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
## Semantic Social Graph
|
|
||||||
|
|
||||||
A **Semantic Social Graph** represents relationships between users, content, and interactions, enriched with contextual meaning that enables better filtering, discovery, and coordination.
|
A **Semantic Social Graph** represents relationships between users, content, and interactions, enriched with contextual meaning that enables better filtering, discovery, and coordination.
|
||||||
|
|
||||||
Imagine being able to not only see what your friends are sharing but also easily find content that matches your interests across a wide network of people you trust.
|
Imagine being able to not only see what your friends are sharing but also easily find content that matches your interests across a wide network of people you trust.
|
||||||
@@ -24,46 +22,7 @@ In **Pubky**, a decentralized Semantic Social Graph is central to providing a mo
|
|||||||
|
|
||||||
This diagram shows how a Semantic Social Graph works, representing users, content, and tags. Users tag content and peers, which adds context and helps determine how information flows through the network. Relationships are weighted (Pubky weighting features are under development), meaning users can specify trust levels and the strength of connections to further personalize their experience.
|
This diagram shows how a Semantic Social Graph works, representing users, content, and tags. Users tag content and peers, which adds context and helps determine how information flows through the network. Relationships are weighted (Pubky weighting features are under development), meaning users can specify trust levels and the strength of connections to further personalize their experience.
|
||||||
|
|
||||||
```mermaid
|

|
||||||
graph LR
|
|
||||||
subgraph Users
|
|
||||||
U1[User A]
|
|
||||||
U2[User B]
|
|
||||||
U3[User C]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph Data
|
|
||||||
C1[Post 1]
|
|
||||||
C2[Post 2]
|
|
||||||
C3[File 1]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph Tags
|
|
||||||
T1[Tag: Blockchain]
|
|
||||||
T2[Tag: Decentralization]
|
|
||||||
T3[Tag: Privacy]
|
|
||||||
end
|
|
||||||
|
|
||||||
%% Users tag content
|
|
||||||
U1 --|tags with T1|--> C1
|
|
||||||
U1 --|tags with T2|--> C2
|
|
||||||
U2 --|tags with T2|--> C3
|
|
||||||
U3 --|tags with T3|--> C1
|
|
||||||
|
|
||||||
%% Users tag peers
|
|
||||||
U1 --|tags with T2|--> U2
|
|
||||||
U2 --|tags with T1|--> U3
|
|
||||||
|
|
||||||
%% Content linked to tags
|
|
||||||
C1 --|associated with|--> T1
|
|
||||||
C1 --|associated with|--> T3
|
|
||||||
C2 --|associated with|--> T2
|
|
||||||
C3 --|associated with|--> T2
|
|
||||||
|
|
||||||
%% Weighted relationships (represented by edge labels)
|
|
||||||
U1 --|strong connection|--> U2
|
|
||||||
U1 --|moderate connection|--> U3
|
|
||||||
```
|
|
||||||
|
|
||||||
**Tags and Contextual Meaning**: Pubky allows users to add tags to content and connections, giving them the ability to add context to their relationships. This means users can easily categorize and prioritize content based on what matters to them most.
|
**Tags and Contextual Meaning**: Pubky allows users to add tags to content and connections, giving them the ability to add context to their relationships. This means users can easily categorize and prioritize content based on what matters to them most.
|
||||||
|
|
||||||
@@ -71,7 +30,7 @@ graph LR
|
|||||||
|
|
||||||
- **Decentralized Indexing**: Pubky provides a decentralized approach to indexing, meaning that users aren't reliant on a single entity to determine the importance or visibility of content. Users have the power to decide what they want to see and how they want their views into the social graph to evolve.
|
- **Decentralized Indexing**: Pubky provides a decentralized approach to indexing, meaning that users aren't reliant on a single entity to determine the importance or visibility of content. Users have the power to decide what they want to see and how they want their views into the social graph to evolve.
|
||||||
|
|
||||||
(NOTE: During the initial bootstrapping phase of Pubky, the Semantic Social Graph may be limited in decentralization until more builders adopt the system. Synonym is actively developing tools to make it easier to run a Pubky homeserver, or self-host.)
|
> _NOTE_: During the initial bootstrapping phase of Pubky, the Semantic Social Graph may be limited in decentralization until more builders adopt the system. Synonym is actively developing tools to make it easier to run a Pubky [[Homeservers|homeserver]], or self-host.
|
||||||
|
|
||||||
## Web of Trust
|
## Web of Trust
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
### What Is a Decentralized Semantic Social Graph?
|
|
||||||
|
|
||||||
https://www.mermaidchart.com/raw/04ba45a5-6559-45fd-861c-f5d3ac878a91?theme=light&version=v0.1&format=svg
|

|
||||||
|
|
||||||
**Semantic Relationships:** Connections between users and content are tagged with meaningful metadata, capturing the context, relevance, and nature of each relationship.
|
**Semantic Relationships:** Connections between users and content are tagged with meaningful metadata, capturing the context, relevance, and nature of each relationship.
|
||||||
**Weighted Connections:** Relationships aren't just binary; they carry weights that represent their strength, trust level, or relevance, enabling more sophisticated interactions.
|
**Weighted Connections:** Relationships aren't just binary; they carry weights that represent their strength, trust level, or relevance, enabling more sophisticated interactions.
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
Leveraging the [[Pubky Core/Introduction|Pubky Core]] protocol as the foundational layer, we can envision a diverse array of applications with distinct functionalities. While each app can implement its own unique design patterns and user interfaces, they all share a common underlying architecture: interacting with the distributed data stores, colloquially referred to as [[Data Stores |home servers]], through standardized read and write operations.
|
Leveraging the [[Pubky Core/Introduction|Pubky Core]] protocol as the foundational layer, we can envision a diverse array of applications with distinct functionalities. While each app can implement its own unique design patterns and user interfaces, they all share a common underlying architecture: interacting with the distributed data stores, colloquially referred to as [[Homeservers|homeservers]], through standardized read and write operations.
|
||||||
|
|
||||||
The [[Pubky Core/Introduction|Pubky Core protocol]] enables a decentralized approach to data management, facilitating seamless communication between clients and their respective data stores. This architecture promotes data sovereignty and enhances system resilience.
|
The [[Pubky Core/Introduction|Pubky Core protocol]] enables a decentralized approach to data management, facilitating seamless communication between clients and their respective data stores. This architecture promotes data sovereignty and enhances system resilience.
|
||||||
|
|
||||||
Below, we present several high-level designs that showcase the versatility of this architecture, from simple client (browser) apps that interact directly with one or several homeservers to more complex applications with custom aggregators and backends capable of powerful inference:
|
Below, we present several high-level designs that showcase the versatility of this architecture, from simple client (browser) apps that interact directly with one or several [[Homeservers|homeservers]] to more complex applications with custom aggregators and backends capable of powerful inference:
|
||||||
|
|
||||||
- [[2. Client - Homeserver|Client-Homeserver]]
|
- [[2. Client - Homeserver|Client-Homeserver]]
|
||||||
- [[4. Custom Backend|Custom backend]]
|
- [[4. Custom Backend|Custom backend]]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
## Pubky Aggregators
|
## Pubky Aggregators
|
||||||
|
|
||||||
Aggregators are specialized reducers or gatekeepers that continuously scan and collect data from various sources, such as [[Data Stores|data stores]]. They decide what data to allow in and what to keep out.
|
Aggregators are specialized reducers or gatekeepers that continuously scan and collect data from various sources, such as [[Homeservers|homeservers]]. They decide what data to allow in and what to keep out.
|
||||||
|
|
||||||
When the aggregator receive new events, it evaluates it against its predefined criteria. If the data meets the criteria, the aggregator allows it to pass through, making it available for further processing or storage. However, if the data doesn't meet the criteria, the aggregator blocks it, preventing it from entering the system.
|
When the aggregator receive new events, it evaluates it against its predefined criteria. If the data meets the criteria, the aggregator allows it to pass through, making it available for further processing or storage. However, if the data doesn't meet the criteria, the aggregator blocks it, preventing it from entering the system.
|
||||||
|
|
||||||
@@ -13,4 +13,4 @@ By controlling the flow of information, aggregators play a crucial role in maint
|
|||||||
- **Normalized data schemas**: Standardized data schemas facilitate interoperability between services, making it easier to integrate and exchange data across the network.
|
- **Normalized data schemas**: Standardized data schemas facilitate interoperability between services, making it easier to integrate and exchange data across the network.
|
||||||
- **Public and niche aggregators**: The network supports both large-scale, public aggregators for discoverability and smaller, niche aggregators that cater to specific communities or use cases.
|
- **Public and niche aggregators**: The network supports both large-scale, public aggregators for discoverability and smaller, niche aggregators that cater to specific communities or use cases.
|
||||||
- **Core user graph expansion**: The aggregation process starts with a core user graph and expands outward through connections, enabling the network to grow organically and efficiently.
|
- **Core user graph expansion**: The aggregation process starts with a core user graph and expands outward through connections, enabling the network to grow organically and efficiently.
|
||||||
- [[2.Censorship|Censorship resistance]]: The system's censorship resistance is achieved through a decentralized aggregation architecture, where data aggregation is distributed across a network of **independent, autonomous aggregators**. This design ensures that no single entity or node has control over the aggregation process, making it more resilient to censorship attempts.
|
- [[Censorship|Censorship resistance]]: The system's censorship resistance is achieved through a decentralized aggregation architecture, where data aggregation is distributed across a network of **independent, autonomous aggregators**. This design ensures that no single entity or node has control over the aggregation process, making it more resilient to censorship attempts.
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
The Indexer is a specialized component that plays a crucial role in the system by normalizing and transforming the aggregated data from multiple [[Data Stores|data stores]] into a unified view. This enables cross-data store search, queries, and discovery, allowing users to access and analyze data from various sources in a seamless and efficient manner.
|
The Indexer is a specialized component that plays a crucial role in the system by normalizing and transforming the aggregated data from multiple [[Homeservers|homeservers]] into a unified view. This enables cross-data store search, queries, and discovery, allowing users to access and analyze data from various sources in a seamless and efficient manner.
|
||||||
|
|
||||||
### Characteristics
|
### Characteristics
|
||||||
|
|
||||||
1. **Data Normalization**: The Indexer normalizes the data from multiple sources, handling differences in format, structure, and schema. This involves transforming the data into a consistent format, resolving data conflicts, and ensuring that the data is accurate and reliable.
|
1. **Data Normalization**: The Indexer normalizes the data from multiple sources, handling differences in format, structure, and schema. This involves transforming the data into a consistent format, resolving data conflicts, and ensuring that the data is accurate and reliable.
|
||||||
2. **Data Transformation**: The Indexer transforms the normalized data into a unified view, making it possible to query and analyze the data across multiple [[Data Stores|data stores]]. This unified view enables users to access data from different sources as if it were a single, cohesive dataset.
|
2. **Data Transformation**: The Indexer transforms the normalized data into a unified view, making it possible to query and analyze the data across multiple [[Homeservers|homeservers]]. This unified view enables users to access data from different sources as if it were a single, cohesive dataset.
|
||||||
3. **Data Integrity**: The Indexer ensures data integrity through secure synchronization protocols, guaranteeing that the indexed data is consistent and up-to-date. This involves implementing measures to prevent data corruption, ensuring that data updates are propagated across all data stores, and maintaining a high level of data quality and accuracy.
|
3. **Data Integrity**: The Indexer ensures data integrity through secure synchronization protocols, guaranteeing that the indexed data is consistent and up-to-date. This involves implementing measures to prevent data corruption, ensuring that data updates are propagated across all data stores, and maintaining a high level of data quality and accuracy.
|
||||||
4. **Scalability**: The Indexer is designed to handle large volumes of data from multiple sources, ensuring that it can scale to meet the needs of a growing user base and increasing data demands.
|
4. **Scalability**: The Indexer is designed to handle large volumes of data from multiple sources, ensuring that it can scale to meet the needs of a growing user base and increasing data demands.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
The Backend is responsible for collecting ([[Aggregator|aggregators]]) and organizing ([[Indexer|indexer]]) data from various sources, known as [[Data Stores|data stores]].
|
The Backend is responsible for collecting ([[Aggregator|aggregators]]) and organizing ([[Indexer|indexer]]) data from various sources, known as [[Homeservers|homeservers]].
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ Here are some common types of notifications you might receive:
|
|||||||
|
|
||||||
1. **Mentions**: When someone mentions you in a [[Posts|post]], you'll receive a notification. This means they've included your public key (__pk:pubky__) in their [[Posts|post]].
|
1. **Mentions**: When someone mentions you in a [[Posts|post]], you'll receive a notification. This means they've included your public key (__pk:pubky__) in their [[Posts|post]].
|
||||||
2. **Replies**: If someone replies to one of your [[Posts|post]], you'll get a notification.
|
2. **Replies**: If someone replies to one of your [[Posts|post]], you'll get a notification.
|
||||||
3. **Likes**: When someone likes one of your [[Posts|posts]], you'll receive a notification.
|
3. **Re-posts**: If someone re-posts one of your posts, you'll get a notification.
|
||||||
4. **Re-posts**: If someone re-posts one of your posts, you'll get a notification.
|
4. **Follows**: When someone new follows you, you'll receive a notification.
|
||||||
5. **Follows**: When someone new follows you, you'll receive a notification.
|
5. **Quote Posts**: If someone quotes one of your posts, you'll receive a notification.
|
||||||
6. **Quote Posts**: If someone quotes one of your posts, you'll receive a notification.
|
|
||||||
@@ -6,7 +6,7 @@ The Pubky client will be available as both a desktop application and a hosted we
|
|||||||
|
|
||||||
Using the library analogy again, the Pubky Client is like a personalized research assistant who takes the prepared documents from the librarian ([[Pubky App/Backend/Introduction|backend]]) and creates a customized report just for you. This report is designed to be easy to read and understand, with all the relevant information presented in a clear and concise manner.
|
Using the library analogy again, the Pubky Client is like a personalized research assistant who takes the prepared documents from the librarian ([[Pubky App/Backend/Introduction|backend]]) and creates a customized report just for you. This report is designed to be easy to read and understand, with all the relevant information presented in a clear and concise manner.
|
||||||
|
|
||||||
- Users are able to take control of the data and exit the Synonym hosted services and run their own without hampering discoverability ([[3.Credible Exit|credible exit]]).
|
- Users are able to take control of the data and exit the Synonym hosted services and run their own without hampering discoverability ([[Credible Exit|credible exit]]).
|
||||||
|
|
||||||
- Pubky client uses the open [[Pubky Core/Introduction|Pubky Core]] for nearly all features, allowing users to avoid censorship by choosing self-hosting or alternate hosts without losing followers or integrity.
|
- Pubky client uses the open [[Pubky Core/Introduction|Pubky Core]] for nearly all features, allowing users to avoid censorship by choosing self-hosting or alternate hosts without losing followers or integrity.
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||

|

|
||||||
|
|
||||||
> Synonym will be initially hosting: [[Data Stores|Data stores]] and [[Pubky App/Introduction|Pubky App]]
|
> Synonym will be initially hosting: [[Pubky Core/Homeservers|homeserver]] and [[Pubky App/Introduction|Pubky App]]
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ Pubky-app's initial focus is building a decentralized social media protocol.
|
|||||||
|
|
||||||
## Key aspects
|
## Key aspects
|
||||||
|
|
||||||
- **Data Ownership**: Users have full autonomy over their data, hosting it on **independent [[Data Stores|data stores]]** that are decentralized and distributed across the network. This approach enables users to maintain **control** and **ownership** of their data, while also ensuring **data sovereignty** and **privacy**.
|
- **Data Ownership**: Users have full autonomy over their data, hosting it on **independent [[Pubky Core/Homeservers|homeservers]]** that are decentralized and distributed across the network. This approach enables users to maintain **control** and **ownership** of their data, while also ensuring **data sovereignty** and **privacy**.
|
||||||
- **Profiles**: The system employs a **decentralized data storage** approach, where **post**, **comment**, and **like** data are stored in association with **user profiles**.
|
- **Profiles**: The system employs a **decentralized data storage** approach, where **post**, **comment**, and **like** data are stored in association with **user profiles**.
|
||||||
- [[Aggregator|Aggregators]] collecting social graphs
|
- [[Aggregator|Aggregators]] collecting social graphs
|
||||||
- Feeds of followings' activities
|
- Feeds of followings' activities
|
||||||
@@ -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 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 `Homeserver` fulfils the function of [[Data Stores|data stores]], [[0.Introduction|Pkarr]] republishing for users, 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.
|
- The `Indexer` fulfils the function of the [[Pubky App/Backend/Introduction|backend]] for the Pubky App.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
## Explaining Pubky Core Like You're 5 Years Old
|
# Explaining Pubky Core Like You're 5 Years Old
|
||||||
|
|
||||||
Imagine you have a special toy castle that you built, and you want your friends to come and play with it. Maybe you set up your castle in your backyard, or in the park, or at your grandma's house. You tell your friends where it is so they can come play.
|
Imagine you have a special toy castle that you built, and you want your friends to come and play with it. Maybe you set up your castle in your backyard, or in the park, or at your grandma's house. You tell your friends where it is so they can come play.
|
||||||
|
|
||||||
@@ -8,28 +8,28 @@ You Move the Castle: You pick up your castle and set it up somewhere else, like
|
|||||||
You Tell Your Friends: You let your friends know the new spot so they can still come and play.
|
You Tell Your Friends: You let your friends know the new spot so they can still come and play.
|
||||||
So, what is Pubky Core?
|
So, what is Pubky Core?
|
||||||
|
|
||||||
**Pubky Core is like you being in charge of where your stuff lives on the internet. Even if things change—like someone tries to block your stuff or you decide to move it—you have the power to:
|
**Pubky Core** is like you being in charge of where your stuff lives on the internet. Even if things change—like someone tries to block your stuff or you decide to move it—you have the power to:
|
||||||
**
|
|
||||||
Choose Where Your Data Lives: Just like you decide where to place your castle, Pubky Core lets you decide where your information is stored online.
|
|
||||||
|
|
||||||
Move It When Needed: If you have to change where your data is kept (like moving your castle), you can do that easily.
|
**Choose Where Your Data Lives**: Just like you decide where to place your castle, Pubky Core lets you decide where your information is stored online.
|
||||||
|
|
||||||
Update the Directions: You can tell everyone where to find your data, so your friends can always access it, no matter where it is.
|
**Move It When Needed**: If you have to change where your data is kept (like moving your castle), you can do that easily.
|
||||||
|
|
||||||
**Why is Pubky Core Special?
|
**Update the Directions**: You can tell everyone where to find your data, so your friends can always access it, no matter where it is.
|
||||||
**
|
|
||||||
You're in Control: You decide where your data is stored on the internet, and you can change it whenever you need to.
|
|
||||||
|
|
||||||
Stay Connected Despite Changes: If something happens—like censorship or a website blocking you—you can move your data to a new place, and people can still find it.
|
## Why is Pubky Core Special?
|
||||||
|
|
||||||
Freedom to Share: No one can stop you from sharing your stuff. You always have the ability to let others access your data by updating its location.
|
**You're in Control**: You decide where your data is stored on the internet, and you can change it whenever you need to.
|
||||||
|
|
||||||
**In Simple Terms:
|
**Stay Connected Despite Changes**: If something happens—like censorship or a website blocking you—you can move your data to a new place, and people can still find it.
|
||||||
**
|
|
||||||
You Control the Location of Your Data: Just like moving your castle, you choose where your online information lives.
|
|
||||||
|
|
||||||
Adaptable to Change: If things change or someone tries to stop you, you can move your data and keep sharing without losing anything.
|
**Freedom to Share**: No one can stop you from sharing your stuff. You always have the ability to let others access your data by updating its location.
|
||||||
|
|
||||||
Always Accessible: By updating where your data is stored, your friends (or anyone) can always find and see it.
|
## In Simple Terms:
|
||||||
|
|
||||||
|
**You Control the Location of Your Data**: Just like moving your castle, you choose where your online information lives.
|
||||||
|
|
||||||
|
**Adaptable to Change**: If things change or someone tries to stop you, you can move your data and keep sharing without losing anything.
|
||||||
|
|
||||||
|
**Always Accessible**: By updating where your data is stored, your friends (or anyone) can always find and see it.
|
||||||
|
|
||||||
So, Pubky Core empowers you to manage where your data is on the internet. It ensures that even if things change—like being censored or needing to move—you can keep your data accessible and tell others where to find it. It's all about you being in control, just like deciding where to set up your favorite toy so your friends can always come and play!
|
So, Pubky Core empowers you to manage where your data is on the internet. It ensures that even if things change—like being censored or needing to move—you can keep your data accessible and tell others where to find it. It's all about you being in control, just like deciding where to set up your favorite toy so your friends can always come and play!
|
||||||
|
|||||||
@@ -1,27 +1,28 @@
|
|||||||
The Pubky network allows multiple, independent data stores, known as "homeservers." This improves censorship-resistance and prevents any single entity from controlling the flow of information, or locking people & data in as a walled garden.
|
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 PKARR public key, but the user can redefine the location of their homeserver at will by updating their PKARR in 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
|
## Public vs Private Data
|
||||||
|
|
||||||
Current implementations across Pubky currently only support public, unencrypted data use cases. This does not prevent applications from using encrypted data within homeservers, we simply haven't implemented that set of features in any direct way yet. Feel free to contribute!
|
Current implementations across Pubky currently only support public, unencrypted data use cases. This does not prevent applications from using encrypted data within homeservers, we simply haven't implemented that set of features in any direct way yet. Feel free to contribute!
|
||||||
|
|
||||||
### Data Retrieval and Synchronization
|
## Data Retrieval and Synchronization
|
||||||
|
|
||||||
- **API and Pub/Sub access**: Authorized services can access data through a RESTful API or via a publish-subscribe (Pub/Sub) messaging system, enabling efficient and scalable data retrieval.
|
- **API**: Any service can access data through a RESTful API
|
||||||
|
|
||||||
### Decentralized Storage Architecture
|
## Decentralized Storage Architecture
|
||||||
|
|
||||||
- Homeservers can be operated by individuals, cooperatives, or commercial entities, with the option for anonymous operation, promoting a decentralized and resilient storage ecosystem where users could tune their preferred redundancy while maintaining the benefits of a central homeserver.
|
- Homeservers can be operated by individuals, cooperatives, or commercial entities, with the option for anonymous operation, promoting a decentralized and resilient storage ecosystem where users could tune their preferred redundancy while maintaining the benefits of a central homeserver.
|
||||||
- We do not yet have any mirroring or replication tools available yet. Feel free to build with us!
|
- We do not yet have any mirroring or replication tools available yet. Feel free to build with us!
|
||||||
|
|
||||||
### User Data Control and Credible Exit
|
## User Data Control and Credible Exit
|
||||||
|
|
||||||
- The current network is being bootstrapped by Synonym's first homeserver, which supports key accounts as a service, as well as all services required to operate the Pubky App.
|
- The current network is being bootstrapped by Synonym's first homeserver, which supports key accounts as a service, as well as all services required to operate the [[Pubky App/Introduction|pubky App]].
|
||||||
- While Synonym is currently not charging fees for homeserving, it is totall possible for anyone to run their own homerserver and require service fees or peer-to-peer micropayments, or any other requirement, to improve data redundancy and competition.
|
- While Synonym is currently not charging fees for homeserving, it is totall possible for anyone to run their own homerserver and require service fees or peer-to-peer micropayments, or any other requirement, to improve data redundancy and competition.
|
||||||
- Synonym does not control who can join or serve data on the network, but in order to truly have a "credible exit" the network will need to mature to have more providers of homeservers and Pubky applications.
|
- Synonym does not control who can join or serve data on the network, but in order to truly have a [[Credible Exit|"credible exit"]] the network will need to mature to have more providers of homeservers and Pubky applications.
|
||||||
- We will also need to make it as easy as possible for people to host their own homeservers, and to host homerserver clouds.
|
- We will also need to make it as easy as possible for people to host their own homeservers, and to host homerserver clouds.
|
||||||
- We also need to ensure that applications remain performant & reliable as the network fragments.
|
- We also need to ensure that applications remain performant & reliable as the network fragments.
|
||||||
|
|
||||||
### WIP
|
## WIP
|
||||||
- **Merkle tree-based versioning**: Merkle trees to manage versioning and conflict resolution, ensuring efficient data synchronization and minimizing data inconsistencies.
|
- **Merkle tree-based versioning**: Merkle trees to manage versioning and conflict resolution, ensuring efficient data synchronization and minimizing data inconsistencies.
|
||||||
|
- **Event Stream**: Fetch homeserver events via publish-subscribe (Pub/Sub) messaging system, enabling efficient and scalable data retrieval.
|
||||||
@@ -4,13 +4,13 @@
|
|||||||
|
|
||||||
Pubky Core is built on a few core concepts:
|
Pubky Core is built on a few core concepts:
|
||||||
|
|
||||||
- **[[Data Stores|Data Stores]]** - Decentralized data storage nodes that host user data. Data is encrypted at rest.
|
- **[[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 [[3.Credible Exit|credible exit]] between interchangeable components.
|
Pubky Core's distributed architecture aims to provide user autonomy through [[Credible Exit|credible exit]] between interchangeable components.
|
||||||
|
|
||||||
- **[[1. Introduction|Pubky App Architectures]]** can be very diverse. From simple web client applications that connect to a single [[2. Client - Homeserver|homeserver]] for data storage and retrieval to [[4. Custom Backend| complex backends]] that do aggregation and powerful inference over many homeservers creating abstractions such as social media with [[1.Web of Trust|web of trust]].
|
- **[[1. Introduction|Pubky App Architectures]]** can be very diverse. From simple web client applications that connect to a single [[2. Client - Homeserver|homeserver]] for data storage and retrieval to [[4. Custom Backend| complex backends]] that do aggregation and powerful inference over many **[[Homeservers|homeservers]]** creating abstractions such as social media with [[Semantic Social Graph|semantic social graph]].
|
||||||
|
|
||||||
## Target Users
|
## Target Users
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ To publish resource records for your key, you need to sign a small encoded [[DNS
|
|||||||
|
|
||||||
To resolve some key's resources, applications can query the [[DHT]] directly or through a relay. They will then verify the signature themselves.
|
To resolve some key's resources, applications can query the [[DHT]] directly or through a relay. They will then verify the signature themselves.
|
||||||
|
|
||||||
## [[DNS]] Queries Over [[HTTPS]]
|
## 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.
|
||||||
|
|
||||||
|
|||||||
5
TLDR.md
@@ -1,6 +1,7 @@
|
|||||||
### Pubky App - TLDR
|
### Pubky App
|
||||||
|
|
||||||
[[Pubky App/Introduction|Pubky App]] is an open-source web application that helps users publish and consume Pubky homeserver data within a user experience that merges the features of popular social media, search, and publishing apps.
|
[[Pubky App/Introduction|Pubky App]] is an open-source web application that helps users publish and consume Pubky homeserver data within a user experience that merges the features of popular social media, search, and publishing apps.
|
||||||
|
|
||||||
Architecture overview.
|
Architecture overview.
|
||||||

|
|
||||||
|

|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Distributed Hash Table - DHT
|
# Distributed Hash Table
|
||||||
|
|
||||||
It is a decentralized key-value store that allows for efficient data retrieval in a distributed system. Unlike traditional databases, DHTs do not rely on a central server to manage data. Instead, they use a hash function to map keys to nodes in the network, enabling data to be stored and retrieved across multiple nodes.
|
It is a decentralized key-value store that allows for efficient data retrieval in a distributed system. Unlike traditional databases, DHTs do not rely on a central server to manage data. Instead, they use a hash function to map keys to nodes in the network, enabling data to be stored and retrieved across multiple nodes.
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# Domain Name System - DNS
|
# Domain Name System
|
||||||
|
|
||||||
It translates human-readable domain names (e.g., www.example.com) into IP addresses that computers use to identify each other on the network. This process simplifies internet navigation by allowing users to access websites using memorable names instead of numerical addresses.
|
It translates human-readable domain names (e.g., www.example.com) into IP addresses that computers use to identify each other on the network. This process simplifies internet navigation by allowing users to access websites using memorable names instead of numerical addresses.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# DNS over HTTPS - DoH
|
# 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.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Hypertext Transfer Protocol Secure - HTTPS
|
# Hypertext Transfer Protocol Secure
|
||||||
|
|
||||||
It is an extension of HTTP that encrypts communication over a computer network, enhancing security and privacy. It uses TLS (Transport Layer Security) or SSL (Secure Sockets Layer) for encryption, protecting against eavesdropping and tampering. HTTPS is essential for securely transmitting sensitive data, such as login credentials and financial transactions, ensuring the authenticity of websites and the privacy of user communications.
|
It is an extension of HTTP that encrypts communication over a computer network, enhancing security and privacy. It uses TLS (Transport Layer Security) or SSL (Secure Sockets Layer) for encryption, protecting against eavesdropping and tampering. HTTPS is essential for securely transmitting sensitive data, such as login credentials and financial transactions, ensuring the authenticity of websites and the privacy of user communications.
|
||||||
|
|
||||||
|
|||||||
@@ -3,37 +3,37 @@ A cryptography key pair consists of two related but distinct cryptographic keys:
|
|||||||
1. **Private Key**: A secret key that is used to decrypt, sign, or authenticate data. It's called "private" because it should be kept confidential and secure to prevent unauthorized access.
|
1. **Private Key**: A secret key that is used to decrypt, sign, or authenticate data. It's called "private" because it should be kept confidential and secure to prevent unauthorized access.
|
||||||
2. **Public Key**: A publicly accessible key that is used to encrypt, verify, or authenticate data. It's called "public" because it can be shared freely without compromising the security of the system.
|
2. **Public Key**: A publicly accessible key that is used to encrypt, verify, or authenticate data. It's called "public" because it can be shared freely without compromising the security of the system.
|
||||||
|
|
||||||
### How do key pairs work?
|
## How do key pairs work?
|
||||||
|
|
||||||
Here's a simplified overview of how key pairs are used in various cryptographic scenarios:
|
Here's a simplified overview of how key pairs are used in various cryptographic scenarios:
|
||||||
|
|
||||||
#### Encryption
|
### Encryption
|
||||||
|
|
||||||
- Alice wants to send a secure message to Bob.
|
- Alice wants to send a secure message to Bob.
|
||||||
- Bob generates a key pair and shares his public key with Alice.
|
- Bob generates a key pair and shares his public key with Alice.
|
||||||
- Alice uses Bob's public key to encrypt the message.
|
- Alice uses Bob's public key to encrypt the message.
|
||||||
- Bob uses his private key to decrypt the message.
|
- Bob uses his private key to decrypt the message.
|
||||||
|
|
||||||
#### Digital Signatures
|
### Digital Signatures
|
||||||
|
|
||||||
- Alice wants to send a document to Bob and prove its authenticity.
|
- Alice wants to send a document to Bob and prove its authenticity.
|
||||||
- Alice generates a key pair and uses her private key to sign the document.
|
- Alice generates a key pair and uses her private key to sign the document.
|
||||||
- Bob uses Alice's public key to verify the signature and ensure the document hasn't been tampered with.
|
- Bob uses Alice's public key to verify the signature and ensure the document hasn't been tampered with.
|
||||||
|
|
||||||
#### Authentication
|
### Authentication
|
||||||
|
|
||||||
- Alice wants to access a secure system or service.
|
- Alice wants to access a secure system or service.
|
||||||
- The system generates a key pair and shares its public key with Alice.
|
- The system generates a key pair and shares its public key with Alice.
|
||||||
- Alice uses the system's public key to encrypt a challenge or password.
|
- Alice uses the system's public key to encrypt a challenge or password.
|
||||||
- The system uses its private key to decrypt the challenge or password and authenticate Alice.
|
- The system uses its private key to decrypt the challenge or password and authenticate Alice.
|
||||||
|
|
||||||
#### Key Pair Properties
|
### Key Pair Properties
|
||||||
|
|
||||||
- **Asymmetric**: Key pairs are asymmetric, meaning that the private key is not easily derived from the public key.
|
- **Asymmetric**: Key pairs are asymmetric, meaning that the private key is not easily derived from the public key.
|
||||||
- **Mathematical relationship**: The private and public keys are mathematically related, allowing for encryption, decryption, signing, and verification.
|
- **Mathematical relationship**: The private and public keys are mathematically related, allowing for encryption, decryption, signing, and verification.
|
||||||
- **Unique**: Each key pair is unique, ensuring that data encrypted with a public key can only be decrypted with the corresponding private key.
|
- **Unique**: Each key pair is unique, ensuring that data encrypted with a public key can only be decrypted with the corresponding private key.
|
||||||
|
|
||||||
#### Types of Key Pairs
|
### Types of Key Pairs
|
||||||
|
|
||||||
- **RSA (Rivest-Shamir-Adleman)**: A popular algorithm used for encryption, decryption, and digital signatures.
|
- **RSA (Rivest-Shamir-Adleman)**: A popular algorithm used for encryption, decryption, and digital signatures.
|
||||||
- **Elliptic Curve Cryptography (ECC)**: A more modern algorithm used for encryption, decryption, and digital signatures, offering better security with smaller key sizes.
|
- **Elliptic Curve Cryptography (ECC)**: A more modern algorithm used for encryption, decryption, and digital signatures, offering better security with smaller key sizes.
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
Paykit abstracts and automates any payment method behind a single, static public key. The public key belongs to a Pubky instance and points to a [data store](Data%20Stores.md) containing all supported payment endpoints. Paykit enables applications where users pay directly to profiles, so offers a very intuitive experience, particularly when multiple payment methods are possible within the system.
|
Paykit abstracts and automates any payment method behind a single, static public key. The public key belongs to a Pubky instance and points to a **[[Homeservers|homeserver]]** containing all supported payment endpoints. Paykit enables applications where users pay directly to profiles, so offers a very intuitive experience, particularly when multiple payment methods are possible within the system.
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
## The Vision of Pubky: Decentralizing Our Future
|
# Decentralizing Our Future
|
||||||
|
|
||||||
Imagine a future where our online relationships are no longer dictated by corporate giants or state-controlled systems, where you decide how to connect, who to trust, and where to store your data. This is the vision of **Pubky**: a decentralized, user-first web that breaks the toxic cycle of dependency on **Big Tech**, **Big State**, and **Big Banks**.
|
Imagine a future where our online relationships are no longer dictated by corporate giants or state-controlled systems, where you decide how to connect, who to trust, and where to store your data. This is the vision of **Pubky**: a decentralized, user-first web that breaks the toxic cycle of dependency on **Big Tech**, **Big State**, and **Big Banks**.
|
||||||
|
|
||||||
**Pubky** is not just a platform—it is an ecosystem designed to provide tools for communication, social coordination, identity management, and, eventually, financial freedom, all in one interconnected framework. Pubky will harness the power of **decentralized identity**, **censorship resistance**, **semantic social graphs**, and **Bitcoin and Lightning Network technology** to create an open web that prioritizes user autonomy.
|
**Pubky** is not just a platform—it is an ecosystem designed to provide tools for communication, social coordination, identity management, and, eventually, financial freedom, all in one interconnected framework. Pubky will harness the power of **decentralized identity**, **censorship resistance**, **semantic social graphs**, and **Bitcoin and Lightning Network technology** to create an open web that prioritizes user autonomy.
|
||||||
|
|
||||||
### Replacing Big Tech: Credible Exit, Censorship Resistance, and User-Controlled Experience
|
## Replacing Big Tech: Credible Exit, Censorship Resistance, and User-Controlled Experience
|
||||||
|
|
||||||
Big Tech platforms like social media giants use algorithms that limit freedom, exploit engagement, and control the flow of information. Pubky proposes a different kind of web—one built on **Semantic Social Graphs** and **self-sovereign identities**. Instead of opaque algorithms deciding what is relevant to you, **Semantic Social Graphs** and **PKARR** give users full control over their digital interactions. This system gives control back to individuals, helping replace our toxic relationship with Big Tech.
|
Big Tech platforms like social media giants use algorithms that limit freedom, exploit engagement, and control the flow of information. Pubky proposes a different kind of web—one built on **Semantic Social Graphs** and **self-sovereign identities**. Instead of opaque algorithms deciding what is relevant to you, **Semantic Social Graphs** and **PKARR** give users full control over their digital interactions. This system gives control back to individuals, helping replace our toxic relationship with Big Tech.
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ Big Tech platforms like social media giants use algorithms that limit freedom, e
|
|||||||
|
|
||||||
- **Homeservers for Decentralized Hosting**: **Homeservers** allow for decentralized data hosting and competitive hosting services by enabling users to migrate away from any server that changes its policies or restricts their content. This means that censorship is anticipated and dealt with, allowing users to keep control over their digital presence.
|
- **Homeservers for Decentralized Hosting**: **Homeservers** allow for decentralized data hosting and competitive hosting services by enabling users to migrate away from any server that changes its policies or restricts their content. This means that censorship is anticipated and dealt with, allowing users to keep control over their digital presence.
|
||||||
|
|
||||||
### Replacing Big State: Self-Sovereign Identity and Peer Regulation
|
## Replacing Big State: Self-Sovereign Identity and Peer Regulation
|
||||||
|
|
||||||
Governments often use centralized systems to control speech, monitor user activity, and dictate identity management. Pubky provides an alternative—a decentralized network that makes censorship impractical and gives users **self-sovereign identity**. With Pubky, **PKARR** (Public Key Addressable Roles and Resources), **Mainline DHT**, and **Semantic Social Graphs** ensure that users are empowered to self-regulate, verify authenticity, and maintain control of their identities without relying on centralized authorities. This means:
|
Governments often use centralized systems to control speech, monitor user activity, and dictate identity management. Pubky provides an alternative—a decentralized network that makes censorship impractical and gives users **self-sovereign identity**. With Pubky, **PKARR** (Public Key Addressable Roles and Resources), **Mainline DHT**, and **Semantic Social Graphs** ensure that users are empowered to self-regulate, verify authenticity, and maintain control of their identities without relying on centralized authorities. This means:
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ Governments often use centralized systems to control speech, monitor user activi
|
|||||||
|
|
||||||
In this way, Pubky replaces the need for a centralized authority (the "Big State") by empowering users to be self-sovereign and enabling communities to regulate themselves. Pubky provides the tools to make censorship difficult and autonomy possible—giving users the power to govern their online interactions and identities independently.
|
In this way, Pubky replaces the need for a centralized authority (the "Big State") by empowering users to be self-sovereign and enabling communities to regulate themselves. Pubky provides the tools to make censorship difficult and autonomy possible—giving users the power to govern their online interactions and identities independently.
|
||||||
|
|
||||||
### Replacing Big Banks: Competing with Fiat and Enabling Financial Freedom
|
## Replacing Big Banks: Competing with Fiat and Enabling Financial Freedom
|
||||||
|
|
||||||
Beyond communication and social interaction, Synonym also seeks to empower individuals financially. Our reliance on **Big Banks** and centralized financial systems means losing autonomy over our own wealth. Pubky envisions a future where financial freedom is possible through the use of **Bitcoin** and the **Lightning Network** to decouple payments from hosted platforms and middlemen.
|
Beyond communication and social interaction, Synonym also seeks to empower individuals financially. Our reliance on **Big Banks** and centralized financial systems means losing autonomy over our own wealth. Pubky envisions a future where financial freedom is possible through the use of **Bitcoin** and the **Lightning Network** to decouple payments from hosted platforms and middlemen.
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ Beyond communication and social interaction, Synonym also seeks to empower indiv
|
|||||||
|
|
||||||
- Commerce features and tools are planned for future versions of Pubky, with a long term goal of a totally dynamic digital social economy!
|
- Commerce features and tools are planned for future versions of Pubky, with a long term goal of a totally dynamic digital social economy!
|
||||||
|
|
||||||
### A Future of Freedom and Autonomy
|
## A Future of Freedom and Autonomy
|
||||||
|
|
||||||
Our vision is simple: to build a digital world where individuals are in charge, rather than corporations or governments. By integrating decentralized identities, censorship-resistant technologies, and financial independence, we can replace our toxic dependency on centralized powers with an open, user-controlled web.
|
Our vision is simple: to build a digital world where individuals are in charge, rather than corporations or governments. By integrating decentralized identities, censorship-resistant technologies, and financial independence, we can replace our toxic dependency on centralized powers with an open, user-controlled web.
|
||||||
|
|
||||||
12
images/mermaid_charts/semantic_social_graph.svg
Normal file
|
After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 233 KiB |
BIN
images/pubky-arch.png
Normal file
|
After Width: | Height: | Size: 227 KiB |
|
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 288 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 112 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 124 KiB |
8
index.md
@@ -1,17 +1,17 @@
|
|||||||
# Welcome to the Pubky Knowledge Base
|
# 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/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?
|
# 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.
|
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/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: [[Vision|The Vision of Pubky]]
|
Learn more about the overall vision here: [[The vision of Pubky|The Vision of Pubky]]
|
||||||
|
|
||||||
## Get Started
|
## Get Started
|
||||||
|
|
||||||
1. [[Pubky Core/Pkarr/Introduction|Getting Started with PKARR]] - If your main interest is using the most decentralized, key-based identity & routing method, start with PKARR.
|
1. [[Pubky Core/Pkarr/0.Introduction|Getting Started with PKARR]] - If your main interest is using the most decentralized, key-based identity & routing method, start with PKARR.
|
||||||
2. [[Pubky Core/Introduction|Pubky Core - Introduction]] - If you want run your own Homeserver and apply PKARR, check out Pubky Core.
|
2. [[Pubky Core/Introduction|Pubky Core - Introduction]] - If you want run your own Homeserver and apply PKARR, check out Pubky Core.
|
||||||
3. [[Pubky App/Introduction|Pubky App - Introduction]] - If you want to dig into the application, indexer, etc, start here!
|
3. [[Pubky App/Introduction|Pubky App - Introduction]] - If you want to dig into the application, indexer, etc, start here!
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# :brain: Pubky Knowledge Base
|
# Pubky Knowledge Base
|
||||||
|
|
||||||
Welcome to the Pubky Knowledge base - we are excited to have you here.
|
Welcome to the Pubky Knowledge base - we are excited to have you here.
|
||||||
|
|
||||||
### 🔗 [Access the Pubky Knowledge Base: notes.pubky,app!](https://notes.pubky.app)
|
### 🔗 [Access the Pubky Knowledge Base](https://pubky.org/)
|
||||||
|
|
||||||
> **The current Knowledge base is a mix of reality, dreams, visions, actuality and plans.**
|
> **The current Knowledge base is a mix of reality, dreams, visions, actuality and plans.**
|
||||||
|
|
||||||
|
|||||||