You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
<Badgetext="⚠️ Development Status: This is experimental software not intended for production use. The security model and functionality are still evolving."variant="caution" />
8
8
9
9
<br/><br/>
10
10
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
12
41
13
42
## Current Proof-of-Concept Model
14
43
@@ -20,7 +49,7 @@ The current sovereign node implementation operates as a regular peer with full a
20
49
21
50
**Standard Synchronization**: Uses the existing P2P synchronization protocols without special infrastructure optimizations.
22
51
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.
24
53
25
54
### Future Security Model (In Development)
26
55
@@ -92,13 +121,18 @@ The `--print-token` flag generates connection information for testing peer conne
92
121
93
122
### What Works Today
94
123
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
100
129
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
102
136
103
137
### What's Experimental
104
138
@@ -114,13 +148,21 @@ The `--print-token` flag generates connection information for testing peer conne
114
148
115
149
Share the generated connection token with desktop Osvauld clients to establish connections and test the peer-to-peer protocols.
116
150
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.
118
160
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.
120
162
121
-
### Offline Testing
163
+
**Forms and Comments**: Test form submissions and comment threads—verify real-time CRDT synchronization between publisher and viewers.
122
164
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.
0 commit comments