Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decentralization is a duty #5

Open
dwrolvink opened this issue Jan 12, 2019 · 2 comments
Open

Decentralization is a duty #5

dwrolvink opened this issue Jan 12, 2019 · 2 comments
Labels
General Philosophy Discussion about the direction Konishi should take, and what design choices should flow from that

Comments

@dwrolvink
Copy link
Contributor

@yatima1460 said:

Decentralization is a duty; a user can decide to spin up a Konishi server whenever it want, also every file should be hosted on a decentralized system, like IPFS, or a "microtorrent"
(also it needs to be discussed if and how independent nodes should/can communicate)

@dwrolvink dwrolvink added the General Philosophy Discussion about the direction Konishi should take, and what design choices should flow from that label Jan 12, 2019
@dwrolvink
Copy link
Contributor Author

How would this realistically translate to the design of the app / backend? I've looked into IPFS, but I can't find out any way to run a performant database on such a system while assuring a chain of command and not having all data be directly accessible by everyone.

One way to solve this would be with encryption, where a user will encrypt his/her message with a key, based on whether they post it publically, in a group, or as a message to a friend. Just an idea, I'm not very knowledgeable about this. But I think it would be clear that any slightly traditional database system will work poorly in very decentralized systems.

Perhaps the decentralization should be just the open source ideal. If people want their own community, free from scrutiny from a divine Zucc telling them what to say, just make it very easy for people to spin up their own environment for their own group. Though, what you have then is just a fancy forum, kinda.

I'd envision the following setup to be feasible:

  • A central Konishi authority (CKA), hosting the user table, and the frontend. In that user table will be a list of all the groups a user is a member of.
  • Other people can spinup their own Decentral Konishi Environments (DKEs), hosting one or multiple groups.
  • Demand DKEs to be compliant with the API of the central Konishi Authority (CKA).
  • DKEs can host their own frontend, which will then connect to the CKA backend to let the user log in, if they want to allow the user to have access to all their groups. Or, if the CKA turns evil empire, allow users to sign in directly to the DKE backend, and have only access to the groups hosted by that DKE. (And possibly also those of linked DKE's).
  • The owners of the DKEs can then decide for themselves who to ban and stuff, as this should not affect the groups hosted on other DKEs.
  • Users can log into the CKA website, and connect to the backend of the DKEs, thus having all the groups in a single UI. If a group is not registered at the CKA, users should be able to add a URI of a group through the CKA frontend and get access to that group in that way.

@dwrolvink
Copy link
Contributor Author

I think in that way, we could also avoid the mess that is Diaspora. I, as a user, just want a single interface that I can connect through to get to all of my groups, and not have to connect to different decentralized instances to get to my content.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
General Philosophy Discussion about the direction Konishi should take, and what design choices should flow from that
Projects
None yet
Development

No branches or pull requests

1 participant