This scope of the document is to organize the development effort of catamaran and hull.
catamaran is a client for the scuttlebutt network. It allows you to create content and publish it on the network.
As a identity on the network, I want too see all public posts from people that I have subscribed.
As an identity on the network, I want to see all posts that have been directly encrypted to me.
As an identity on the network, I want to see all posts, where I have been mentioned.
As an identity on the network, I want to see all posts, where I have participated, either by creating a comment or leaving a vote.
A identity is a entity that participates in the network with other identities. A Identity creates content and is consuming it. On a technical level is an identity defined by its ed25519-keypair.
A Feed is a stream of posts. It is sorted by date descending, which means that the newest posts are at the top of thee feed. A feed can have a variety of post-types.
A post is the primitive of all entities of the network. It has some basic assumptions, which are:
- Author → An identity who created the post
- Date → The date the author claims to have it published. This is a bit trickey, because we have to trust the author on this on.
- Channel → An optional taxonomy, to categorize the post. There was discussion, to deprecate this in favor of ssb-tags.
- Recipients → If the message is gonna be encrypted to a certain audience all the identities are gonna be listed here.
Synonyms: content
A post can have several types. Types known so far:
A message is a type of post contains markdown formated text. The content directly embedded into the post, but restricted to 8000 characters. If you want to publish more, look at a blogpost.
Blob is short for binary large object. This means it is some sort of file, mostly images. blobs are not directly stored on the network because their size would make network computations more complex.
Like a message, but the content is not inside the post, but in a blob.
A gathering is a type of post where identities can organize a gathering either in the cypherspace or in the meatspace. identities can attend or not attend to gathering.
Replication describes the process of copying posts from and to another participant. The process is a bit complicated because you will only download content from participants you have subscribed.
Because your feed behaves like a blockchain (without a proof of work), every post has a link to the previous post. This has the sideeffect, that you can not remove a post in your chain, because you would have to rewrite your whole feed and this would make replication infinitely more complex.