Grant Milestone Progress Report (October) [revised]
What progress was made on your grant this month? Summarize your progress into a few sentences or bullet points.
- Implemented automatic sharding of the S5 file system to more efficiently handle large directory trees
- Added an option for configuring trusted nodes by their ed25519 iroh pubkey and syncing private s5 file systems with them
- Added a config option for adding s5 nodes who are allowed to upload and pin data to specific blob stores and using that for remote blob upload and sync
- For the FS, added snapshot export and merge functionality for syncing plaintext and encrypted directories
- Implemented a remote blob store client which uses a remote s5 node over iroh as a blob store, but exposes the same API as local blob stores
- Implemented a comprehensive and well-documented Rust test which sets up three S5 nodes (two trusted and one untrusted), configures the untrusted one to allow the other two nodes to upload and pin blobs, creates a directory and a few files on one of the trusted nodes and then correctly syncs it to the second trusted node via the untrusted node (end-to-end-encrypted). This test validates the common use case of users syncing data securely between their devices even if they are not both online at the same time
| Milestone | Task | Commits | Additional Notes |
|---|---|---|---|
| Milestone 2025-10-25: E2EE FS sync over untrusted node | Implementation | d5566…857e6 | Validation: Checkout commit 857e6e3 (as of now same as main) and run cargo test -p s5_node --test fs_sync_complete |
What will you be working on next month?
- Stable release of the s5 rust crates
- Well-documented JavaScript and Dart bindings via UniFFI
- Vup Web Migration to s5-rust
Link to an easy to test version or a demo video.
Run the test (which is the validation requirement for this milestone, see the section above):
git clone https://github.com/s5-dev/s5-rscd s5-rscargo test -p s5_node --test fs_sync_complete