Project Decorum: DECentralised fORUM (and protocol)

Scan then entire network? How is that implemented to make the scan fast enough? Sounds like a really slow operation.

1 Like

will be your project an engine where anyone can download, customize it and publish it (like phpBB or Discourse)? Or will be a service like StackOverflow? Will be something like Wikipedia or something like MediaWiki? An engine or a service?


I confess that I don’t know the internals, but as this is the official way to implement tables, and as SAFE is being designed to store the whole internet, I think (and I hope :smile:) that they had thought enough about it and somehow it wouldn’t be a problem. My guess is that it’s achieved by the same way the network searches for a specific file on the network, or the same way fragments of a file are searched and “glued”.


One idea I came to think of is to have StructuredData as indexes. So for example an SD ‘comment_index’ contains a list of IDs for all SDs tagged ‘comment’. And more complex indexes can also be created that way.

EDIT: It would be interesting to know how @Seneca will deal with the database storage. Millions of people reading a single index SD is doable because of the cashing. But what about an index that has lots of writes? That can be solved by a technique called sharding where instead of a single SD, each index is split up and distributed into several SDs.

1 Like

Maybe it’s worth it to have a freemium & premium model. What I would personally like about a forum is if you could charge people for commenting. Ideally even down to the character, like it’s done through

If I make a comment on your OP, I pay directly to you. If I commented on somebody else their comment on your OP, I pay directly to them. Maybe you could also add features like the LTB Network’s ‘magic word’ (proof of participation), this would allow some parts of the forum to become podcasts or whatever. Maybe the SAFEcoins the app/website generates can be redistributed to the participants.

Maybe some forums want people to pay, before they can join a forum. This could be once, monthly or per annum etc. Even “likes” could come with a pricetag. It’s not that I’m saying ‘pay pay pay’, but it would be nice to see people put their money where their mouth is.

Please don’t forget, that you could compete with discourse and simple machine forum. You got the advantage that your forum lives in a SAFE environment, maybe you’ll even get them to come on over to the SAFE Network.

[quote=“Seneca, post:1, topic:6119”]
I already implemented the basics of the protocol in a decentralised forum proof of concept using JavaScript, HTML and CSS.
[/quote]I would advice you to create a course on, if possible. This has a few advantages, first your showing people how to create a forum with html JavaScript, HTML and CSS. Second your introducing these same people to the SAFE Network. Third your exposing yourself to millions of people around the world, learning stuff through CC.

Enough out of me and I’ll support this, because I like you and like to see more apps/ideas materialize on the SAFE Network. Thanks your the second this week :stuck_out_tongue: (Hey that’s two likes, will that cost me like 2 SAFEcoins on your new forum?)


You’re pretty close, but SD’s don’t allow you to create tables in the way you describe. You can’t GET all the SD’s of a certain type with a single API call, you have to ask for a SD with a specific identifier. The address of an SD object in the SAFE distributed hash table is SHA512(tag_type + identifier). The way my protocol create “links” between SD objects uploaded by different people is by describing how the identifier of a new SD object is derived from the address of an existing (parent) SD object. By knowing the parent SD address, all the child SD addresses can be recursively computed and retreived by anyone that has an implementation of the protocol. Think of it as a tree of SD objects, with the root being a website, forum category, or even a SAFE public ID.

I’ll explain it better in the near future, no worries :slight_smile:

The SAFE Network won’t be able to do distributed computing initially, so the farmers won’t be executing the code of that server software.

@19eddyjohn75 Thanks for the suggestions, that’s definitely food for thought.


Naming idea:


Example in use:

‘scatter it’
‘scat me’
‘send it via scatter’
‘stop scatting in class boys’
‘journalists were scattering the news as quickly as they could’

Cheers and good luck
If it wins, don’t name it after me.

1 Like

Launcher dealing with Structured Data; to our enjoyment;


Awesome, that’s exactly what I was waiting for!


Not sure where to ask, so I’ll put it here:

If I GET a SD through JavaScript, will that function block execution until the data is retrieved from the network or will it be implemented asynchronously using events/callbacks? I hope it is the latter, or that I at least can implement that myself (I think this should be possible, but I’m relatively inexperienced with JavaScript, though learning fast due to my experience with system programming languages).

Edit: Tagging @Krishna_Kumar in the hope of some wise advice. :blush:


@seneca My xp with Js is as much as updating the balance on the safex site (for now);

But it sounds like you are onto the right thing


@Seneca do you think we can use the same protocol to implement the basis features of a social network, personal wall, comments, share, etc?


Definitely! The forum will actually have such features to some extent. A forum is not very different from a social network a la facebook, during the initial design process for the decentralised forum I realised it’s mostly a difference in interface design and some minor functional tweaks.


It might be easier from here; because a social network is pretty much an address book contained collection of forum comments; Safe Network is opt in; so all information can be contained within only those who you know

Unless public share intended;

1 Like
  1. Make people pay for the content they are generating/uploading
  2. Give people the option to allow free access to users by adding a regular payment to a solidarity fund.
  3. Connect the payout of the solidarity fund to the receiving of badges (you receive about as many SFC as is needed to the next step).

This way the forum will be self-sufficient and won´t need any organized input.

1 Like

Then the question is how to revoke access when relationship fall apart. I saw somewhere about generating single relationship accounts ID (or something like that…) And just dropping it to revoke access. Is there anything like that in the protocol @Seneca?

It’s a decentralised protocol, I can’t really do that. If I do, someone will simply copy/paste my website files, delete the payment parts and re-upload it. The data (conversations) are independent from the website (the user interface), so my website isn’t a gatekeeper that can force rules on the users that they don’t really want.

Selling more badges after launch is possible, I’ll consider that. If I do, I’ll make sure that any donations given pre-launch will count towards those badges as well.


True, I mean you can also have it hosted, but in the end it will use space on SAFE and someone has to pay for it, right? Maybe you can leave it to people to host the software and take care of the payments individually or allow people to switch on self-sufficient mode?

1 Like

The fees of hosting the website is very low since it doesn’t contains any user data, it’s just a bunch of HTML/JavaScript/CSS files. What will happen is anyone interested in creating a community will just upload a website on Safe and pay the PUT fees. Once the website is on Safe there’s no longer any fees to keep it there, it’s quite a bargain actually. Then the community can share stuff through it. Each individual is responsible to pay for their PUT request, this means that everytime you comment something you pay a little bit of Safecoin. The upside is that since you pay to upload your data you own it and your comment isn’t tied to the website but to your Safe account instead. You could create a mirror website that contains the exact same content if you wanted.


Indeed, you nailed it right there!