>>25
That'd be ideal. Right now there's two classes of users
"mediators" and "users". The mediator is responsible for actually adding posts to acess-controlled databases, like posts. Files on the other hand I am thinking will be open-access so you can add whatever files you want to the database freely.
Some degree of access control is necessary for things like posts, as there are considerations for formatting, ban checks, spam checks, etc. that need to be performed before a post can be accepted. It may be possible to make some of this "automated" in the future where peers will perform these checks themselves as well. But for now I'm going with the simpler lower hanging fruit to make things more distributed step by step and then we can experiment more going forward
By the way, files will only be actually downloaded by peers if they call the getFile() function on the file document. The file document itself is just a reference to the actual file chunks. I'm going to have to modify this system a little bit going forward but overall the concept should be essentially the same.
Right now I'm working on this concept of performing actions via the mediator by making RPC calls to it. In this sense we use another node as an API into the database, the contents of which are then read-accessible freely by all peers. With this we can define specific actions that can be executed by specific identities, but will actually be executed on the database by the mediator which has "root access" to the databases.
Doing this indirectly means there won't be a database operation entry corresponding to the submitting peer, as it will be performed by proxy by the mediator identity, so that should help with anonymity to a large extent. But for other cases like adding files directly to the database, something like that could be desirable to obfuscate the poster's identity. We could actually just create a random temporary identity when adding the file document, which would also provide some degree of privacy.