docs(design): Dotify v2 - access model, chunked streaming, Polkadot App stack#75
Merged
Conversation
…pp stack Proposed strategic pivot (design only, no code): - Remove the 42% preview. Access becomes a three-mode artist policy: free, paid, human-free (Proof of Personhood). Unauthorized playback is an honest unlock CTA; discovery moves to free tracks and rooms. - Sign once, listen freely: one SIWE-style signature opens a session; every later track authorization is an on-chain read by the key service (paid -> musicAccCanAccess, human-free -> PoP status, free -> no auth). - All audio encrypted at rest, including free tracks (mode is pure on-chain policy, flippable without re-pinning; IPFS never holds clear audio). - dotify.audio.v2: chunked AES-256-GCM container, Range requests through IPFS gateways, MSE progressive playback - time-to-first-sound is one chunk, not one file; v1 blobs keep playing. No ffmpeg/HLS dependency. - Rooms untouched in doctrine; faster host loads shorten track-change dead air; realtime refinements gated behind two-device browser validation. - Polkadot App stack: Triangle hosts + Host API signing, PoP for humanity, Coinage as candidate payment rail, DotNS name, Statement Store presence. - Five independently shippable phases; open questions flagged (key custody decentralization, chunk size, free-mode key delivery, optional excerpts). Tracked as ticket 24; once approved its P1 consciously retires the preview machinery including the ticket 18 preview assets. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
✅ Deploy Preview for muzinga canceled.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Design-only PR (no code) for the radical angle: remove the 42% preview, rethink access + protection + streaming, and land Dotify on the Polkadot App stack. Full document:
docs/design/dotify-v2-access-and-streaming.md, tracked asdocs/backlog/24-access-streaming-v2.md.The design in one screen
Access model v2 - artist-chosen, on-chain, changeable without re-upload:
freepaidmusicAccCanAccess(Coinage as future rail)human-freeNo previews: unauthorized = honest unlock CTA. Discovery lives in free tracks and rooms (where host access already lets everyone hear full tracks). This deletes the whole preview apparatus - including the ticket 18 preview assets, consciously retired.
Sign once, listen freely - one SIWE-style signature opens a ~24h revocable session; per-track authorization becomes an on-chain read by the key service. No signature per listen. Keys stay per-track, delivered after the chain check, never bundled. Room guests still need nothing at all.
Everything encrypted at rest, streamed in chunks -
dotify.audio.v2: chunked AES-256-GCM (per-chunk nonce + tag), one CID, HTTP Range through IPFS gateways, MSE progressive playback. Time-to-first-sound = one chunk, not one file. Free tracks are encrypted too: the mode is a policy hinge (flippable later), documented honestly as such. No ffmpeg/HLS; v1 blobs keep playing via the version byte.Rooms - doctrine untouched (host satisfies policy, listeners get only WebRTC). Chunking attacks the real cause of track-change dead air (source load time). Drift correction and in-place track swaps stay gated behind two-device browser validation - the standing lesson from the reverted
replaceTrackattempt.Polkadot App stack (grounded on docs.polkadot.com/apps): Triangle hosts (Desktop / App / Web dot.li) + Host API signing, Proof of Personhood for humanity, Coinage as candidate payment rail,
dotify.doton DotNS over the existing single-file Bulletin build, Statement Store as the presence layer.Phases (each shippable)
P1 access v2 + delete previews -> P2 session auth -> P3 chunked container -> P4 real PoP -> P5 Triangle/DotNS/Statement Store.
Open questions flagged in the doc
Key custody decentralization timing, chunk size tuning, unauthenticated free-key delivery, optional artist-chosen excerpts later.
Review = approve the direction; implementation starts at P1 in its own PRs.
🤖 Generated with Claude Code