-
Notifications
You must be signed in to change notification settings - Fork 38
Description
I'm very interested in running Federated Wiki entirely as a front-end application inside of a browser. We can do this on top of IPFS, which gives us first-hand content versioning and distribution. This requires some adaptation of some parts of the information flows, and expectations, but i think it would be a very valuable thing to do.
Benefits:
- federated wiki becomes totally distributed, decoupled from physical locations
- anyone can try running a fed wiki node with just one click
- fedwiki could work offline
- easier to operate a fedwiki node
- easier to use fedwiki to build other applications
- p2p sharing of resource loads
Key challenges;
- understanding how the data model would look on top of ipfs instead of at a specific location (i.e. are there any location-specific addresses (i suspect lots of URLs) and which could be changed)
- understanding how authentication + identity would be managed (i suspect pub/private key pairs)
- adapting server + client code to these
- browserifying a lot of the code from the server
Questions I have:
- What URL schemes are followed?
- What are all types of content addressed?
We have described the url scheme in other issues. We've prepared a simplified version for federating foreign servers
- When does a host's domain come into play?
Pages are rendered from the page json alone. We remember where that was retrieved in order to display a flag (favicon) and the sitemap to be added to the neighborhood. The source could be a domain name or the symbols 'origin', 'local', 'view'. In some cases null is used as a synonym for 'view' which means to choose 'origin' or 'local' as appropriate.
- How is identity defined right now?
- Who (precisely) gets to create/edit pages on a given host?
We treat domain names as identities. Convention has the welcome-visitors page further identify the owner as that owner sees fit. We distinguish between sites, servers and hosts. The site is responsible for authenticating and authorizing users which has been delegated to the server. We have a 'claim' process where a new site learns of the credentials its owner will use for authentication. There is currently a project underway to provide modular authentication.
- Is there interest in allowing users to sign their edits?
Yes. We would expect a page be signed at multiple points in its history by multiple authors, each of which can be verified by a well known, independent and public trust network.
Notes:
- there is a way to use DNS domains with IPFS, so that we don't need to change URL formats much, if at all. just the "host" might be virtual, instead of an actual server listening.
I would suggest we just start outlining the stuff for the data model + auth/identity first. We're working on some changes to ipfs at the moment which will make it waaaay easier to just use JSON natively to build arbitrary data structures (at that point importing a fed wiki datastructure might be as trivial as storing all the json.