Building a more connected
world for creators.
Hello again!
Mediachain is a decentralized, open, and programmable media metadata library
Ethereum
Payments Logic
IPFS
Content retrieval
Mediachain
Content index
Decentralized Services Stack
Blockstack
Entity index
= White Pages
= Inventory
= Warehouse
= Cash Register
Motivation
Large Dataset Size (PB+ range)
High Cardinality (~1BN ingested)
Rich Structure
Can't store on-chain
Can't route through IPFS DHT
Can't store as dumb blobs or even bare IPLD
Motivation
Rich Structure
!!!
Better routing is possible
- Related data tends to live together
- Semi-hierarchical
“AC/DC — T.N.T.” → Elektra Records → Atlantic Records Group → Warner Music Group → RIAA → Music Industry
Better Content Routing
- NOT the same as location addressing!
- Still self-certifying, content-addressed under the hood
- Permissionless if you want it to be
How do we accomplish this?
1. Identity
[~]% blockstack lookup arkadiy.id
{
"profile": {
"@type": "Person",
"account": [
{
"@type": "Account",
"identifier": "0cfe308259f0eb23d38fd7f274c18706ec52ce25",
"service": "openbazaar"
},
{
"@type": "Account",
"identifier": "Qmefn9NSUDVXqM9fuGN93Up....",
"service": "mediachain"
},
{
"@type": "Account",
"identifier": "parkan",
"proofType": "http",
"service": "twitter"
}
...
Proofs transitively valid in Mediachain!
2. Namespaces!
(related to, but different from, Blockstack namespaces)
music.riaa.wmg.arg.elektra
(semantics/format *NOT FINAL*)
- Not inherently valuable: folksonomy, not google adwords
-
Permissionless (universe.*) or governed
-
Permissions model can derive from underlying blockstack ns
2. Namespaces
[~]% blockstack lookup arkadiy.id
{
"profile": {
"@type": "Person",
"account": [
...,
{
"@type": "Account",
"identifier": "Qmefn9NSUDVXqM9fuGN93Up....",
"service": "mediachain"
},
...
],
"mediachain": {
"namespaces" : [
"universe.dogs",
"mediachainlabs"
"music.warprecords"
]
}
...
Putting it all together
- mediachain directories listen for new peers announced through blockstack
- valid namespace participation announces added to namespace:peerId mapping table
- peerIds located through IPFS DHT
- queries routed based on context
Putting it all together
podcasts.ethereum namespace + some smart contract magic = decentralized podcast marketplace
Mediachain Core: Curent Status
-
Golang and JS peers on top of libp2p
-
IPLD serialization (more or less)
-
multistream compatible ("mc" protocol), plays nice with IPFS
-
active now, 100MM+ routable objects from CC, museums, etc
Mediachain Core:
What Needs To Be Done
-
Finalize blockstack profile/ns semantics
-
Ditto for mediachain namespaces
-
blockstack server integration
-
IPFS Kad DHT peer lookup
Thanks!
@mediachain_
mediachain/concat
@parkan
arkadiy.id
mediachain/aleph
BONUS: Deploy
Mediachain: Blockstack ed. II
By Arkadiy Kukarkin
Mediachain: Blockstack ed. II
Presentation for Blockstack meetup 11/22/2016
- 1,367