MEDIACHAIN
An open data network for creative works
An increasingly centralized internet has stifled innovation
and created problems for publishing, discovery, attribution, and monetization of media.
Platform network effects are impossible to compete with
Creator identity divorced from works
Even open data still siloed
Solution: a protocol for publishing, discovering, and reusing media metadata
Participants make Statements about a work
Statements
by: Pablo Picasso
title: Bull
year: 1958
-Love, MoMA
can be derived from existing metadata through Translators
Statements
signed with the participant's keypair
Statements
walked to form a complete picture
Chain
title: Horse and Barge,
artist: David Cox
-Tate
title: Horse and Barge,
artist: ???,
year: 1820
-MoMA
title: Horse and Barge,
artist: David Cox,
year: 1820
anyone can contribute, but untrusted statements discarded at read time
Tree
title: Horse and Barge,
artist: David Cox
-Tate
title: Horse and Barge,
artist: ???,
year: 1820
-MoMA
title: Horse and Barge,
artist: David Cox,
year: 1820
title: I Like Cheese
-Donald Trump
- Content Addressed
- Self-certifying
- libp2p is Great
All objects are IPFS + IPLD objects
Data Objects
{
"type" : "entityUpdate"
"chain" : { "@link": "QmeP3JJgXunsiVKZ4f...." }
"entity" : { "@link": "Qmek3AJg4un1iQvZ41...." }
"signatures" : <Signatures>
"author" : { "@link": "QmbTcS3DuahG3npWb...." }
"title" : "Horse and Barge"
... ; other metadata updates
}
ArtefactUpdateCell
Chain
Qm000... = Nil
QmCCC... = ArtefactCreationCell {
"type" : "artefactCreatedBy"
"chain" : {"@link" : Qm000...}
"artefact" : {"@link" : QmBBB...}
"entity" : {"@link" : QmAAA...}
"signatures" : {...}
}
QmIII... = ArtefactUpdateCell {
"type" : "artefactUpdate"
"chain" : {"@link" : "QmCCC..."}
"artefact" : {"@link" : "QmBBB..."}
"title" : "Time May Change Me"
...
}
Journal
ChainEntry {
"type" : "update"
"ref" : {"@link" : "QmBBB..."}
"chain" : {"@link" : "QmCCC..."}
"chainPrevious": {"@link" : "Qm000..."}
"timestamp" : "..."
}
ChainEntry {
"type" : "update"
"ref" : {"@link" : "QmBBB..."}
"chain" : {"@link" : "QmIII..."}
"chainPrevious": {"@link" : "QmCCC..."}
"timestamp" : "..."
}
Only piece that needs quorum!
Full example at http://tiny.cc/mediachainExample
Network
Transactor
Transactor
Transactor
Transactor
Quorum
Reader
Indexer
Writer
IPFS
IPFS
IPFS
Federated design
Raft consensus
Writing
1. Publish statement to IPFS
2. Send chain entry to a transactor
Done!
Reading
Reader nodes receive syndication
build internal representation
(official reader client: mediachain/L-SPACE uses OrientDB)
Entity {
"type" : "entity"
"name" : "Hellen Green"
"keychain" : {"@link" : "QmAAABBB..."}
"platform" : "~cargocollective"
"cargocollective_user" : "+hellengreen"
"signatures" : {...}
}
Identity
???
???
???
Missing Piece
Critical for authorship + payments
blockstack id?
Key management???
RFC
http://tiny.cc/mediachainRFC
Thank you!
http://mediachain-slack.herokuapp.com
@mediachain_
@parkan
mediachain/mediachain
We're Hiring!
(with an underscore)
Mediachain: Blockstack ed.
By Arkadiy Kukarkin
Mediachain: Blockstack ed.
Presentation for Blockstack meetup 5/4/2016
- 1,823