Repository navigation
Description
here is how you'd implement a blog like thing with cyphernet.
Not that a blog is that exciting, but it's a simple well understood example,
with a simple structure. I'll build on this example to explain how you'd implement
a microblog/socialnetwork (which is really just a blog + friend feeds)
to begin, the author would publish a blob which is the post.
(this could be just a markdown file)
(this could be shared via an ordinary http url - as mentioned in the readme,
you can get the objects from anywhere, because you can always check that they are valid, so exposing them at myblog.com/HASH would be completely okay,
you could make it fully distributed later, or people could replicate your blog to their servers etc.)
first the user creates a blog post datablob, then readers can create comment blobs
(probably in json format, or maybe markdown with embedded metadata?)
that cypherlink back to the post. If a comment is a reply to another comment, then it
must cypherlink to that comment (which proves that it came after that comment)
Also, it's a good idea if a comment links to the latest comment (or comments)
which proves that comment came after the previous comments.
Note, you cannot delete a comment. So think before you speak.
Maybe you can ask people not to read what you have written. but the information is out there and there is no way to change that.
If the author wants to moderate the blog, they can accept comments
by creating accept objects that list the recent comments, and then only replicating the accepted comments.
Of course, there is no way to stop someone else from publishing their renegade comments via a different app, that may be integrated with your data.
So, essentially - this is the interesting thing - with webpages, the data and the app and the display are all bundled together, but with this idea, there is a data section that is replicated, and a separate app section. it will always be possible to request/replicate the data without the app. maybe in someways this is related to the semantic web
Activity
evbogue commentedon Sep 3, 2013
I get really excited about boring things like distributed cypherblogs. If we had this, we wouldn't have to use Github issues!
micahredding commentedon Sep 6, 2013
How is blog metadata implemented? Is it a backwards link from the blog blob, so that the metadata is irreversibly part of the blog entry? Or is the metadata a wrapper which points backwards to the blog blob, so that it would be possible to bundle the blog entry with other metadata?
micahredding commentedon Sep 6, 2013
I could envision two kinds of metadata: irreversibly bundled data, that would serve historical purposes, and wrapper metadata that would act as an index and the state of what the system knows about the object at that point in time.
dominictarr commentedon Sep 6, 2013
@micahredding absolutely. forward links are a lot more certain, because it's a part of the document,
so if you have a document, you know the related data must exist.
back links on the other hand, are not so certain, because you don't know they exist unless you already have them
or have something else that points to them.
So, you probably want a way to publish these updates in a known place, somewhat like an RSS/twitter feed
A good way to do this would be to keep a personal block chain.
You'd have an object that linked to recent stuff, + the previous block,
and then you'd sign that with your private key.
Your followers (or blog readers) would then replicate this from you.
dominictarr commentedon Sep 6, 2013
@evbogue oh, you may be interested to know: github issues are actually git repos under the hood!
so they'll be easy to port of cyphernet 😉
dominictarr commentedon Sep 6, 2013
oh, woops, that might be wrong... maybe it's just wikis that are git repos.
evbogue commentedon Sep 6, 2013
Github Issues === user loyalty program...?
dominictarr commentedon Sep 7, 2013
@evbogue you mean because that is the one part of github that isn't potentially distributed?
I think it was just about expedience rather than a explicit conspiracy... blame ruby on rails.