Storage backends: IPFS/IPLD/IPNS and S3-compatible stores (Ceph and others) #25
Closed
opened 2026-10-05 05:27:21 +00:00 by rvnminers-A-and-N
·
3 comments
No Branch/Tag Specified
dev
ci/gitea-actions
dependabot/go_modules/go-f5e78d6b71
integration
feat/777-accelerators
fix/workspace-globe-pane-motion
feat/789-pending-action-attribution
feat/741-model-catalog-stream
fix/741-shared-state-reconnect-baseline
feat/741-bootstrap-peers-stream
feat/741-city-table-stream
fix/741-location-stream-client-metadata
fix/741-files-shared-state-coverage
fix/741-settings-stream-e2e-readiness
dependabot/npm_and_yarn/apps/sisyphus/electron-45.0.0
dependabot/npm_and_yarn/apps/sisyphus/desktop-ea22606fe9
agents/app-side-confirmation
feat/files-scoped-by-pool
feat/storage-replication-push-stream
codex/protobuf-v2-lending-state
fix/dev-preview-auth-forwarding
feat/chat-attachment-retention
No results found.
Labels
Clear labels
accessibility
all-platforms
area:agents
area:ai
area:chain
area:ci
area:client
area:daemon
area:p2p
area:project
area:protocol
area:runtime
area:storage
bug
chore
community
dependencies
discussion
discussion/Announcements
discussion/General
discussion/Ideas
discussion/Q&A
discussion/Show and tell
discussion/answered
documentation
duplicate
enhancement
good first issue
help wanted
i18n
infra
invalid
needs:decision
needs:hardware
paired
question
research
security
status:in-review
test
testing
tracking
wontfix
Barrier affecting people with disabilities
Run every platform's packaging and checks on this pull request, not only the three main ones
MCP server, skill, and thinking on the pool
Planner and model providers
Blockchain, SISY, verification
Continuous integration and build workflows
Desktop and web clients
sisyphusd coordinator, worker, scheduler
libp2p hosts, relays, discovery, connections between nodes
Project planning, roadmap, and governance
Protobuf schemas and RPC contracts
Workload execution and environments
Content-addressed storage, IPFS, Kubo, Cluster, S3, names, pinning
Something isn't working
Repository health, templates, Discussions, contributor experience
Updates to actions, Go modules or npm packages
Migrated from GitHub Discussions
GitHub Discussions category: Announcements
GitHub Discussions category: General
GitHub Discussions category: Ideas
GitHub Discussions category: Q&A
GitHub Discussions category: Show and tell
Q&A discussion with an accepted answer
Improvements or additions to documentation
This issue or pull request already exists
New feature or request
Good for newcomers
Extra attention is needed
Translations and right-to-left layouts
Build, CI, releases
This doesn't seem right
Waits on a decision from both owners
Waits on a machine we do not have yet
Built together by both maintainers, with co-authored commits
Further information is requested
Needs investigation or a design decision
Sealing, keys, access control, tokens, the security model
Built and in an open pull request; closes when it merges
Tests, test harnesses and the rehearsal
Roadmap and meta issues
This will not be worked on
type
Feature
A request, idea, or new functionality (GitHub issue type)
type
Task
A specific piece of work (GitHub issue type)
Milestone
No items
No Milestone
Beyond V0: open network and chain
Projects
Clear projects
No projects
Sisyphus roadmap
Done
No Assignees
rvnminers-A-and-N
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Sisyphus/Sisyphus#25
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Proposal to build artifact storage (#11) around pluggable backends, with IPFS-family technology as the network-wide layer and S3-compatible storage for pools that run their own.
This changes something in the README, which currently lists IPFS under what V0 deliberately excludes. Needs agreement from both of us: either IPFS moves into V0, or V0 ships with local storage only and the interface is designed so IPFS drops in afterwards. The second is the lower-risk option.
Shape
One small interface in the daemon (put, get, has, delete by content hash), several implementations:
Identify every artifact by an IPFS-style CID from day one, even on local disk, so the same identifier works on every backend.
Where each IPFS-family piece fits
Problems to design for
Tasks
Persistence, privacy, and where Ceph fits: options to discuss
#26 implements the local-disk part of this proposal with real IPFS CIDs. What follows is the design space for the two hard questions, with a suggested default for each. Nothing here is decided.
Why Ceph and IPFS feel similar, and how they differ
Both spread data over many machines. The difference is who is trusted.
So they stack rather than compete. Ceph, or anything else speaking S3 (MinIO, SeaweedFS, Storj's gateway, Wasabi, AWS), is durable storage one party operates. IPFS is how untrusting parties name and exchange data. A Kubo node can keep its blocks in an S3 bucket through the
go-ds-s3datastore plugin, so a pool with a Ceph cluster can serve IPFS content out of it.Persistence: who keeps the bytes, and for how long
Notes on each:
Suggested default: tier 1 in V0; design the retention field on a blob now (expiry time, or "pinned until released") so tiers 2 and 3 are a policy change rather than a redesign.
Privacy: who can read the bytes
Points that are easy to get wrong:
Suggested default: B for private pools, since V0 is trusted machines anyway; design C alongside node identity in #8, because it needs each node to have a keypair; state plainly in the docs that public workers can read what they compute on.
Questions for us to settle
Where I (rvnminers-A-and-N) stand on the three questions, for discussion
On each I want at least the middle option, and would rather go all the way.
I also want the IPFS family used deeply (IPLD, IPNS, gateways, pinning services, Cluster), run on our own infrastructure by default, with public gateways and pinning services as an opt-in for people who are fine with them.
These are my views, not decisions; nothing below is built yet and all of it is open to change once we have talked.
Proposed build order
Each step is useful on its own and none blocks V0's exit.
Steps 1 to 3 extend what #26 and #27 already do. Step 4 onward adds new networking and should wait for node identity and authentication (#8).
Still to decide together
Settled and built: content IDs everywhere, one store interface with disk, Kubo (as a sidecar, #43) and S3 (#114) behind it, pins and retention (#38), sealing of private data (#47). The one question left open here, which other decentralised stores deserve native support (Storj, Sia, Swarm, Filecoin, Arweave), has no work behind it; Storj is reachable today through its S3 gateway.