v0.9.5 — DB2: gossip-replicated libraries + playlists (off-chain, wallet-keyed)
v0.9.5 — DB2: gossip-replicated libraries + playlists (off-chain, wallet-keyed)
A new off-chain store ("DB2") that propagates each wallet's library and playlists across every node the way the chain propagates blocks — but outside consensus. A player just says hi to the network; the node already holds the list. Groundwork laid in this release; built from main @ d310dd7.
Gossip-replicated libraries (off-chain, wallet-keyed)
- Each wallet's library is a compressed Roaring bitmap of song content-hashes (~2–4 bytes/song), in a separate leveldb keyspace outside the chain.
- The wallet is the sole writer of its own record → eventually-consistent gossip (wallet-signed deltas), no block ordering or quorum.
- The wire speaks 32-byte content-hashes, so nodes need no agreement on id numbering — ids are local intern handles.
- A reverse index (song → who-has-it) powers discovery; the player publishes its wallet-signed library on (re)connect.
Ordered playlists — same mechanism
- Wallet-signed, gossip-replicated ordered playlists (
mcpls1canonical bytes). - Player UI: playlists are the third facet — Artist / Genre / Playlists — in both the Discover and My Library tabs. Selecting a playlist fills the same track pane an album opens into; long-press / right-click a playlist chip to Add songs / Rename / Delete, and a "New playlist" chip creates one. Discover resolves a playlist's hashes to discoverable chain songs; My Library resolves them to your local files — each in the playlist's own order.
Anti-entropy (offline-node catch-up)
- The flood covers the online mesh; this converges a node that was offline during an edit. On peer connect each side exchanges a
{key→version}summary and pushes back every record the other is behind on (mirrors themod.sync_sincepattern). - Libraries now replace by version snapshot, so removals propagate — not just additive deltas.
- Idempotent re-publish on reconnect: edits made while the home node was unreachable still converge, without re-flooding unchanged records.
Artifacts
musicchain-player-v0.9.5-arm64.apk— Android (arm64-v8a, signed)musicchain-player-v0.9.5-windows-x64.zip— Windows desktop player (x64)
DB2 is entirely off-chain and additive — consensus, blocks, and the existing chain are unchanged.