Participants make Statements about a work
by: Pablo Picasso
title: Bull
year: 1958
-Love, MoMA
can be derived from existing metadata through Translators
signed with the participant's keypair
walked to form a complete picture
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
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
{
"type" : "entityUpdate"
"chain" : { "@link": "QmeP3JJgXunsiVKZ4f...." }
"entity" : { "@link": "Qmek3AJg4un1iQvZ41...." }
"signatures" : <Signatures>
"author" : { "@link": "QmbTcS3DuahG3npWb...." }
"title" : "Horse and Barge"
... ; other metadata updates
}
ArtefactUpdateCell
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"
...
}
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
Transactor
Transactor
Transactor
Transactor
Quorum
Reader
Indexer
Writer
IPFS
IPFS
IPFS
Federated design
Raft consensus
1. Publish statement to IPFS
2. Send chain entry to a transactor
Done!
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" : {...}
}
???
???
???
Missing Piece
Critical for authorship + payments
blockstack id?
Key management???
http://tiny.cc/mediachainRFC
http://mediachain-slack.herokuapp.com
@mediachain_
@parkan
mediachain/mediachain
We're Hiring!
(with an underscore)