Hello @redsolver
Thank you for your progress report!
Regards,
Kino on behalf of the Sia Foundation and Grants Committee
Hello @redsolver
Thank you for your progress report!
Regards,
Kino on behalf of the Sia Foundation and Grants Committee
Hi, I unfortunately won’t be able to submit this month’s progress report in time due to being busy with putting out some fires in the infrastructure of SkyFeed, the other project I’m working on. X (Twitter) was blocked in Brazil a few days ago, and as a result over a million people signed up on Bluesky and caused 10x to 20x higher activity than usual. SkyFeed is hosting over 40,000 custom feeds and serving about 500,000 users daily there. My servers couldn’t keep up, so I was busy trying to get them back online (and set up new ones) over the past few days (and nights).
I’ll try to finish up and submit my progress report and spec updates as soon as possible after the situation cools down a bit, hopefully later this week.
Hello @redsolver,
Thank you for the update on your situation, it seems like a good problem to be having at the very least!
We look forward to your progress report sometime soon.
Regards,
Kino on behalf of the Sia Foundation and Grants Committee
Wrote the S5 v1 specifications. They might however still see some small changes based on feedback from other developers and S5 users.
Blobs
Registry
Streams
Accounts
Upload
API Interface
Identity
Key Derivation
Encryption
File System (FS5) (still missing key management section and encryption fields, will be updated together with the Dart implementation)
All specs can be read directly on GitHub: docs/src/spec at main · s5-dev/docs · GitHub
In August, I also implemented an API for secure end-to-end-encrypted messaging with MLS (Messaging Layer Security, RFC 9420) over S5 Streams, for Vup Chat, which Covalent was working on: GitHub - vup-app/vup-chat: Chat app for bsky powered by S5
Update the S5 Dart and Flutter libraries to fully match the S5 v1 specifications
Get feedback from other developers on the S5 specifications (including from other content-addressed network projects) and based on that make small changes to the specs if needed
Assist developers in adding the new S5 v1 Dart and Flutter libraries to their app, and eliminate remaining developer experience pain points in the process
S5APIProvider
base class (API Interface)CryptoImplementation
base class (API Interface)BlobCID
(Blobs)util/derive_hash.dart
(Key Derivation)Links to repos worked on this month:
Started building the S5 TypeScript/JS library based on the v1 specs. Adapted some of the APIs to better match the web platform, like using Blob objects for large file uploads. Progress has been slower than expected, nevertheless the lib is a requirement for the Vup Web app, so it will be finished in a few weeks at most.
Links to repos worked on this month:
Hello @redsolver
Thank you for your progress report!
Regards,
Kino on behalf of the Sia Foundation and Grants Committee
s5.pro
for S5 Protocol. The docs are already there: https://docs.s5.pro/ and a landing page on the main domain will be added soon. It replaces the previous sfive.net
domainblobsum
command line utility for easily and efficiently calculating S5 Blob Identifiers (CIDs) of files on your system. It’s a fork of b3sum
Links to repos worked on this month:
Hello,
Thank you for your progress report!
Regards,
Kino on behalf of the Sia Foundation and Grants Committee
The designer has been busy working on different components, concepts/views and utilities for the Vup Web UI, while I gave some feedback. Vup Web is slightly behind schedule now, but should finally get a nice MVP ready this month with all basic file management features working
Bluesky now has over 26M users which also resulted in significantly more load on my feed infrastructure and kept me quite busy putting out fires. So this month I built a new powerful open-source indexer in Rust to keep up with the network growth and have less issues in the future. The new indexer will also play a crucial role in bridging the AT Protocol and Bluesky data and media over to the S5 protocol as part of the archiver milestone planned later in 2025 for this grant
Attended the 38th Chaos Communication Congress and had some interesting discussions there around S5, the AT Protocol and other projects building decentralized protocols and networks
Links to repos worked on this month:
Use the first finished design components to build the Vup Web UI with all basic features implemented and working
Continue working on the S5 TS/JS library and implementing all v1 specs
Design a landing page for the S5 protocol which gives a quick overview over which features are possible with S5 v1 and onboards developers to use it in their project (to be deployed on https://s5.pro)
Hello,
Thank you for your progress report!
Regards,
Kino on behalf of the Sia Foundation and Grants Committee
The timeline listed in the second post of this thread is off by one month due to the grant taking a few weeks to be approved and onboarded, which resulted in the official timeline in the grant agreement being shifted by one month. Unfortunately I can’t edit the timeline in this thread anymore due to it being the second post (instead of the first), so instead I’m just posting the correct timeline here for reference:
Design, define and write v1 specifications for the different S5 data structures and features:
In July, I will attend IPFS Camp 2024 (https://2024.ipfs.camp/) for exchanging ideas with the wider IPFS ecosystem and getting feedback on the final S5 specs, to make them the best they can be.
In August and likely already earlier while working on the specs, I will adapt the existing Dart/Flutter libraries for S5 to use the new specifications. This will be very important for validating if everything works as expected and adding support for S5 to different apps like GitHub - LinwoodDev/Butterfly: 🎨 Powerful, minimalistic, cross-platform, opensource note-taking app (in collaboration with the developers), to see if the APIs are well-designed and the data structures efficient.
Build a TypeScript/JS library based on spec v1 in collaboration with @pcfreak to ensure the spec is sound and make all S5 features available for the most popular development ecosystem (the web and native JS). The libraries will use Rust via WASM for performance-critical things like hashing, signing and encryption (just like in the Dart libraries).
The TypeScript library will be designed to “just work” (like the s5
dart package), so devs can easily add it to their app to get features like a decentralized end-to-end-encrypted file system (compatible with Vup) and real-time communication between multiple users.
Using the new TypeScript libraries, build a lightweight web version of the Vup Cloud Storage app (fully compatible with the native version of course). This will also be the first implementation of the new user-friendly Vup UI designed by a professional designer.
Features
From https://sia.tech/roadmap:
RHP4 will also enable storage consumers to download and upload data directly in the browser without installing additional software.
When this feature lands in Sia, I will add it to the web-based and native S5 libraries (like TypeScript and Dart), to support more efficient direct downloads from the Sia Network.
Webxdc (https://webxdc.org/) is a standard to bring privacy-friendly web apps to messenger chats in a simple file format containing HTML5, CSS, JavaScript and other asset files. But apart from that use case, this is also the ideal format to provide many different collaborative web apps for Vup (Web and Native) and other S5-powered apps. S5 can both be used as the transport layer (instead of a chat room) for real-time collaboration like drawing on a whiteboard or editing text, and it can also store files you edited permanently in the S5 file system. There are already many Webxdc apps made for https://delta.chat and other messengers and most of them should just work with Vup+S5.
From the Webxdc specification:
All authentication, identity management, social discovery and message transport is outsourced to the host messenger which runs a webxdc app container file and relays application update messages between app users, letting each app inherit offline-first and end-to-end encryption capabilities implemented by the hosting messenger.
In this case, the Vup app is the “hosting messenger”!
Some use cases possible with this:
The biggest advantage of this approach over just implementing collaborative productivity apps/features myself in Vup is that it saves me a ton of work and also makes the whole platform easily extensible by third-party developers with new and exciting apps.
Add Iroh support (https://iroh.computer/) to Vup for keeping true p2p connectivity between multiple devices and users. (only trusted devices by default)
Use Cases
Archiving makes sense for personal archive use cases, for preserving history and satisfying your data hoarder needs. It’s also a fantastic way to onboard massive amounts of useful data to the network.
The existing S5 Archiver will be extended to support all the following data sources natively:
After that’s done, I will deploy a large Sia storage cluster with multiple S5 Nodes. This archival infrastructure will then be used to archive massive amounts of Creative-Commons-licensed YouTube Videos, different websites and CommonCrawl archives. It will serve as both a scalability test of the software and network, and as a useful archive.
All parts of the archive with a public license that permits it (like Creative Commons), will be publicly browsable using a S5-powered web app.
Completed all parts of the S5 TypeScript library needed for full trustless read-only access to the S5 network and file system including end-to-end-encryption. Most building blocks for read+write support in the file system are ready too, like seed phrase management and portal account login/registration
The Vup Web designer finally finished some of the first components and I used the file listing one to make a simple demo of the directory browsing and file (video/music/image) streaming capabilities of the new S5 TypeScript library: https://web-preview.vup.app/browse#fs5://blvpmydou5fiwrlax4dhjsqktnpslikb4gz2w5pb3mvkpg74q2hxx5p7n2fsdvu5zm45cff3ud2jl34hfrwbpeq5nva4cz447osp7zrquxd3a
Links to repos worked on this month:
Finish implementing full identity and account support in the S5 TypeScript library (currently ~70% done)
Continue working on Vup Web after the next components from the designer are available
Design a landing page for the S5 protocol which gives a quick overview over which features are possible with S5 v1 and onboards developers to use it in their project (to be deployed on https://s5.pro)
Links to repos worked on this month:
Due to poor time management on my part, I am unfortunately unable to publish my progress report for March on time today. I would like to apologize for this and will post it as soon as possible (no later than April 5th)
The very first version of the Vup Web App is ready! It’s still a bit rough around the edges, but identity+account creation, recovery, storage usage, browsing directories, end-to-end-encrypted upload and streaming work: https://web.vup.app
@Julian made some great progress on the design for the S5 Protocol landing page: https://www.figma.com/proto/5FPEK2QH55FTuBiNdKA3X6/S5-Protocol?node-id=0-1&t=FZms3ci9OjJvJDof-1
Fixed some bugs and added some missing features to s5.js
Fixed some bugs in the S5 Dart Node
Links to repos worked on this month:
Implement sharing in Vup Web, polish the user experience and add more features
In Vup Web, implement initial support for browsing and using webxdc apps (this milestone is now delayed)
Publish the new S5 landing page
Get the existing native Flutter-based Vup to version 1 and add features like p2p connectivity and advanced two-way sync
Hello,
Thank you for your progress report!
Regards,
Kino on behalf of the Sia Foundation and Grants Committee
For reference, here are the current estimated completion dates for my milestones:
This is not my progress report, the April report will be posted on 2025-05-02 as usual
Published an initial version of the new S5 landing page on https://s5.pro
I attended the first ever AT Proto / Bluesky conference in Europe and gave a talk (redsolver at AHOY! European Social Web Day) about SkyFeed and its early beginnings in the Sia Skynet ecosystem. I also presented and discussed a new content-addressed architecture for the SkyFeed Indexer and AppView which can scale beyond the current (already massive) Bluesky network size by storing time-sharded snapshots of records on S5-compatible storage networks like Sia.
Links to repos worked on this month:
Implement sharing in Vup Web, polish the user experience and add more features
In Vup Web, implement initial support for browsing and using webxdc apps (this milestone is now delayed)
Get the existing native Flutter-based Vup to version 1 and add features like p2p connectivity and advanced two-way sync (this milestone is now delayed)
Build the new content-addressed SkyFeed Indexer (via Refactor code and debug performance issues by zebreus · Pull Request #5 · skyfeed-dev/indexer-rust · GitHub)