v0.9.6 — DB2 discovery cutover (presence + libraries replace swarm.hello)
v0.9.6 — DB2 discovery cutover (presence + libraries replace swarm.hello)
Discovery and streaming no longer ride on the ephemeral swarm-index re-announce. A player publishes its library to DB2 once (durable, wallet-signed) and, on connect, sends a tiny signed presence.hello binding its wallet to its live peer id. The node drives Discover straight from DB2 — "say hi, your library appears."
What changed
presence.hello—"mcprs1" ‖ wallet(20) ‖ ts(8 LE) ‖ peer_id, wallet-signed. The node verifies it and binds wallet → live peer id (self-declared so relayed players bind correctly), evicting on disconnect.songs.listnow returns only chain songs that an online wallet's DB2 library currently holds;swarm_size= live DB2 holder count. Metadata is unchanged (it always came from the on-chain registry, never the swarm).stream.openresolves serving peers from DB2 holders ∩ presence.library.deltareply carriesunknown[](your published hashes not yet on chain); the player re-registers those viafingerprint.submit— the oldswarm.hellochain-resubmit, re-homed.- Removed the
swarm.hellofamily (hello / digest / add / remove / leave) on both node and player; library add/remove now flow through the DB2 versioned snapshot. Presence lifecycle for relayed players is kept viaswarm.peer_online/offline.
Heads-up — this is a full cutover
Discovery is now DB2-only. A player must be on v0.9.6 (sends presence.hello) to appear in Discover and be streamable. Older builds won't show up until updated. Install this build; on connect your library republishes to DB2 and reappears in Discover automatically.
Artifacts
musicchain-player-v0.9.6-arm64.apk— Android (arm64-v8a, signed)musicchain-player-v0.9.6-windows-x64.zip— Windows desktop player (x64)