Skip to content

Commit da48176

Browse files
committed
docs(messaging): logos core integration track (#389)
* feat: Define Logos Core Integration Phases 2 and 3 * feat: logos core integration phase 3 * feat: discovery module poc v0.2
1 parent c2e095c commit da48176

2 files changed

Lines changed: 179 additions & 0 deletions

File tree

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
---
2+
title: Logos Core Integration — Phase 2
3+
tags:
4+
- messaging-milestone
5+
date: 2026-01-19
6+
---
7+
8+
# Logos Core Integration — Phase 2
9+
10+
**Estimated date of completion**: Testnet v0.2
11+
12+
**Resources Required for 2026H1**:
13+
- 1 dev for 4 weeks from Chat Team
14+
- 1 dev for 2 weeks from Delivery Team
15+
16+
In v0.1, the Chat module embeds Logos Delivery directly via Nimble. This milestone transitions to an architecture where the Chat module uses the locally available Delivery module through Logos Core's inter-module communication.
17+
18+
As new capabilities land in Logos Chat and Logos Delivery (group chats, Reliable Channel API), they are exposed through the corresponding Logos Core modules.
19+
20+
A unified Logos Core demo application is built in QML, supporting 1:1 chats, group chats, and identity. This replaces the v0.1 demo app (which used Qt widgets).
21+
22+
Integration tests are defined by the Messaging team and implemented by IFT-TS.
23+
24+
## FURPS
25+
26+
- [Logos Chat](/messaging/furps/application/chat_sdk.md): S3 (library can be used via C-Bindings)
27+
- [Group Chat](/messaging/furps/application/group_chat.md): S1 (group conversations from C-bindings in Logos Core)
28+
29+
## Risks
30+
31+
| Risk | (Accept, Own, Mitigation) |
32+
| ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
33+
| Inter-module communication | Logos Core inter-module communication mechanism may not be mature enough. Module should be implemented in the simplest way to serve testing and demo purposes, but be able to change integration later. |
34+
| Multiple async runtimes | If de-MLS (Rust/Tokio) runs alongside Logos Delivery (Nim/Chronos) in the same process, runtime conflicts may arise. Needs investigation. |
35+
| External access to Logos Core is not available | Integration tests require a way to access Logos Core modules from outside. Current agreement is to enable Logos Core exposing modules API to REST (and WebSockets for events). |
36+
37+
## Deliverables
38+
39+
### Integrate Chat and Delivery Logos Core modules
40+
41+
**Owner**: Chat Team
42+
43+
The Chat module communicates with the Delivery module through Logos Core rather than embedding Logos Delivery directly. This enables:
44+
- Remove direct integration of Logos Delivery into Logos Chat, lightening the Chat implementation.
45+
- Shared Delivery instance across all modules in Logos Core
46+
- Proper separation of concerns
47+
48+
Chat should be prepared to use Messaging API first, and switch to Reliable Channel API when it's ready.
49+
50+
### [Add Group Chats API to Logos Core Chat module](https://github.com/logos-messaging/pm/issues/375)
51+
52+
**Owner**: Chat Team
53+
54+
**Feature**: [Group Chat](/messaging/furps/application/group_chat.md)
55+
56+
**FURPS**:
57+
- S1. Developers can create group conversations from C-bindings, in Logos Core framework.
58+
59+
The Chat module API is extended to expose group chat functionality (create group, send group message, manage members) and identity (manage installations).
60+
61+
### Add Reliable Channel API to Logos Core Delivery module
62+
63+
**Owner**: Delivery Team
64+
65+
When the [Reliable Channel API — Developer Preview](2025-package-sds-in-reliable-channel-api.md) is ready, the Delivery Logos Core module is updated to expose it alongside the Messaging API. Chat module switches to using Reliable Channel API for message delivery.
66+
67+
### POC: Delivery module uses Discovery module for peer discovery
68+
69+
**Owner**: Delivery Team
70+
71+
Proof of concept: the Delivery module uses the Discovery Logos Core module (from AnonComms) as an additional source of peer discovery. In this stage, Discovery module is used alongside existing discovery (discv5) — the Delivery module queries the Discovery module for peers and merges them with peers from its own discovery. discv5 can be disabled once this integration is validated.
72+
73+
This is a POC — required for v0.3, but only included in v0.2 if a clean architecture is achievable. If integration would require a hacky shim that gets thrown away, it is deferred to v0.3.
74+
75+
### Build Logos Core demo app in QML
76+
77+
**Owner**: Chat Team
78+
79+
A single Logos Core application implemented in QML (replacing the v0.1 Qt widgets demo):
80+
- Supports 1:1 chats and group chats
81+
- Supports identity (user with multiple installations, add/remove devices)
82+
- Uses the Chat and Delivery Logos Core modules through their APIs
83+
84+
### Define integration tests for Messaging modules
85+
86+
**Owner**: Messaging Team (definition) + IFT-TS (implementation)
87+
88+
The Messaging team defines test scenarios and expected behavior. IFT-TS implements and maintains the test suite.
89+
90+
End-to-end tests that verify:
91+
- Chat module can send/receive messages through Delivery module via Logos Core
92+
- Group chat creation, messaging, and membership management
93+
- Module lifecycle (start, stop, restart) works correctly
94+
- Error propagation between modules
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
---
2+
title: Logos Core Integration — Phase 3
3+
tags:
4+
- messaging-milestone
5+
date: 2026-03-01
6+
---
7+
8+
# Logos Core Integration — Phase 3
9+
10+
**Estimated date of completion**: Required for Mainnet
11+
12+
**Resources Required**:
13+
- 1 Delivery engineer
14+
- 1 Chat engineer
15+
- Logos Core team support
16+
17+
The final integration phase for mainnet. Logos Delivery module stops embedding functionality and instead integrates with other Logos Core modules.
18+
19+
The vision is a shared P2P module that all Logos modules (Delivery, Storage, Blockchain) use for common networking concerns — discovery, mix, gossip. Delivery is the first module to adopt this architecture.
20+
21+
The progression toward the shared P2P module:
22+
1. **Discovery** (mainnet requirement) — Delivery module uses the Discovery Logos Core module for peer discovery instead of its own embedded discovery (discv5). The interface is straightforward: ask for peers, get peers. This builds on the [POC from v0.2](2026-logos-core-integration-phase-2).
23+
2. **Mix** (mainnet goal) — Delivery module uses mix from the P2P module. Interface between module and mix needs design work (current callback-based mixification is not clean).
24+
3. **GossipSub** (stretch goal, post-mainnet acceptable) — Delivery module uses a shared gossip layer from the P2P module. If achieved, it demonstrates the full P2P module vision.
25+
26+
Additionally:
27+
- **RLN membership module**: Delivery module uses the RLN membership Logos Core module to manage rate-limiting credentials, rather than interacting with the blockchain directly.
28+
29+
This enables a fully modular Logos Core deployment where all modules share infrastructure and can be independently updated.
30+
31+
## FURPS
32+
33+
- [Messaging API](/messaging/furps/core/messaging_sdk.md): S2 (C-bindings via Logos Core)
34+
35+
## Risks
36+
37+
| Risk | (Accept, Own, Mitigation) |
38+
| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
39+
| Logos Core module API stability | Module APIs must be stable for mainnet. Breaking changes at this stage are costly. |
40+
| Discovery module readiness | AnonComms Discovery module may not be ready or may not meet Delivery requirements. Evaluate early via v0.2 POC. |
41+
| Mix module interface design | The interface between a module and mix is currently callback-based and complex. Needs redesign for clean integration. |
42+
| Multi-module coordination | Running RLN, discovery, p2p, Delivery, and Chat modules together introduces coordination complexity. Integration testing is critical. |
43+
44+
## Deliverables
45+
46+
### Delivery module uses Discovery module
47+
48+
**Owner**: Delivery Team
49+
50+
Logos Delivery module uses the Discovery Logos Core module (capability discovery, developed by AnonComms) as its primary peer discovery mechanism. This replaces the embedded discv5 discovery. Builds on the [v0.2 POC](2026-logos-core-integration-phase-2).
51+
52+
**This is a mainnet requirement.**
53+
54+
### Delivery module uses Mix from P2P module
55+
56+
**Owner**: Delivery Team
57+
58+
Logos Delivery module uses mix capabilities from the shared P2P/networking module. Requires a clean interface design to replace the current callback-based mixification approach.
59+
60+
**Mainnet goal, but not blocking if interface design is not resolved.**
61+
62+
### Delivery module uses shared GossipSub (stretch)
63+
64+
**Owner**: Delivery Team
65+
66+
Logos Delivery module uses a shared gossip layer from the P2P module, completing the vision of a fully shared networking stack across all Logos modules.
67+
68+
**Stretch goal — post-mainnet acceptable.**
69+
70+
### Delivery module uses RLN membership module
71+
72+
**Owner**: Delivery Team
73+
74+
Logos Delivery module obtains RLN credentials and validates proofs through the RLN membership Logos Core module rather than direct blockchain interaction.
75+
76+
### Full integration testing
77+
78+
**Owner**: Messaging Team (definition) + IFT-TS (implementation)
79+
80+
End-to-end testing of all Messaging-related Logos Core modules running together:
81+
- Chat module → Delivery module (via Logos Core)
82+
- Delivery module → RLN membership module (via Logos Core)
83+
- Delivery module → Discovery module (via Logos Core)
84+
- Delivery module → P2P module (via Logos Core)
85+
- Full message lifecycle: send, deliver, acknowledge, with RLN rate limiting

0 commit comments

Comments
 (0)