Skip to content

Conversation

@gmega
Copy link
Member

@gmega gmega commented Dec 11, 2025

This is the bare-bones roadmap for logos storage.

Copy link
Contributor

@emizzle emizzle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! A few suggestions, but nothing blocking, so will approve now.

1. **File sharing.** Any user in the network should be able to share files (frontend bundles and modules) such that those can be downloaded by any other user in the network.
1. **Content addressability.** Files should be addressable by a content identifier, such that users are sure that the content they download is the content they expect.
1. **Organic replication.** Users that download a file should be able to provide it to other users in the network.
1. **Caching and storing.** Nodes should allow files to be either _cached_ or _stored_. Caching is constrained by a quota, and any file placed onto a node node should be cached unless explicitly told otherwise. Cached files are _evicted_ once the node runs out of quota. Optionally, a file might be marked as _stored_, at which point it no longer occupies the caching quota, and is simply preserved on disk.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. **Caching and storing.** Nodes should allow files to be either _cached_ or _stored_. Caching is constrained by a quota, and any file placed onto a node node should be cached unless explicitly told otherwise. Cached files are _evicted_ once the node runs out of quota. Optionally, a file might be marked as _stored_, at which point it no longer occupies the caching quota, and is simply preserved on disk.
1. **Caching and storing.** Nodes should allow files to be either _cached_ or _stored_. Caching is constrained by a quota, and any file placed onto a node should be cached unless explicitly told otherwise. Cached files are _evicted_ once the node runs out of caching quota in a LRU manner. Optionally, a file might be explicitly marked as _stored_, at which point it no longer occupies the caching quota, and is simply preserved on disk. Storage space is limited by a separate storage quota.


## Usability

1. **C API.** A C API with the proper primitives for publishing and downloading files by address and pinning is published.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. **C API.** A C API with the proper primitives for publishing and downloading files by address and pinning is published.
1. **C API.** A C API with primitives for publishing and downloading files by address is published.


1. **C API.** A C API with the proper primitives for publishing and downloading files by address and pinning is published.
1. **Logos Core.** The filesharing client is published as a working Logos Core module.
1. **Zero-config networking.** Within the possibilities of current technology, user should not have to take any extra steps; e.g. opening ports on a router, to get file sharing working.[^1]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume that bootstrap nodes fall into this category as well?

1. **C API.** A C API with the proper primitives for publishing and downloading files by address and pinning is published.
1. **Logos Core.** The filesharing client is published as a working Logos Core module.
1. **Zero-config networking.** Within the possibilities of current technology, user should not have to take any extra steps; e.g. opening ports on a router, to get file sharing working.[^1]
1. **File search.** Accessing a file requires knowledge of a file identifier; i.e., a Content ID (CID). We assume that the user will obtain these CIDs out-of-band, either directly from other users or through an external indexing/discovery service.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. **File search.** Accessing a file requires knowledge of a file identifier; i.e., a Content ID (CID). We assume that the user will obtain these CIDs out-of-band, either directly from other users or through an external indexing/discovery service.
1. **File search.** Accessing a file requires knowledge of a file identifier; i.e., a Content ID (CID). User must obtain these CIDs out-of-band, either directly from other users or through an external indexing/discovery service.


1. [Create A Basic File Sharing Client for Logos Core](./frontends-filesharing.md), by rolling out a minimal implementation which allows storing, sharing, and organically replicating frontends, modules, and files.
2. [Privacy-Preserving File Sharing](./privacy-preserving-filesharing.md), where we enhance our filesharing implementation to provide privacy-preserving capabilities such as publisher and downloader unlinkability, and plausible deniability for ache nodes.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about "track 3" discussed at the offsite, ie "persistence".

@@ -0,0 +1,32 @@
# Privacy-Preserving File Sharing

**Estimated date of completion.** Oct 2026
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fwiw, I'm not sure how much room we have here, but it feels odd to put a delivery date on a feature set that we have no idea how to accomplish.

**Estimated date of completion.** Oct 2026

Privacy-preserving file sharing means that:
* neither publisher or downloader of a file can be identified as so by third parties when querying and/or retrieving data;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* neither publisher or downloader of a file can be identified as so by third parties when querying and/or retrieving data;
* neither publisher or downloader of a file can be identified by third parties when querying and/or retrieving data;


Privacy-preserving file sharing means that:
* neither publisher or downloader of a file can be identified as so by third parties when querying and/or retrieving data;
* cache nodes cannot be held accountable for the content they cache (plausible deniability).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* cache nodes cannot be held accountable for the content they cache (plausible deniability).
* cache nodes should be able to convincingly deny knowledge of or responsibility for content they cache (plausible deniability).

| Risk | (Accept, Own, Mitigation) |
|------------------------|------------------------------------------------------------------------------------------------------------------|
| We take an approach of building filesharing first and then enhancing it with privacy, and figure out that we need an different protocol altogether. | Try to identify this as early as possible and fail fast. |
| Anon coms team builds something that does not work for us. | Close collaboration with anon coms, with the embedding of a logos storage researcher within their effort. Employ strategic and small multidisciplinary team including both cryptography and networking researchers and engineers. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| Anon coms team builds something that does not work for us. | Close collaboration with anon coms, with the embedding of a logos storage researcher within their effort. Employ strategic and small multidisciplinary team including both cryptography and networking researchers and engineers. |
| Anon comms team builds something that does not work for us. | Close collaboration with anon comms, with the embedding of a logos storage researcher within their effort. Employ strategic and small multidisciplinary team including both cryptography and networking researchers and engineers. |

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants