Skip to content

Commit 2826520

Browse files
Merge pull request #26 from osvauld/feature/future-update
Feature/future update
2 parents 79b03c1 + bf69b5a commit 2826520

5 files changed

Lines changed: 235 additions & 67 deletions

File tree

astro.config.mjs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,13 @@ export default defineConfig({
6161
],
6262
},
6363
{
64-
label: "Sthalam",
64+
label: "Libremot",
65+
items: [
66+
{ label: "Introduction", link: "/libremot/introduction" },
67+
],
68+
},
69+
{
70+
label: "Project Sthalam",
6571
items: [
6672
{ label: "Introduction", link: "/sthalam/introduction" },
6773
{ label: "Publishing Content", link: "/sthalam/publishing-content" },
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
title: "Introduction"
3+
description: "Peer-to-peer encrypted chat application with CRDT-based synchronization"
4+
---
5+
6+
Libremot is a **peer-to-peer encrypted chat application** that uses the same Osvauld protocol as Livnote and Sthalam. Each chat is a CRDT document that synchronizes across peers in real-time.
7+
8+
## How It Works
9+
10+
**CRDT-Based Chat**: Each conversation is a conflict-free replicated data type (CRDT) document. When you send a message, you're editing the shared CRDT document—changes sync automatically across all participants.
11+
12+
**Same Protocol**: Libremot uses the same peer-to-peer infrastructure as Livnote:
13+
- Self-sovereign identity (PGP keys, Ed25519)
14+
- Direct peer-to-peer connections
15+
- End-to-end encryption
16+
- No central servers required
17+
18+
**Group Chats**: Supports group conversations with multiple participants. All group members edit the same CRDT document, keeping everyone synchronized.
19+
20+
## Key Features
21+
22+
**Real-Time Synchronization**: Messages appear instantly across all connected peers through CRDT operations.
23+
24+
**End-to-End Encrypted**: All messages are encrypted end-to-end. Only participants with access to the shared CRDT document can read the conversation.
25+
26+
**Offline Support**: Messages queue locally when peers are offline and sync automatically when connections restore.
27+
28+
**Single Identity**: Use the same identity across Livnote, Libremot, and Sthalam—no separate logins required.
29+
30+
## Architecture
31+
32+
Libremot treats chat as a specialized type of collaborative editing:
33+
34+
**Chat as Document Editing**: Each message is an operation on the shared CRDT document. The same synchronization engine that powers Livnote's collaborative documents powers Libremot's chat.
35+
36+
**Group Conversations**: Multiple peers can participate in the same conversation. The CRDT ensures all messages arrive in consistent order without conflicts.
37+
38+
**Protocol Reuse**: By using the same underlying protocol, Libremot benefits from all the security and synchronization features built for Livnote.
39+
40+
This architecture means chat is just another form of peer-to-peer collaboration—with the same privacy, sovereignty, and direct connections that define the Osvauld ecosystem.

src/content/docs/sovereign-node/setting-up.mdx

Lines changed: 55 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,43 @@
11
---
22
title: "Setting Up Sovereign Nodes (Proof of Concept)"
3-
description: "Experimental always-online infrastructure for testing backup and synchronization concepts"
3+
description: "Experimental always-online infrastructure for collaborative editing (Livnote) and content publishing (Sthalam)"
44
---
55
import { Badge } from '@astrojs/starlight/components';
66

77
<Badge text="⚠️ Development Status: This is experimental software not intended for production use. The security model and functionality are still evolving." variant="caution" />
88

99
<br/><br/>
1010

11-
Sovereign nodes are an experimental CLI application that demonstrates how self-hosted infrastructure could provide always-online backup and synchronization services for Osvauld networks. This is currently a proof-of-concept implementation to test the viability of user-controlled infrastructure in P2P collaborative networks.
11+
Sovereign nodes are an experimental CLI application that demonstrates how self-hosted infrastructure could provide always-online services for the Osvauld ecosystem. Nodes serve two primary functions:
12+
13+
1. **Collaborative backup and synchronization** (Livnote): Always-online P2P infrastructure for document collaboration
14+
2. **Content publishing and distribution** (Sthalam): Host and serve websites, blogs, forms, and comments to viewers
15+
16+
This is currently a proof-of-concept implementation to test the viability of user-controlled infrastructure.
17+
18+
## What Sovereign Nodes Support
19+
20+
### Livnote (Collaborative Editing)
21+
22+
Sovereign nodes provide always-online backup and synchronization for collaborative documents:
23+
24+
- **P2P infrastructure**: Maintain connections when desktop peers go offline
25+
- **Document synchronization**: Keep real-time copies of shared documents
26+
- **Connection brokering**: Help peers discover and connect to each other
27+
- **CRDT operations**: Process conflict-free replicated data type updates
28+
29+
### Sthalam (Publishing Platform)
30+
31+
Sovereign nodes host and serve published content:
32+
33+
- **Websites and blogs**: Publish content from your node—viewers connect directly
34+
- **Forms and surveys**: Collect submissions from viewers with UCAN-protected access
35+
- **Comments**: Enable real-time discussions on published content
36+
- **Newsletters**: Distribute content to subscribers
37+
- **UCAN permissions**: Control who can view, comment, or submit forms
38+
- **Viewer privacy**: Viewer identities NOT stored by default—one-way connections only
39+
40+
**Publishing flow**: Create content on desktop → Publish to your sovereign node → Viewers access via connection string or blockchain name → All interactions happen through your node
1241

1342
## Current Proof-of-Concept Model
1443

@@ -20,7 +49,7 @@ The current sovereign node implementation operates as a regular peer with full a
2049

2150
**Standard Synchronization**: Uses the existing P2P synchronization protocols without special infrastructure optimizations.
2251

23-
**Experimental Features**: Provides a testing ground for concepts like always-online availability and backup storage in a P2P context.
52+
**Experimental Features**: Provides a testing ground for concepts like always-online availability, backup storage, and content publishing in a P2P context.
2453

2554
### Future Security Model (In Development)
2655

@@ -92,13 +121,18 @@ The `--print-token` flag generates connection information for testing peer conne
92121

93122
### What Works Today
94123

95-
**Peer Connectivity**: Nodes successfully establish P2P connections with desktop clients using standard handshake protocols.
96-
97-
**Document Synchronization**: Shared documents sync to nodes and remain available when other peers go offline.
98-
99-
**Always-Online Testing**: Demonstrates how continuous availability could work in production systems.
124+
**Livnote Collaboration**:
125+
- Peer connectivity: Nodes establish P2P connections with desktop clients
126+
- Document synchronization: Shared documents sync to nodes and remain available when other peers go offline
127+
- Always-online testing: Demonstrates continuous availability for collaboration
128+
- Connection brokering: Provides stable connection points for peer discovery
100129

101-
**Connection Brokering**: Provides stable connection points that help other peers discover each other.
130+
**Sthalam Publishing**:
131+
- Content hosting: Publish websites, blogs, and newsletters from your node
132+
- Viewer access: Viewers connect directly to your node to read content
133+
- Forms and comments: Collect submissions and enable discussions
134+
- UCAN permissions: Control access to published content, forms, and comment threads
135+
- Real-time sync: Comments and form submissions sync via CRDT operations
102136

103137
### What's Experimental
104138

@@ -114,13 +148,21 @@ The `--print-token` flag generates connection information for testing peer conne
114148

115149
Share the generated connection token with desktop Osvauld clients to establish connections and test the peer-to-peer protocols.
116150

117-
### Document Sharing
151+
### Testing Livnote Collaboration
152+
153+
**Document Sharing**: Desktop users can share documents with the test node like any other collaborator. The node will receive full access and maintain synchronized copies.
154+
155+
**Offline Testing**: Test offline scenarios by disconnecting desktop peers while keeping the node online, then reconnecting to verify synchronization works correctly.
156+
157+
### Testing Sthalam Publishing
158+
159+
**Publishing Content**: Use the desktop client to create and publish websites, blogs, or newsletters to your test node.
118160

119-
Desktop users can share documents with the test node like any other collaborator. The node will receive full access and maintain synchronized copies.
161+
**Viewer Connections**: Test viewer access by connecting to published content using the node's connection string.
120162

121-
### Offline Testing
163+
**Forms and Comments**: Test form submissions and comment threads—verify real-time CRDT synchronization between publisher and viewers.
122164

123-
Test offline scenarios by disconnecting desktop peers while keeping the node online, then reconnecting to verify synchronization works correctly.
165+
**Permission Testing**: Test UCAN token-based access control for viewing content, submitting forms, and posting comments.
124166

125167
## Limitations and Warnings
126168

0 commit comments

Comments
 (0)